100% local processing — your files never leave your computer

PLY to STL Converter

Convert PLY (Polygon File Format) models to STL directly in your browser. Geometry is processed locally, and your file is never uploaded.

Your PLY file stays on this device. MeshWrench converts it to STL locally in your browser.

Up to 150 MB. Supports ASCII and binary (little- or big-endian) PLY. STL cannot store vertex colors or normals — surface geometry only. Coordinates are kept exactly as written, since PLY has no unit system.

Waiting for a file

Preview of the converted STL geometry, shown with flat shading. Vertex colors and normals from the source PLY are not shown, since STL cannot store them.

How to convert PLY to STL

  1. Select a PLY file using the picker above.
  2. MeshWrench parses it locally, in a background worker — nothing leaves your device.
  3. Review the preview, dimensions and any warnings, then download the converted STL file.

What geometry is preserved

The converter reads your PLY file's declared header schema — its own list of elements and properties, in whatever order they appear — and extracts vertex x/y/z coordinates and face vertex_indices (or the vertex_index alias) regardless of where those properties fall among any others in the file. Triangle faces are used as-is; larger polygon faces are triangulated the same way MeshWrench's OBJ converter triangulates polygon faces. The output is one flattened triangle mesh with correct geometry and consistent, outward-facing normals.

Which PLY encodings are supported

All three standard PLY 1.0 encodings: ascii, binary_little_endian and binary_big_endian. The file's own header declares which one it uses, and every one of the 8 standard PLY scalar types is supported — both the short Stanford names (uchar, short, float, double, and so on) and their explicit-width aliases (uint8, int16, float32, float64).

What happens to vertex colors and normals

STL stores surface geometry only. Vertex colors, per-vertex normals and texture coordinates are not included in the download — this is a limitation of the STL format itself, not something MeshWrench chooses to drop. Geometric face normals are always recalculated from the final triangle positions rather than trusting a PLY file's own per-vertex normals, since STL can't represent smooth shading anyway. If your file includes any of these, a warning appears before you download.

What happens to unrecognized elements and properties

A PLY file can declare elements and properties beyond vertex and face — scanner metadata, per-vertex confidence or intensity values, edge lists, application-specific data. MeshWrench reads past these safely (so the rest of the file still parses correctly) without interpreting them, and shows a single summary warning rather than one warning per skipped field.

Why a point cloud (no faces) can't convert

Some PLY files contain only a vertex element — a raw point cloud with no face element at all, common straight off a 3D scanner before surface reconstruction. MeshWrench rejects these with a clear error instead of guessing at a surface: turning scattered points into a watertight mesh is a surface-reconstruction problem, not a format-conversion one, and doing it silently would produce geometry that only coincidentally resembles your object.

Double-precision coordinates

STL only stores single-precision (float32) coordinates. If your PLY file declares its x/y/z vertex properties as double (float64), MeshWrench narrows them to float32 for the STL output and shows a warning — this is an unavoidable precision loss inherent to the STL format, not something MeshWrench could preserve by converting differently.

PLY versus STL

PLY (the Polygon File Format, sometimes called the Stanford Triangle Format) is a flexible, self-describing format that can carry an arbitrary set of per-vertex and per-face properties — colors, normals, confidence values, and more — in either ASCII or binary form. STL stores only raw triangle geometry, with no units and no metadata, but remains the most widely supported format across slicers and CAD tools — which is why converting to it is useful even though it's the simpler format.

Why a PLY may fail to convert

Is the file uploaded?

No. There is no server-side conversion route in MeshWrench. Your browser reads the PLY file, parses it, and builds the STL file, all on your device. You can verify this yourself: open your browser's developer tools, watch the network tab, and convert a file. No request containing your file will appear.

Frequently asked questions

Is my PLY file uploaded?

No. The file is read, parsed and converted entirely in your browser, inside a background Web Worker. It's never sent to a server — check your browser's network tab while a file converts to confirm this yourself.

Does this work with PLY files from a 3D scanner?

Yes, for scans that already include face (triangle) data. MeshWrench reads ASCII and both binary (little- and big-endian) PLY encodings, and follows the file's own declared property order rather than assuming a fixed layout — so scanner output with extra fields (confidence, intensity, per-vertex color) converts correctly. A PLY file with points only, and no faces, can't be converted to STL — see below.

Are vertex colors and normals preserved?

No. STL stores surface geometry only — no color or per-vertex normal information exists in the format. If your PLY includes either, MeshWrench shows a warning before you download, but the STL itself never contains them.

What happens to a PLY file with points but no faces?

MeshWrench rejects it with a clear error rather than guessing at a surface. STL can only represent triangles, and inventing a surface from an unordered point cloud isn't something a format converter should do silently — that's a job for dedicated surface-reconstruction software, not this tool.

Why did my conversion fail?

Usually because the file's header is malformed, a face references a vertex that doesn't exist, a face has an invalid or self-intersecting shape, or the file only contains points and no usable face data — see "Why a PLY may fail to convert" below for the full list MeshWrench checks for.