How to convert STEP to PLY
- Load the STEP fileSelect a .step or stp file. The CAD kernel validates the ISO 10303-21 header before any geometry is touched.
- Read the B-rep definitionFaces, edges and trimming curves are read as exact geometry — not as triangles — so curvature is preserved at every detail level.
- Tessellate each faceEvery face is triangulated at the chosen detail level. Draft keeps files small; Maximum tightens the deflection until curved silhouettes look smooth at close range.
- Assemble one meshAll faces are merged into a single triangle set and the result is handed to the exporter.
What happens when STEP is converted to PLY
What a CAD file really stores
STEP and IGES are boundary representations: exact surfaces (planes, cylinders, splines) with trimming curves that delimit each face. There are no triangles anywhere in the file — any triangle you see was computed on the fly.
Tessellation is the whole conversion
The kernel converts each exact face into triangles by recursive subdivision until the chordal error stays under the detail level's deflection. A cylinder tessellated at Draft may be 32 segments; at Maximum it can exceed 512. The triangle count scales with surface curvature, not file size.
Only position and normal survive
The mesh handed to exporters carries vertex positions and normals. Nothing else in the source has a destination in a plain mesh format: feature history, assembly structure, materials, names and PMI annotations are dropped.
Why PLY is the compact choice for CAD output
STL writes twelve floats per triangle even when vertices are shared; PLY writes each vertex once and references it by index from the face list. A smooth CAD part with tens of thousands of shared vertices typically saves a quarter to a third of the file size compared with binary STL, at identical geometry.
STEP vs PLY
| STEP solid | Indexed PLY mesh | |
|---|---|---|
| Feature | STEP source | PLY output |
| Geometry | Exact B-rep surfaces, no triangles | Indexed triangle mesh, shared vertices |
| Curvature control | None — surfaces are exact | Four detail levels set the tessellation deflection |
| Units | Millimetres by convention | Plain numbers; PLY stores no unit |
| Colour and materials | Often present in the source | Dropped; position and normal only |
| Structure | Solids, faces, feature history | One merged mesh, no hierarchy |
Supported formats
| Format | Read | Write | Notes |
|---|---|---|---|
| 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) | Yes | Yes | Binary and ASCII triangles, no units |
| OBJ (.obj) | Yes | Yes | v / vn / f records; .mtl references ignored |
| PLY (.ply) | Yes | Yes | Binary position and normal arrays |
| GLB / glTF (.glb .gltf) | Yes | Yes | glTF 2.0, binary or JSON with data URI |
| 3MF (.3mf) | Yes | Yes | OPC/ZIP package, declares millimetres |
| FBX (.fbx) | Yes | – | Binary and ASCII, static mesh only |
| DAE (.dae) | Yes | Yes | Collada scene graph is flattened |
| 3DS (.3ds) | Yes | – | Legacy chunk-based 3D Studio format |
| AMF (.amf) | Yes | – | XML, ZIP-compressed packages supported |
| USDZ (.usdz) | Yes | Yes | ZIP containing a USD stage |
Known limitations and why a conversion can fail
This is a one-way flattening
The STEP feature tree, sketches and constraints cannot be recovered from the mesh output. Keep the source file — the conversion cannot be reversed.
Hollow results mean open edges
If the source solid has faces the kernel cannot sew shut, the tessellated shell can come out with open boundaries. Slicers usually repair small gaps, but check the preview.
Detail level changes file size, not accuracy claims
Higher detail means more triangles and a closer fit to the true surface. It does not make the geometry 'more correct' — the underlying B-rep is exact either way.
Vertex colours are not read from STEP
Some STEP files carry colour attributes per solid. The tessellation pipeline keeps geometry only, so the PLY comes out uncoloured even when the source was coloured.
Frequently asked questions
Can I convert on this page itself?
No. This page is the reference for the STEP to PLY 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.
Does PLY keep the exact CAD surfaces?
No. PLY is a triangle format. The conversion tessellates each exact face at your chosen detail level; the triangles are an approximation whose closeness is controlled by that setting.
Why is my PLY smaller than the STL of the same part?
PLY indexes shared vertices instead of repeating them per facet, so smooth CAD parts — which are full of shared vertices — save a significant fraction of the file size.
Can I choose ASCII PLY?
This converter writes binary PLY, which is what most tools read fastest. Blender, MeshLab and CloudCompare all open it directly.
References
- ISO 10303-21:2016 — STEP exchange file structure
- three.js documentation — loaders and exporters
- How this site is built and tested
Related converters
All converters
Last updated: