Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ intermediate representation (`ToolpathIR`), and render an interactive Three.js (
Canvas 2D) preview — with first-class **Vue, React, and Svelte** integrations that are thin adapters
over one shared, framework-neutral engine.

> **Status: published.** Thirteen `@chestnutlabs/*` packages are on npm (latest **`v0.3.0`**,
> **Status: published.** Thirteen `@chestnutlabs/*` packages are on npm (latest **`v0.4.0`**,
> lockstep-versioned with npm provenance). E0–E11 of the
> [master plan](docs/00_PROJECT_MASTER_PLAN.md) are closed; `v0.3.0` adds the low-resource Canvas 2D
> renderer, expanded color modes, wipe/seam visibility, time-based scrub, and binary G-code
> (`.bgcode`) decode. Install from npm — see *Quick start* below.
> [master plan](docs/00_PROJECT_MASTER_PLAN.md) are closed; **`v0.4.0` adds non-extrusion toolpaths —
> CNC / laser / plotter**: `MoveKind.Cut` classification, an opt-in modal `toolPower` (laser power /
> spindle RPM) channel, canned drilling-cycle expansion (`G81`/`G82`/`G83`), evidence-based controller
> recognition (GRBL laser/mill, LinuxCNC) with **validation tiers** (GRBL-laser hardware-validated),
> power / cut-vs-rapid color modes, and toolpath STL export — all honesty-tiered, with FDM output
> byte-identical. Install from npm — see *Quick start* below.

![3DBenchy rendered as tubes with feature coloring in the showcase viewer](docs/media/viewer-benchy-tubes.png)

Expand All @@ -37,10 +40,11 @@ over one shared, framework-neutral engine.
- **Rich toolpath coloring** — by feature type, move speed, object, per-layer height, or (for
non-extrusion) tool power and cut-vs-rapid, plus toggleable wipe/seam moves; time-based scrub with a
print-time estimate; and a source-line ↔ segment debugger mapping.
- **Non-extrusion toolpaths — CNC / laser / plotter** *(experimental)* — cut/burn/draw moves classified
- **Non-extrusion toolpaths — CNC / laser / plotter** *(honesty-tiered)* — cut/burn/draw moves classified
as `Cut`, a modal `toolPower` (laser power / spindle RPM) channel, canned drilling-cycle expansion
(`G81`/`G82`/`G83`), and controller recognition (GRBL laser/mill, LinuxCNC) — all honesty-**tiered**:
reported `inferred` until confirmed on real hardware, never fabricated.
(`G81`/`G82`/`G83`), and evidence-based controller recognition (GRBL laser/mill, LinuxCNC) — each
carrying a **validation tier**: reported `inferred` until confirmed on real hardware, then `known`.
**GRBL-laser is hardware-validated**; GRBL-mill and LinuxCNC remain experimental. Never fabricated.
- **Honest live progress** (for printer telemetry) — a normalized `ProgressObservation` contract
mapped onto the toolpath with tiered confidence: a precise cut + marker when the source position
is known, an uncertainty band when it is approximated, stale-signal handling, and user scrub
Expand Down
10 changes: 5 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ See also [`../PROJECT_SETUP.md`](../PROJECT_SETUP.md) for the local environment
Provenance of inherited vs. Chestnut code, the exact founding baseline, and the branch mapping are
tracked in [`UPSTREAM_PROVENANCE.md`](UPSTREAM_PROVENANCE.md).

## Current state (updated 2026-07-29 — v0.3.0 shipped to npm; v0.4.0 in prep; #188 bgcode closed; #189 CNC/laser phases 1–5 built + real-file lexer/detection; #152 STL export done)
## Current state (updated 2026-07-29 — **v0.4.0 shipped to npm** (13 lockstep pkgs); #188 bgcode closed; #189 CNC/laser phases 1–5 + real-file lexer/detection, G0-rapid fix, GRBL-laser hardware-validated, #152 STL export done; DD-017 RS274NGC parametric programs proposed)

| Epic | Status | Gate |
|---|---|---|
Expand All @@ -65,7 +65,7 @@ Shipped so far: `packages/toolpath-core` (SoA `ToolpathIR`, capability model), `
`packages/gcode-renderer-three` (geometry builders + scene/lifecycle), the IR adapter (`src/ir-adapter.ts`),
golden/native fixtures + manifest with CI validation, boundary lint, license CI gate, and Vite/Electron
consumer smoke harnesses, plus the five framework adapters (`gcode-preview-core`/`-vue`/`-react`/
`-svelte`/`-element`). CI (`build`) is a required check on `main`/`dev`. **All ten `@chestnutlabs/*`
packages are published to npm at `v0.2.0`** (lockstep, npm provenance); `main` is the release branch,
publishing from tagged GitHub Releases (`v0.1.0` E7/DD-008, `v0.2.0` E9/DD-009). An E10-phase-1
changeset accumulates on `dev` for the next release (`0.3.0`).
`-svelte`/`-element`). CI (`build`) is a required check on `main`/`dev`. **All thirteen `@chestnutlabs/*`
packages are published to npm at `v0.4.0`** (lockstep, npm provenance); `main` is the release branch,
publishing from tagged GitHub Releases (`v0.1.0` E7/DD-008, `v0.2.0` E9/DD-009, `v0.3.0` E8/#188,
`v0.4.0` #189 non-extrusion). Changesets accumulate on `dev` for the next release.
Loading