local engine

STEP → GLB

Free STEP to GLB Converter

Yes. Drop a STEP file, choose GLB and download. The solids are tessellated by the B-rep kernel, but glTF counts in metres, so a STEP file authored in millimetres can arrive a thousand times too large in a strict viewer.

A STEP file stores exact boundary-representation geometry: NURBS surfaces, trimmed faces and assembly structure under ISO 10303. A GLB stores triangles in a binary glTF 2.0 container. Converting tessellates every face with a chosen deflection level, keeps each part as its own node and writes a self-contained .glb that a browser, three.js scene or AR pipeline can load directly.

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

  1. Load the STEP assemblySelect a .step or .stp file. The parser reads ISO 10303 Part 21 entities, reconstructing trimmed NURBS faces, edges and product structure before any triangle exists.
  2. Pick a deflection presetChoose Draft, Balanced, Fine or Maximum. Each level fixes a linear chord tolerance and an angular tolerance that control how closely the triangles follow curved surfaces.
  3. Tessellate the B-repThe OpenCascade WebAssembly kernel subdivides each trimmed face until both tolerances are met, emitting triangles whose normals come from the underlying analytic surface.
  4. Write one node per partEvery part becomes its own mesh node with world transforms baked into its vertices, and its STEP style colour becomes a base-colour material. Product names, the assembly hierarchy and PMI data stop here.
  5. Write the binary GLBThe exporter serialises the mesh through a glTF 2.0 writer: JSON chunk with accessors and bufferViews, BIN chunk with raw position and normal arrays, all inside one .glb file.

What happens when STEP is converted to GLB

What the conversion actually does

STEP geometry is exact mathematics: a cylinder is a real cylinder, not an approximation. GLB has no concept of surfaces, only triangles. The bridge is tessellation, and its quality is entirely the deflection setting: coarse presets produce light models with visible facets on curves, fine presets produce heavy models that look smooth up close. Four presets cover the usual trade-off space.

What survives the conversion

Geometry, normals and per-part style colours survive: the test assembly below arrived as 18 nodes with 18 base-colour materials in red, green, blue and yellow. What does not survive is naming and structure — part names, the product hierarchy and PMI are dropped. Units are not rescaled: STEP declares its length unit in the file header (millimetres in most mechanical CAD, but inches and metres also occur), while glTF is metres by convention. A 100 mm bracket therefore arrives as numeric 100 and appears 1000 times too large unless the viewer or your pipeline scales it.

Why GLB instead of OBJ for the web

GLB is binary, loads in one request, stores indexed geometry with compact accessors and parses without text tokenisation. An equivalent OBJ from the same tessellation is several times larger as text and needs a sidecar for anything beyond raw triangles. For embedding CAD previews in a web page, GLB is the container browsers were designed around.

Choosing the right detail level

Draft suits quick previews and thumbnails. Balanced is the default for most parts. Fine resolves small fillets and holes. Maximum is for dense curved surfaces where faceting is still visible; it produces the largest files and the slowest loads, so use it only when the curves matter.

STEP vs GLB

STEP sourceGLB output
FeatureSTEP sourceGLB output
GeometryExact B-rep NURBS surfacesTessellated triangles
CurvatureExact until tessellatedFixed by deflection preset
AssemblyProduct structure, named partsSeparate nodes, names lost
ColourStyle entitiesPer-part base colours, no textures
PMI and sketchesAnnotated in fileNot representable
UnitsDeclared in the STEP header (mm, inch, m)Metres by convention, coordinates not rescaled
ContainerISO 10303 Part 21 textBinary glTF 2.0 chunks
Load pathCAD kernel requiredAny glTF viewer, one request
Output filesOne .step or .stpOne .glb

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

The model is 1000 times too big in viewers

STEP declares its length unit in the file header — millimetres in most mechanical CAD, but inches and metres also appear; glTF viewers assume metres. The converter does not rescale, so apply the factor your source header implies on import. Use the STEP to 3MF converter when you need millimetres declared inside the file.

Colours arrive flat, names do not arrive at all

STEP style colours are carried into the GLB as base-colour materials, but textures and advanced style graphs are not. Product names and the assembly hierarchy are dropped, so every node in the test assembly is labelled SOLID; rename parts in your viewer or engine if you need them.

Huge assemblies get heavy

A fine tessellation of a large assembly can reach millions of triangles, and the GLB grows accordingly. Drop to Balanced or Draft for preview use, and reserve Fine for parts you will inspect closely.

Measured on this machine

The same assembly converted three times at each preset, with the GLB parsed for triangle count, size and bounding box. Times are medians, from dropping the file to the finished download.

PresetTrianglesGLB sizeTime
Draft7,728298 KB3.58 s
Balanced16,512615 KB2.18 s
Fine26,088959 KB2.75 s
Maximum51,9201.89 MB3.86 s

Maximum is 6.7× the triangles but 6.3× the bytes of Draft: GLB stores indexed geometry, so the container grows a little more slowly than STL. Every output kept 18 part nodes and the four style colours as base-colour materials, with the nodes named SOLID. Bounding box identical at 5080 × 2210 × 3810 mm. Sample: as1_pe_203.stp, 139 KB. Tested on Chrome 156 / Windows 10 / Intel i7-7700K / 16 GB.

Frequently asked questions

Can I convert on this page itself?

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

Which detail level should I pick?

Start with Balanced. If curved edges look faceted in the viewer, move to Fine. Draft is fine for checking whether a file converts at all, and Maximum is for dense surfaces under close inspection.

Is the tessellation the same as in my slicer workflow?

The kernel and tolerance model are the same across STEP outputs on this site. STL, OBJ and 3MF from the same preset produce the same triangles; only the container differs.

Why do the parts keep their colours but lose their names?

Each part is written as its own node and material, so a colour stays attached to the right geometry. STEP product names and the assembly hierarchy are not mapped, so the nodes arrive unnamed — all of them labelled SOLID in the test file used here.

Can I use the GLB in AR Quick Look?

Rename the extension to .usdz only after a real USDZ conversion; plain GLB is not a valid AR bundle. Use the dedicated GLB to USDZ converter for Apple AR.

References

Related converters

All converters

Last updated: