nanobrush / docs /PROGRESS_2026-10-26.md
nmarshall's picture
document: reindex properties
fc56f58
|
Raw History Blame Contribute Delete
3.87 kB
# Ten medium tasks — 2026-10-26
Scope: extend native headless formats and geometry. Each stage is independently checked and committed. Native geometry policies do not claim measured editor parity. All fixtures remain in Xet; authored code/tests/docs remain ordinary Git.
| Stage | TODO | Scope | Status/evidence |
| --- | --- | --- | --- |
| 1 | P6.23 | Structured preflight reports | Complete: `preflight INPUT --to FORMAT` emits schema-1 JSON with grouped ASCII/downgrade/duplicate-name incompatibilities; reports never mutate documents. Parser/encoder validation remains authoritative. Unit tests and existing CLI unit regressions pass. |
| 2 | P6.24 | Explicit Latin-1 TXT input | Complete: ISO-8859-1 API and `--text-encoding latin1`, no guessing, conflicting UTF-8 BOM rejected; transcoded bytes and scratch ownership are bounded. UTF-8 remains default and output. Encoding and CLI unit suites pass. |
| 3 | P6.25 | Bounded computed OBJ writer | Complete: explicit contours and patch grids, stable per-brush exact position deduplication, global 1-based indices and quad winding. Four E02 OBJ outputs match exact bytes; invalid geometry/limits tests pass. |
| 4 | P6.26 | CLI OBJ with loss acknowledgement | Complete: `--to obj`, grouped preflight losses and explicit `--allow-lossy`; missing computed data remains blocking. Existing atomic publication is reused. CLI acknowledgement/preflight/regression tests pass. |
| 5 | P5.15 | Geometry primitives/bounds | Complete: f64 vector helpers, checked unit plane equations/triple intersections, f32 boundary checks, MAP axes and AABBs. Analytic/degenerate/scaled-basis tests pass; native epsilon/interior policy documented separately from legacy parity. |
| 6 | P5.16 | Convex brush contours | Complete: bounded half-space intersections, recession rejection, deterministic outward contours, closed-edge and volume checks. Cube/translation/winding/invalid/redundant/budget tests pass. |
| 7 | P5.17 | Patch9 tessellation | Complete: tiled tensor-quadratic positions, analytic derivatives, OBJ-consistent normals, shared-position seam policy and bounded allocations/work. Planar/curved/multi-tile/degenerate/limit tests pass. |
| 8 | P5.18 | Computed world pipeline/CLI | Complete: fallible editable-data copying, aggregate work/storage/position budgets, complete-or-error derived data and explicit `--compute`. Mixed-world/property/DAT/late-failure/global-limit and CLI cube→OBJ tests pass. |
| 9 | P5.19 | Nearest-hit ray queries | Complete: bounded double-sided computed-surface queries, normalized rays, stable object/face/quad ties and winding normals. Cube/inside/miss/range/tie/patch/backface/budget tests pass. |
| 10 | P5.20 | Property table edits/reindexing | Complete: explicit reorder/drop maps, sparse string/UV reindexing, removal counts and allocation-before-mutation. Inverse permutation, empty values, DAT, geometry preservation and early/late/budget rollback tests pass. |
## Final validation
All ten stages have targeted passing tests and separate terse commits. Final macOS ARM64 validation: 82 Rust tests (67 unit, 13 integration, two doctests) pass in debug and release; formatting and Clippy with warnings denied pass. Asset-free Nix Rust/setup checks and the native CLI package build pass; setup retains 52 Python regressions. All four OBJ captures match, existing DAT/TXT fixture tests remain green, and all 1,082 hydrated Xet/LFS assets match their unchanged staged identities. Packaged CLI smoke checks exercised computed OBJ preflight and explicit Latin-1 input.
Native geometry remains an adopted, analytically tested policy. Native-editor comparison, Linux/Intel execution, broader numerical/fuzz/performance qualification, visibility/selection interactions and renderer integration remain open. The remaining broad parent TODOs were kept open; ten scoped child tasks are checked.