Slicers and firmware annotate G-code differently. @chestnutlabs/gcode-dialects provides
annotators for PrusaSlicer, OrcaSlicer/Bambu Studio, Cura, Klipper, Marlin, and RepRap-flavor
output — surfacing features, objects, bed geometry, thumbnails, and multi-tool metadata.
Crucially, each claim is capability-tagged (known | inferred | approximated | unavailable, see
the capability model) — the stack annotates only what a given dialect
actually disclosed, and says so when it can't. The evidence-dated
compatibility matrix
records exactly what each dialect supports.
Dialects are a plugin layer: the batteries worker bundles them all; a slim custom worker can include only the ones you need (see Workers).
.gcode.3mf@chestnutlabs/gcode-containers reads .gcode.3mf — a sliced-plate ZIP container — with
zero dependencies and bounded, hardened extraction (defended against adversarial archives).
A container can hold several plates; select one with parseOptions.plate.
Object-exclusion markers (M486 / EXCLUDE_OBJECT) and multi-tool metadata are parsed where the
dialect provides them, so a preview can reflect per-object and per-tool structure.
Which position-affecting G/M-codes are honored — and the remaining gaps — is tracked in the G-code motion coverage matrix. The modeling itself is described in Live progress & motion model.