local engine

PLY → STL

Free PLY to STL Converter

PLY was designed at Stanford for scanning and research, so it sits between a point cloud and a polygon mesh: a file can carry only vertices, only faces, or both, with optional colour and normals. STL carries faces only. That distinction decides whether a file converts at all — a point cloud has no surface to write, and the workspace will tell you so instead of producing an empty shell.

PLY → STL
workbench
Open the PLY to STL workbench .PLY · ASCII or binary · faces required Convert in browser →
  • Full-size 3D preview before you download
  • 28 input formats and 8 output formats, four detail levels for CAD sources
  • Reads the file in your tab — nothing is uploaded
224conversions here
28mainstream formats
0 Buploaded anywhere

How to convert PLY to STL

  1. Drop the .ply fileThe reader detects ASCII or binary encoding from the header, then loads vertices, faces, colours and normals. Everything happens in the tab; the file is never uploaded.
  2. Confirm the file has facesA PLY with only vertices is a point cloud and cannot become an STL. The workspace checks the triangle count before export and stops with a clear message rather than writing an empty file.
  3. Check normals and scaleMissing normals are computed on load so the preview shades correctly. Units, however, are never present in a PLY, so measure the model and set the scale if the numbers are not already millimetres.
  4. Convert to STLTriangles are written as unshared facets — an 80-byte header, a facet count and 50 bytes per triangle. Vertex colours, normals and any extra vertex properties are dropped.
  5. Repair before slicingScanned meshes usually need hole filling and component cleanup. Do that in a mesh editor or accept the slicer's repair, then verify the shell is closed.

What happens when PLY becomes STL

A format between points and polygons

PLY is a header-driven container. The header declares each element and its properties — typical elements are vertex with x, y, z and optionally red, green, blue, and face with a vertex index list. A file may declare the vertex element alone, which is a point cloud. It may declare faces too, which makes it a polygon mesh. The header also states ASCII or binary encoding and the byte layout, so the reader knows how to parse the body without guessing from the extension.

Why point clouds cannot become STL

An STL facet is a triangle: three vertices, a normal and an attribute word. There is no record type for a lone point. A scanner's raw output is often exactly a vertex list, so converting it is not a lossy operation but an impossible one. Rather than writing zero facets, the workspace detects the absence of triangles and refuses the export, pointing you to a reconstruction step. That step — Poisson reconstruction, ball pivoting or the scanner's own meshing — is where a surface is invented from the samples.

Colour and normals are preview-only

PLY can store per-vertex colour and normals, and both are read so the on-screen model looks right. STL keeps neither: colours have no field, and while the exporter writes a normal per facet, it derives it from the geometry rather than preserving the source vertex normals. Extra properties such as confidence, intensity or scan labels are ignored entirely.

Scans are messy by nature

A scan is a measurement, not a model. Overlapping passes create non-manifold junctions, occlusion leaves holes, and noise creates tiny disconnected islands. STL faithfully records all of it, and the slicer's repair may or may not produce a printable result. For anything important, clean and remesh before converting; the converter is not a repair tool.

PLY vs STL

PLY sourceBinary STL output
ContentVertices, optional faces, colours, normalsTriangles only
EncodingASCII or binary, declared in headerBinary, fixed 50-byte records
Point cloudsSupported as a vertex-only fileImpossible; no point record exists
ColourPer-vertex RGB or other propertiesNone
UnitsNoneNone
TopologyIndexed faces with shared verticesDuplicated vertices per facet
PurposeScan and research interchangeSlicer input

Supported formats

FormatReadWriteNotes
STEP (.step .stp)Yes–ISO 10303 B-rep, AP203 / AP214 / AP242
IGES (.iges .igs)Yes–Entity-based surfaces, up to 5.3
BREP (.brep)Yes–OpenCascade native B-rep
STL (.stl)YesYesBinary and ASCII triangles, no units
OBJ (.obj)YesYesv / vn / f records; .mtl references ignored
PLY (.ply)YesYesBinary position and normal arrays
GLB / glTF (.glb .gltf)YesYesglTF 2.0, binary or JSON with data URI
3MF (.3mf)YesYesOPC/ZIP package, declares millimetres
FBX (.fbx)Yes–Binary and ASCII, static mesh only
DAE (.dae)YesYesCollada scene graph is flattened
3DS (.3ds)Yes–Legacy chunk-based 3D Studio format
AMF (.amf)Yes–XML, ZIP-compressed packages supported
USDZ (.usdz)YesYesZIP containing a USD stage

Known limitations and why a conversion can fail

Vertex-only files are refused

A point cloud cannot be written as STL, and the workspace says so instead of emitting an empty file. Reconstruct a surface in a scan tool, then convert the resulting mesh.

No unit is recorded

PLY numbers are raw coordinates. Scanner units vary by device and project, so check a known dimension and correct the scale in the workspace or the slicer.

Non-manifold scans and holes

Measured surfaces are rarely watertight. The conversion preserves holes, overlapping shells and stray triangles, and the slicer may refuse or repair them. Cleanup belongs before conversion.

Large scan files exhaust memory

A dense cloud or a photogrammetry mesh can hold millions of vertices, and parsing plus export happens in a browser tab. Decimate or crop the scan before loading it.

Frequently asked questions

Can I convert on this page itself?

No. This page is the reference for the PLY to STL path, and the conversion itself runs in the workspace that the button above opens, with both formats already selected. Your file is read in that browser tab and the download is written locally, so there is no upload stage in either place. Keeping the documentation and the engine on separate addresses lets file support and detail levels change behind one workspace without breaking the page you are reading.

My PLY converts to nothing. Why?

Because it is a point cloud. A PLY file may contain a vertex list with no face list at all, which is how laser scanners and photogrammetry tools often store raw output. STL can only describe triangles, so there is nothing to write. The workspace checks for triangles before exporting and refuses the conversion with an explicit points-only message instead of handing you a zero-facet file. Open the cloud in a reconstruction tool and generate a surface mesh first, then convert that PLY.

Does the converter keep vertex colours?

No, because STL has no colour channel. A PLY can store red, green and blue per vertex, and the preview uses them, but a binary STL facet record is a normal plus three vertices plus a two-byte attribute word that is written as zero. If colour matters, keep the PLY or convert to a format that supports it; the printable geometry is unaffected.

Why does a scanned PLY print with holes?

Because scanners produce noisy, incomplete surfaces: missing patches where the sensor had no line of sight, non-manifold junctions where passes overlap, and stray triangles floating near the surface. STL preserves all of it faithfully, and a slicer will either refuse the model or repair it. Run a mesh cleanup pass — fill holes, remove small components, remesh — before converting, or accept the slicer's repair and inspect the result.

Is ASCII or binary PLY better?

Binary, for anything beyond a toy file. ASCII PLY writes every coordinate as decimal text, which inflates file size several-fold and makes parsing slower inside the tab. The reader handles both, so the choice affects load time and memory rather than the output. A dense scan in ASCII can exhaust the tab before it reaches the exporter.

Why is the model the wrong size?

PLY stores no unit. A scan produced in millimetres converts to an STL whose numbers look correct to a slicer; the same scan captured in metres or in arbitrary scanner units arrives at the wrong scale. Measure a known feature after import and use the workspace scale control or the slicer's import scaling. Nothing in the file tells the converter what the numbers mean.

Can I convert several PLY scans into one model?

Not here. The workspace converts one file per run and writes one STL. Merging scans is a registration task that belongs in a scan-processing tool, where overlapping clouds are aligned and fused into a single surface; concatenating them in a converter would produce intersecting shells rather than one model.

References

Related converters

All converters

Last updated: