How caiorafael/3dev-editor works
3dev editor is a desktop parametric 3D modeler: users create and edit a project as a scene, generate OpenSCAD code, and inspect a fast preview or an OpenSCAD-backed exact preview and export models. The graph separates scene/document editing, code generation, preview, and Electron project/file services. Some UI and integration wiring is unsampled; dashed links mark relationships documented by the README but not shown in the excerpts.
Main entry points: AppShell.tsx Editor shell · ipc.ts Electron IPC · useBooleanGeometry.ts Boolean geometry hook · store.ts Scene state
Components 23
Scene editing
- Editor shell
src/renderer/src/ui/AppShell.tsx - Scene state
src/renderer/src/document/store.ts - Scene operations
src/renderer/src/document/tree.ts - Transforms and bounds
src/renderer/src/document/math.ts - Document model
src/renderer/src/document/types.ts - Component files
src/renderer/src/document/files.ts - 3D viewport
src/renderer/src/viewport/FeatureView.tsx - Properties inspector
src/renderer/src/ui/Inspector.tsx
Geometry preview
- Manifold preview
src/renderer/src/preview/manifoldPreview.ts - Profile contours
src/renderer/src/preview/prepareContours.ts - Boolean geometry hook
src/renderer/src/preview/useBooleanGeometry.ts - Boolean worker
src/renderer/src/preview/booleanPreview.worker.ts - Exact preview
src/renderer/src/viewport/ExactPreview.tsx
OpenSCAD code
- OpenSCAD generator
src/renderer/src/codegen/openscad.ts - OpenSCAD editor
src/renderer/src/editor/openscadEditor.ts
Desktop services
- Electron IPC
src/main/ipc.ts - Preload bridge
src/preload/index.ts - Project files
src/main/projectFiles.ts - Recent projects
src/main/recents.ts - OpenSCAD runtime
src/main/openscad.ts - Local project folder
Other components
- Modeler
- OpenSCAD
Connections 29
- Modeler → Editor shell: edits model
- Editor shell → Scene state: updates scene
src/renderer/src/ui/AppShell.tsx - Editor shell → 3D viewport: shows viewport
src/renderer/src/ui/AppShell.tsx - Editor shell → Properties inspector: shows properties
src/renderer/src/ui/AppShell.tsx - Scene state → Scene operations: applies edits
src/renderer/src/document/store.ts - Scene operations → Transforms and bounds: uses transforms
src/renderer/src/document/tree.ts - Scene state → Component files: selects active file
src/renderer/src/document/store.ts - 3D viewport → Scene state: reads scene
src/renderer/src/viewport/FeatureView.tsx - 3D viewport → Boolean geometry hook: requests geometry
src/renderer/src/viewport/FeatureView.tsx - Boolean geometry hook → Profile contours: prepares contours
src/renderer/src/preview/useBooleanGeometry.ts - Boolean geometry hook → Manifold preview: builds mesh
src/renderer/src/preview/useBooleanGeometry.ts - Boolean geometry hook → Boolean worker: dispatches heavy jobs
src/renderer/src/preview/useBooleanGeometry.ts - Boolean worker → Manifold preview: builds mesh
src/renderer/src/preview/booleanPreview.worker.ts - Manifold preview → Transforms and bounds: uses transforms
src/renderer/src/preview/manifoldPreview.ts - Editor shell → OpenSCAD generator: generates source
src/renderer/src/ui/AppShell.tsx - OpenSCAD generator → Transforms and bounds: uses geometry math
src/renderer/src/codegen/openscad.ts - OpenSCAD generator → Component files: uses file helpers
src/renderer/src/codegen/openscad.ts - Editor shell → OpenSCAD editor: offers code editing
- Exact preview → OpenSCAD generator: generates source
src/renderer/src/viewport/ExactPreview.tsx - Modeler → Exact preview: requests exact preview
- Exact preview → Electron IPC: requests preview
- Modeler → Preload bridge: opens project
- Preload bridge → Electron IPC: bridges requests
src/preload/index.ts - Electron IPC → OpenSCAD runtime: invokes runtime
src/main/ipc.ts - Electron IPC → Project files: handles project files
src/main/ipc.ts - Electron IPC → Recent projects: manages recents
src/main/ipc.ts - Project files → Local project folder: reads and writes
src/main/projectFiles.ts - Recent projects → Local project folder: stores recents
- OpenSCAD runtime → OpenSCAD: runs previews and exports