local engine

STEP → GLTF

Free STEP to glTF Converter

Yes. Drop a STEP file, choose glTF and download. You get the JSON scene plus a separate binary buffer, the form to pick when the model still has to be inspected or patched as text.

Converting STEP to glTF is a tessellation followed by container packing. Each exact B-rep face is triangulated at your chosen detail level, the faces are merged into one mesh, and the writer emits a JSON glTF document with the vertex and index data embedded as base64 buffers — one self-contained text file that any glTF viewer opens without sidecar files.

Drop a STEP file, get GLTF Reads STEP, writes GLTF here .step/.stp → .gltf Pick a STEP file, export GLTF
  • 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 STEP to glTF

  1. Load the STEP fileSelect a .step or stp file. The CAD kernel validates the ISO 10303-21 header before any geometry is touched.
  2. 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.
  3. 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.
  4. 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 glTF

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.

What the glTF container adds

glTF wraps the mesh in a scene graph with nodes and accessors. For a converted solid that is one mesh node carrying the merged geometry, but the structure matters for the destination: web viewers, three.js and game engines all consume glTF natively, so no further processing is needed on their side.

JSON with embedded buffers vs the binary GLB

This converter writes .gltf as JSON with base64-embedded buffers, which stays hand-editable and diff-friendly. The same geometry as .glb is roughly 25% smaller because binary buffers skip the base64 expansion; pick GLB when size matters and glTF when text tooling matters.

STEP vs glTF

STEP solidJSON glTF mesh
FeatureSTEP sourceglTF output
GeometryExact B-rep surfacesIndexed triangle mesh
ContainerISO 10303-21 textJSON document, base64-embedded buffers
Coordinate conventionMillimetres by conventionMetres by convention — no rescaling is applied
Scene graphAssembly tree, featuresOne mesh node
Colour and materialsOften present in the sourceDropped; position and normal only

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

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.

Scale convention mismatch

glTF is defined in metres; STEP mechanical parts are almost always millimetres. The converter does not rescale, so a 100 mm bracket exports as 100 units. Viewers that honour the metre convention will show it 100× too large — rescale on import if absolute size matters.

Frequently asked questions

Can I convert on this page itself?

No. This page is the reference for the STEP to glTF 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.

Is the glTF self-contained?

Yes. Vertex and index data are embedded in the JSON as base64, so the .gltf file is one self-contained text file with no external .bin or texture dependencies.

glTF or GLB — which should I pick?

Same geometry, different packaging. GLB is smaller (binary buffers) and what most pipelines expect; JSON glTF is human-readable and easier to post-process with scripts.

Does the assembly structure survive?

No. The solid is merged into one mesh node. Component names and the assembly tree are dropped.

References

Related converters

All converters

Last updated: