diff --git a/README.md b/README.md index 6751ce70..cbe7f170 100644 --- a/README.md +++ b/README.md @@ -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) @@ -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 diff --git a/docs/README.md b/docs/README.md index ccd938d2..a4c08bf4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 | |---|---|---| @@ -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.