Convert PLY to STL

Runs on your device · Your file never leaves your device.

PLY is what 3D scanners produce — photogrammetry, structured-light scanners, LiDAR apps on a phone. It stores colour per point, which is lovely to look at and useless to a slicer. This converts the scan into an STL you can print.

A scan is usually dense, so expect a large file and give the tab a moment. The per-point colours do not come into the STL; the surface does, at the scale the scanner recorded it unless you choose a unit. If you want to keep the colour as well, convert to GLB instead and keep both files.

The conversion runs on your own machine, which for a 3D file is the whole point: a model is usually a client’s product, a scanned property or something not yet announced. Nothing is sent to a server, so there is nothing to delete afterwards and nothing to take anyone’s word for.

How to convert PLY to STL

  1. Drop the PLY file — and its companion files if it has any.
  2. Check that STL is selected.
  3. Press Convert.
  4. Download the STL file.

Supported formats and limits

Input
PLY
Output
STL
Companion files
None — a PLY is a single file
Keeps animation
No — the format cannot store it
Where it runs
In your browser; the model is never uploaded

Not for: Cleaning up a scan — stray points, holes and noise come through exactly as the scanner left them. A scan saved as points only, with no surface, has no triangles to print; convert it to GLB or OBJ to keep the points.

The PLY needs faces, not only points

A PLY can hold only a cloud of points, or points joined into faces. An STL is made of triangles and nothing else, so it needs the faces. When your scanning software offers a choice between exporting points and exporting a mesh, choose the mesh for an STL. Faces with three corners are copied as they are, faces with four corners are split into two triangles, and faces with five or more are split into a fan of triangles from their first corner. Binary and text PLY files are both read.

A PLY with points and no faces is refused with a plain message, because there are no triangles to write; convert it to GLB or OBJ to keep the points.

What the STL keeps

Only the triangles. The colour of each point, the stored normals and any texture coordinates are dropped, and each triangle's facing direction is worked out again from the order of its corners.

An STL also stores every triangle in full: three corners of three numbers each, plus the facing direction, 50 bytes per triangle. A PLY lists each point once and lets the faces refer to it, so for the same surface the STL is often more than twice the size of a binary PLY. That is how STL is built, not a sign that anything was added.

Units and direction

A PLY stores no unit, so the page shows its size as bare numbers and asks what one unit means. Leave it as it is when the numbers are millimetres, and they go into the STL unchanged. Scans from phone apps are often in metres: choose A metre, and the STL is written in millimetres, which is what slicers expect. The page shows the size in millimetres before you convert.

Scanners do not agree on which axis is up, so the axes are kept as they are. If the scan would lie on its side on the print bed, choose the quarter turn on the page before converting.

Frequently asked questions

Are my files uploaded to a server?
No. This conversion runs inside your browser using your own device’s processing power, and the file is not uploaded. Once a tool has been used once (video, text recognition and background removal download their engine from this site the first time), it keeps working when your connection drops.
My scan is enormous. Will it work?
If a scan is too dense for the browser to hold, you are told that plainly rather than left waiting — decimate it in your scanning software first, or convert it in pieces.
Where did the scan colours go?
STL cannot store colour. PLY keeps it per point; STL keeps triangles only. Convert to GLB if you want to keep the colour.

Related tools

More in 3D models

This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা