The .n3xd file format¶
A N3XD project is one JSON document. It holds the design itself, not the resulting geometry: the tree, every feature in the order it was applied, sketches with their constraints, parameters, configurations, materials and simulation setups. Opening a file replays that history through the geometry kernel, so you get the model the author built, still editable at every step.
It is documented here so an agent can read what it is working with, and because a design you cannot get out of a tool is not really yours. Nothing about the format is proprietary: it is JSON, readable in a text editor, and the command catalog that produces it is published too.
Shape¶
{
"format": 2,
"project": { "type": "project", "name": "Bracket", "revision": 42, "...": "..." },
"objects": {
"<uuid>": { "type": "part", "name": "Plate", "...": "..." },
"<uuid>": { "type": "sketch", "plane": "XY", "elements": [], "...": "..." }
}
}
- Every object is keyed by its id in a flat
objectsmap and carries atypediscriminator (project,assembly,part,body,instance,sketch, or the feature's ownfeature_type). The id is the map key, so it is not repeated inside the object. - Defaults are omitted, which keeps files small and diffs readable. An absent field means "the current model default", so changing a default is a format-affecting change.
- Units are always millimetres. The document has no unit setting; display
units are a per-user presentation choice. Imported STEP/IGES geometry is
normalised at the reader and the source scale is kept on the import feature
(
units_mm). - References survive edits. A sketch on a face, a fillet on an edge or a mate against a body stores a topology anchor describing that geometry rather than an index into the kernel's output, so a rebuild can resolve it again after the shape underneath changes.
Stability¶
The format carries a format version and is meant to stay readable. It holds
everything a deterministic rebuild needs and extends for parameters,
configurations, diagnostics and repaired references without breaking what came
before. Since it is plain JSON, you can check files into git next to the parts
they describe and a design review becomes a diff.
Hosted projects use the same document; only where it is stored and how it is addressed differ. Export downloads exactly this file, and importing it elsewhere gives back the same editable model.