Convert PLY to OFF Online
Upload a PLY mesh and get back a plain-text OFF file holding one triangulated mesh: a vertex list and a face list, nothing else. Expect two things before you start: per-vertex colors are not written to the OFF, and the result imports lying on its back, so rotate it 90 degrees about the X axis.
Download Started!
How would you rate your experience with MiConvert?
What changes when PLY becomes OFF
PLY stores positions and faces alongside per-vertex color, confidence and custom float properties, in either ASCII or binary layout, and that richness is exactly why some geometry code refuses it. OFF is the opposite kind of file: a header line, two integer counts, a block of vertex coordinates and a block of face index lines, readable in a few lines of code. That is why libigl, CGAL, Geomview and classroom mesh assignments ask for .off specifically.
On our side the file does not go straight across. Blender 5.1.2 reads the PLY on our servers, including the awkward exports — unusual headers, stray comments, rows wrapped across lines — and falls back to a normalized copy or a re-encode if the first read fails. The geometry is then handed to a trimesh step that writes the OFF. Nothing runs in your browser, and nothing needs to be installed.
What survives is the shape: vertex coordinates and faces, with the numbers passed through unchanged, so a scan measured in millimeters keeps those same numbers. Per-vertex colors, intensity and confidence properties, texture coordinates and normals are dropped, and the mesh is merged into a single object and triangulated, so quads and n-gons become triangles. Because the geometry travels through a Y-up intermediate before the OFF is written, the model arrives rotated 90 degrees about X — one rotation in your viewer puts it upright.
The people who ask for this conversion are feeding a mesh into code rather than a renderer: a remeshing or simplification experiment, a half-edge assignment, a script with a short OFF parser and no PLY reader. If your PLY came off a scanner and still has no faces, this is the wrong target — see the FAQ below.
How to convert a PLY file to OFF
- Check that your PLY actually contains faces: look in the header for an 'element face' line with a count above zero, or open it in MeshLab. OFF can only store surfaces, so a vertices-only scan will be turned away.
- Drop the .ply onto the upload area. ASCII and binary PLY both work, and PLY needs no companion files, so a single upload is enough. Guest uploads go up to 50 MB; a free account raises that to 100 MB, with 200 MB on Plus and 1 GB on Pro.
- Start the conversion. The target on this page is fixed to OFF, so there is nothing to configure: the file is read by Blender, then written out by the trimesh step.
- Download the result, named after your file with an .off extension. It is one text file, not an archive, and the link stays valid for about four hours.
- Open it in MeshLab, Geomview or your own loader and rotate the mesh 90 degrees around the X axis. If your pipeline expects a particular unit, scale it there, since OFF stores no unit at all.
What this converter handles
- Reads ASCII and binary PLY, and retries awkward files through a normalized copy before giving up, so exports with odd headers, comment blocks or wrapped vertex rows usually still load.
- Writes a plain OFF: the OFF keyword, counts of vertices, faces and edges, then the coordinate and index blocks — no binary variant, no extensions, nothing a simple parser can trip over.
- Triangulates and merges everything into a single mesh, which is what most geometry-processing code expects as input.
- Refuses a vertices-only PLY with a message naming the point count, instead of handing you an OFF with zero faces.
- Allows 600 seconds for each engine step, and this conversion uses two steps (Blender read, then the trimesh OFF write), each with its own limit.
- Converts up to 10 files per request on the free tiers, each one processed as its own job with its own download.
Video Tutorial
PLY → OFF in seconds! Free online converter at MiConvert.com 🔗 https://miconvert.com/en/ply-to-off?utm_source=youtube&utm_medium=social&utm_campaign=ply-to-off Quick steps: Upload → Convert → Downl
PLY to OFF questions
Why does my model appear lying on its back after conversion?
Because the geometry passes through a Y-up intermediate before the OFF is written, and the coordinates are copied across without being re-oriented. Rotate it 90 degrees about the X axis in MeshLab, Blender or your own code; only the orientation of the axes is affected, not the shape.
Do the per-vertex colors in my PLY survive?
No. The OFF files we write hold vertex coordinates and triangle indices only, so red/green/blue vertex properties, intensity, confidence and any custom float fields are dropped. OFF itself has no colour section, so keep your original PLY if you need the colour data — our OBJ output drops vertex colours too, so it is not a workaround.
My PLY is a scanner point cloud with no faces. Can I still get an OFF?
Not directly. A faceless PLY is refused for OFF, with a message naming the point count, because OFF stores surfaces rather than loose points. Mesh it first in MeshLab or CloudCompare and upload the result; we do not reconstruct surfaces for you. If you only need the points, our PLY, OBJ and GLB targets accept a point cloud as points.
Should I convert PLY to STL or OBJ instead?
It depends on what reads the file: STL for slicers and printing, OBJ for modeling and rendering tools that also want materials, OFF for geometry code and academic tooling. We have separate pages for PLY to STL and PLY to OBJ, and they read the PLY with the same Blender importer.
The job failed with “Could not read this 3D file”. What now?
That usually means the PLY is truncated or its header does not match the data, often after an interrupted export or a partial download. Re-export a fresh ASCII or binary PLY from MeshLab or Blender and try that. Corrupt-file failures are not retried, so re-uploading the same bytes will not help.
Are quads, normals and real-world size kept?
Quads and n-gons are triangulated. Normals are not written, and most loaders recompute them anyway. Coordinate numbers pass through unchanged and no step converts units, so the numbers mean whatever your PLY meant by them.
Can I convert a folder of PLY scans in one go?
You can select up to 10 files in a single request on the guest and free tiers (25 on Plus, 50 on Pro), and each file is converted separately with its own download link. There is no single ZIP of all results, and no option to merge several PLY files into one OFF — merging only happens between objects inside one uploaded file.
What happens to my file after the conversion?
The conversion runs on our servers, not in your browser. Your uploaded PLY is deleted as soon as the job finishes, and the OFF file can be downloaded for about four hours before it is deleted automatically. The link is a long random token that is not listed anywhere, though anyone holding it can use it until it expires. File names, sizes and outcomes are kept in our logs, and signed-in accounts keep a conversion history row.