PLY to OBJ converter — a scan any tool opens

VTubeMe's PLY to OBJ converter writes a .ply mesh as an OBJ that nearly every 3D program opens. Vertex colours are written after each vertex, the unofficial extension several tools read. Free, five a day, up to 50 MB. Point clouds are refused.

Free · 5 conversions a day per accountNeed a VRM avatar instead? →

How do I convert a PLY to OBJ?

Drop the .ply on this page and download a zip holding the .obj.

  1. 1Drop your .ply into the box above, ASCII or binary, up to 50 MB; sign in when prompted.
  2. 2The file is opened in Blender on our server and written as an OBJ, Z-up turned to Y-up, no scaling. Each vertex line carries its colour after its position.
  3. 3Download the zip and unpack it. The .mtl is a default material; the colour is in the .obj itself.
Accepts:
one .ply with faces, ASCII or binary, up to 50 MB.
Returns:
a zip with the .obj and its .mtl.
Costs:
nothing, and no credits — an account, though: five conversions per account per rolling 24 hours, shared across all the free format pairs. Conversions that fail are not counted.
Measured:
11,125 vertices and 16,867 triangles in, the same out; a coloured cube read back with its colours.
  • Vertex colour in OBJ is an extension, not part of the format: MeshLab, Blender and ZBrush read it, many programs silently ignore it.
  • A PLY of points with no faces is refused.
  • OBJ is text and large: a 50 MB PLY came out as 218 MB.

What actually happens to the file

OBJ is the lowest common denominator of 3D: if a program opens meshes at all, it opens OBJ. That is the reason to take a scan there. The geometry crosses unchanged — 11,125 vertices and 16,867 triangles on our test mesh.

Colour is the awkward part. OBJ has no official place for a colour per vertex; the widely used workaround is to write red, green and blue after each vertex's coordinates. That is what this conversion does, and a coloured test cube read back with its colours in Blender. A program that does not know the extension shows the mesh uncoloured, and there is nothing in the file to fix that — if colour matters and the reader is unknown, GLB is the safer target.

What this conversion cannot do

Measured on real files, not assumed. Everything below is a property of the formats or of the pipeline, and knowing it beforehand is cheaper than discovering it in your 3D tool.

A point cloud is refused, not converted to nothing

Many scanners write a PLY that holds points and no faces. Every target here stores surfaces, so such a file would convert into a valid, empty model; we tested one and the converter stops with a message instead. Turning points into a surface is reconstruction — Poisson or ball-pivoting in MeshLab or CloudCompare — and it has to happen before conversion. A refused file does not count against your daily five.

Vertex colours ride on an unofficial extension

They are written as three extra numbers on each vertex line. MeshLab, Blender, ZBrush and CloudCompare read that; many CAD tools, slicers and game engines do not, and show the mesh grey with no warning. The colours were verified by re-importing in Blender only.

The numbers are kept and the unit is not guessed

PLY has no unit field. A 100-unit cube came out as 100 units in the GLB, the FBX and the OBJ. glTF reads its numbers as metres, so a scan stored in millimetres arrives a thousand times too large for a metre-based scene — scale it by 0.001 where you open it. PLY's Z-up is turned so the model stands upright in Y-up formats.

Uploads stop at 50 MB

This pair takes files up to 50 MB — half of what the GLB, FBX and OBJ pairs take among themselves, because dense scans and print files cost the converter far more memory per megabyte than a game character does. For scale: a binary STL of 50 MB is about a million triangles, and we converted one of 999,698. If your file is larger, decimate it first; MeshLab and Blender both do that without changing the format.

Five conversions a day, per account

This pair is free and takes no credits, but one account gets five conversions per rolling 24 hours across all the free format pairs together — the converter is one machine and this is what keeps it answering. Each slot frees itself 24 hours after it was used; nothing expires at midnight. Conversions that fail are not counted.

Frequently asked questions

Where did the colours go when I opened the OBJ?

They are in the .obj, written after each vertex position, but only some programs read that extension. Open the file in MeshLab or Blender to confirm they are there. If your target ignores them, convert the PLY to GLB instead, where vertex colour is part of the format. PLY to GLB instead →

Why is the OBJ so much bigger than the PLY?

A binary PLY stores numbers as four bytes each; OBJ writes them out as decimal text. A 50 MB PLY of 2.6 million triangles became 218 MB of OBJ. Nothing was added.

ASCII or binary PLY?

Both. The coloured test cube was an ASCII PLY and the 16,867-triangle character was binary little-endian; both converted. A PLY carries no materials and no texture images, so there is nothing to zip with it — upload the one file.

Can I check the PLY before converting it?

Yes. The PLY viewer opens it in your browser without uploading anything, and it will show you at once whether the file has faces or is a bare point cloud. Open the PLY viewer →

The other format pairs

All 30 are free, all run the same pipeline, and all say what they drop.

Only want to look at the file? GLB viewer, FBX viewer and OBJ viewer all run on your own device — nothing is uploaded.

Is your model going into VTubing?

A scan, a print file or a CAD part is not an avatar, and no format change makes it one: a VTubing avatar needs a humanoid skeleton and a face that moves. If what you have is a rigged character in FBX or GLB, the VRM converter maps its bones onto the VRM humanoid and carries the materials over, ready for VSeeFace, Warudo and VNyan.

Open the VRM converter

More tools for this format