How to convert IGES to GLB
- Load the IGES fileThe reader validates the D/P section structure and gathers geometric surface entities, skipping annotations and non-geometry.
- Tessellate each surfaceExact surfaces are triangulated at the chosen detail level. Faces that fail — common with decades-old exports — are skipped individually.
- Merge into one meshSurviving faces join a single triangle set; coincident vertices weld where position and normal both match.
- Write the binary containerThe exporter packs geometry into a GLB: JSON scene chunk plus binary vertex/index chunk, one file, no sidecars.
What happens when IGES is converted to GLB
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 GLB container adds
Around the merged mesh, GLB adds a minimal scene graph and accessors — exactly the shape three.js, Babylon and WebGPU viewers expect. This is the right target when the destination is a web page rather than a slicer.
The 2 GB ceiling is not practical
GLB offsets are uint32, so the format itself tops out at 4 GiB — but the browser converts in memory, so realistic input is a few hundred MB of IGES. Tessellation detail dominates output size; Draft on the same part can be five times smaller than Maximum.
IGES vs GLB
| IGES surfaces | Binary glTF mesh | |
|---|---|---|
| Feature | IGES source | GLB output |
| Geometry | Exact surfaces as entities | Indexed triangle mesh |
| Container | 1980s text sections | Binary glTF 2.0: JSON + BIN chunk |
| Consumer | Legacy CAD tools | Web viewers, three.js, game engines |
| Units | Loosely declared | Metres by convention — no rescaling |
| Materials | Rarely usable in legacy files | Dropped; position and normal only |
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 IGES 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.
Metres on the outside, millimetres on the inside
glTF convention is metres; IGES mechanical data is usually millimetres or inches. No rescale happens, so numeric values pass through — scale on the consuming side if absolute size matters.
Frequently asked questions
Can I convert on this page itself?
No. This page is the reference for the IGES 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.
Why choose GLB over STL for legacy IGES data?
STL is facet soup for slicers; GLB carries an indexed mesh that web tools render directly. If the destination is a website or viewer rather than a 3D printer, GLB is the smaller, more native choice.
Does Draco compression apply?
Not in this converter. The GLB is written with plain buffers for maximum viewer compatibility.
Can multiple IGES parts become multiple meshes?
No — everything tessellates into one merged mesh.
References
- OpenCascade documentation — B-rep, IGES and tessellation
- Khronos glTF 2.0 specification
- How this site is built and tested
Related converters
All converters
Last updated: