Convert STL to PLY
PLY is the format that scanning and geometry-processing tools prefer: MeshLab, CloudCompare, Open3D and most research code read it first. This tool writes a binary PLY with proper shared points and normals, on your own computer.
Drag a 3D file here, or.
This page is set up for STL files. Other formats we can read work here too.
The file is read on your own computer. It is never uploaded.
Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.
Why convert an STL to PLY at all
PLY was designed for scanned data, and it can store things STL cannot: a colour for every point, extra properties per vertex, and a clean list of shared points rather than loose triangles. Most tools in the scanning and research world assume you will hand them a PLY.
The conversion also cleans the mesh up on the way. Duplicate points are joined, so the PLY has a real point list instead of the same corner written out three times, and the triangles are made to agree about which side faces out.
Binary PLY, little-endian
The file written here is binary and little-endian. The PLY specification allows big-endian too, and almost nothing in the wild writes it, so little-endian is what every reader expects.
Binary keeps the file to roughly the size of the original STL. ASCII PLY of the same model would be three or four times larger with no gain.
About colour
PLY can hold a colour for every point, and this is one of the main reasons people use it. An STL cannot hold colour, so a PLY converted from an STL has none. That is a limit of the file you started with.
If you want colour in the PLY, the colour has to exist in the source. Converting from a coloured 3MF or a glTF file will carry it across.
Property names are what readers match on
A PLY header declares each piece of data by name: x, y and z for position, nx, ny and nz for a normal, red, green and blue for colour. A reader looks for those exact names, so a file that calls its colour channels r and g instead is silently read as having no colour by most software.
The file written here uses the standard names, positions as float32 and the face list as uchar count followed by int32 indices. That combination is what MeshLab, CloudCompare, Open3D and Meshlab-era research code all expect, and it is the one that opens without a dialog box asking you to describe your own file.
When PLY is the right choice and when OBJ is
Use PLY when the model is going into a scanning or geometry tool: MeshLab, CloudCompare, Open3D, or anything written against a mesh-processing library. Those tools read PLY first and treat everything else as an import.
Use OBJ when it is going to an artist. Blender, Maya and ZBrush all read PLY, but a modeller expects an OBJ and it carries material names, which PLY does not.
What survives, and what does not
Kept in the PLY file
- The exact shape
- Shared points and rebuilt normals
- The size, converted to the units you choose
Lost on the way
- Nothing: an STL carries only triangles, and PLY holds all of them
How to convert STL to PLY
Drop the .stl file in
Either kind of STL is fine. The 3D view shows what was read, so you can confirm you picked the right file before anything else.
Let the duplicate points be joined
STL repeats every corner for every triangle touching it. Joining them is what gives the PLY a real shared point list, which is the whole reason the research tools want a PLY.
Check the point and triangle counts
They are shown beside the 3D view. After welding, expect roughly one point for every two triangles on a closed model. If the point count is still three times the triangle count, the mesh was not weldable, which means the corners do not quite meet.
Set the units if the destination cares
PLY records no units either, so this is only about the numbers being the size you expect. CloudCompare and MeshLab both work in whatever the file says.
Download the binary PLY
It is written little-endian, which is what every reader in practice expects. The file comes out about the size of the original binary STL.
STL and PLY compared
| Property | STL.stl | PLY.ply |
|---|---|---|
| File contents | Binary or plain text. Binary is an 80-byte header, a triangle count, then 50 bytes per triangle. | A text header that declares the properties, then the data as either text or binary. |
| Geometry | Triangles only. Curves are approximated when the file is made, and cannot be recovered. | Triangles and polygons, built from a shared list of points. |
| Units | None. The file stores bare numbers, and every reader has to guess what they mean. | None recorded. |
| Colour and texture | None. There is no place in the format for a colour, a material or a texture. | A colour for every point, which is the main reason the format exists. |
| Separate objects | One body. Several parts written into one STL become one undivided lump of triangles. | One mesh. The header can declare extra per-point properties instead. |
| Published by | 3D Systems, 1987, for the first stereolithography machines. | Stanford University, 1994, for the scanning work that produced the Stanford bunny. |
| Written by | Every CAD program and every slicer, as the common denominator. | MeshLab, CloudCompare, Open3D and most 3D scanners. |
Questions
- Will MeshLab open this file?
- Yes. Binary little-endian PLY with position, normal and face data is the most widely supported form of the format.
- Can I get vertex colours?
- Not from an STL. The format has no place to store a colour, so there is nothing to carry across. Start from a PLY, 3MF or glTF file if you need colour.
- Is this the same as a point cloud?
- No. PLY is used for both point clouds and meshes. An STL is always a mesh, so the PLY written here is a mesh with faces, not a cloud of loose points.
- Will the PLY have vertex colours?
- No, because the STL had none. PLY can store a colour for every point and that is its main advantage, but the colour has to exist in the source. Convert from a coloured 3MF or a GLB if you need it.
- Is the PLY ASCII or binary?
- Binary, little-endian. It is roughly a third the size of the same model as ASCII PLY and every tool reads it. The specification allows big-endian too, and essentially nothing writes it.
Where to go next
The other direction
Other things to do with a STL file
Other ways to get a PLY file
Related guides and tools
- Gridfinity generatorBins and baseplates, any size, built in the browser
- Turn text into an STLType a word and print it, without drawing anything
- Turn an image into an STLA photo or a logo, turned into something you can print
- Lithophane generatorA photo printed as thickness, lit from behind
- Repair an STL that will not sliceClose the holes and separate the bad edges so a slicer accepts it
- STL to G-codeGuide
- How to convert an STL file to G-codeGuide