Building a CAD application
What must stay true when a sketch changes and every dependent feature rebuilds?
- Constrained sketch
- Extrude
- Through hole
- Edit & rebuild
- Save / STEP
The foundation
I’m building a CAD application around an original C++20 backend, using OCCT/OCAF for geometry and document operations and planeGCS for sketch constraints. The tested workflow creates a line sketch, extrudes it, adds a centered through hole, changes a dimension, and saves and reopens the result.
More than a viewport
The work includes stable feature IDs, dependency recomputation, undo/redo, revision snapshots, STEP interchange, and a JSON-lines command supervisor. Disposable previews keep incomplete edits separate from committed document state.
What has been checked
The foundation passed 11 native test groups and the sketch/edit/reopen/STEP fixture in Linux CI. The fixture’s maximum volume error was approximately 1.09 × 10⁻¹¹ mm³ against its reference values. These checks cover specific supported operations.
Still to build
This milestone is a bounded headless backend. The browser modeling workflow, general topology repair, and full assemblies remain ahead. It is separate from my original-kernel experiments.