Notes on 3D file formats

Working notes from building the readers behind this site. Mostly about what is actually inside the files, checked against real ones rather than against what the documentation says.

What is actually inside a SolidWorks file

A .sldprt is usually described as a closed box holding a Parasolid solid nobody else can read. Half of that is true. Here is what is really in the file, including the mesh that is in there all along.

5 cited sources

Reading a 3ds Max file without 3ds Max

The .max format has no specification, no SDK you can use from a browser, and a reputation for being impossible. It is a compound file full of chunks, and it can be read directly. Here is how.

4 cited sources

Draco compression, and the case where it makes your file bigger

Draco routinely takes 90 percent off a glTF file. It also has a failure mode that nobody warns you about: on a scene made of many small meshes it can add a third to the size. Measurements, and what to do instead.

4 cited sources

STL or 3MF: what the newer format actually fixes

STL has been the default 3D printing format since 1987 and stores less than you think: no units, no colour, no arrangement, and no guarantee the mesh is even closed. 3MF fixes those. Whether that matters depends on what you print.

3 cited sources

Why your GLB looks different in every viewer

The same file, three viewers, three appearances. Almost always one of four things: colour space, an extension the viewer does not implement, the lighting environment, or normals that were never in the file.

4 cited sources

Z-up, Y-up, and the model that arrives on its side

Half of 3D thinks Z points up and half thinks Y does. The split runs along a clean line: it is CAD and DCC against realtime and the web. Which formats sit where, and where to fix it.

3 cited sources

Where to go from here

The format reference has a page for each of the formats these posts talk about. If you have a file in front of you, the viewer will open it and show you its scene tree, and the converter will turn it into something else. Both run in your browser, so nothing is uploaded.