# rbuonodev/cad-vision architecture

> Architecture diagram of the GitHub repository rbuonodev/cad-vision, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rbuonodev/cad-vision
- Repository: https://github.com/rbuonodev/cad-vision

## Overview

3DE is a browser-based parametric mechanical CAD editor. The user defines sketches and feature operations in a Streamlit workspace; the model is rebuilt as a solid, then presented in a 3D viewer or saved/exported. Sketch constraints, feature history, and geometry export are distinct capabilities. The excerpts show app-to-solver use and engine-to-constraint solving; some UI, rebuild, viewer, and export wiring is not visible, so those links are marked unverified.

Main entry points: [`app.py`](https://github.com/rbuonodev/cad-vision/blob/main/app.py) (Streamlit Workspace), [`sketch/editor.js`](https://github.com/rbuonodev/cad-vision/blob/main/sketch/editor.js) (Sketch Editor), [`engine.py`](https://github.com/rbuonodev/cad-vision/blob/main/engine.py) (Feature Validation), [`constraints.py`](https://github.com/rbuonodev/cad-vision/blob/main/constraints.py) (Constraint Solver)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["CAD Workspace"]
  node_workspace["Streamlit Workspace<br/>[app.py]"]
  node_history["Feature History<br/>[app.py]"]
end

subgraph group_sketch["Sketching"]
  node_sketch_editor["Sketch Editor<br/>[editor.js]"]
  node_sketch_assist["Sketch Assist<br/>[assist.js]"]
  node_browser_solver["Browser Constraint Solver<br/>[solver.js]"]
  node_constraint_solver["Constraint Solver<br/>[constraints.py]"]
end

subgraph group_model["Modeling"]
  node_feature_validation["Feature Validation<br/>[engine.py]"]
  node_solid_builder["Solid Builder<br/>[engine.py]"]
  node_mesh_generation["Mesh Generation<br/>[engine.py]"]
end

subgraph group_output["Viewing &amp; Files"]
  node_viewer["3D Viewer<br/>[viewer.py]"]
  node_project_files["JSON Projects<br/>[engine.py]"]
  node_geometry_export["STEP / STL Export<br/>[engine.py]"]
end

node_user(("CAD User"))

node_user -->|"edits model"| node_workspace
node_workspace -->|"edits history"| node_history
node_workspace -.->|"opens sketch"| node_sketch_editor
node_sketch_editor -.->|"uses feedback"| node_sketch_assist
node_sketch_editor -->|"solves constraints"| node_browser_solver
node_workspace -->|"solves relations"| node_constraint_solver
node_constraint_solver -->|"solves polygon relations"| node_feature_validation
node_workspace -.->|"submits features"| node_feature_validation
node_feature_validation -.->|"builds solid"| node_solid_builder
node_workspace -.->|"rebuilds model"| node_solid_builder
node_solid_builder -.->|"tessellates solid"| node_mesh_generation
node_workspace -.->|"displays model"| node_viewer
node_user -->|"opens project"| node_project_files
node_workspace -->|"loads JSON"| node_project_files
node_user -->|"exports geometry"| node_geometry_export
node_workspace -.->|"exports model"| node_geometry_export

click node_workspace "https://github.com/rbuonodev/cad-vision/blob/main/app.py"
click node_history "https://github.com/rbuonodev/cad-vision/blob/main/app.py"
click node_sketch_editor "https://github.com/rbuonodev/cad-vision/blob/main/sketch/editor.js"
click node_sketch_assist "https://github.com/rbuonodev/cad-vision/blob/main/sketch/assist.js"
click node_browser_solver "https://github.com/rbuonodev/cad-vision/blob/main/sketch/solver.js"
click node_constraint_solver "https://github.com/rbuonodev/cad-vision/blob/main/constraints.py"
click node_feature_validation "https://github.com/rbuonodev/cad-vision/blob/main/engine.py"
click node_solid_builder "https://github.com/rbuonodev/cad-vision/blob/main/engine.py"
click node_mesh_generation "https://github.com/rbuonodev/cad-vision/blob/main/engine.py"
click node_viewer "https://github.com/rbuonodev/cad-vision/blob/main/viewer.py"
click node_project_files "https://github.com/rbuonodev/cad-vision/blob/main/engine.py"
click node_geometry_export "https://github.com/rbuonodev/cad-vision/blob/main/engine.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workspace,node_history,node_user toneBlue
class node_sketch_editor,node_sketch_assist,node_browser_solver,node_constraint_solver toneAmber
class node_feature_validation,node_solid_builder,node_mesh_generation toneMint
class node_viewer,node_project_files,node_geometry_export toneRose
```

## Components

### CAD Workspace

- [Streamlit Workspace](https://github.com/rbuonodev/cad-vision/blob/main/app.py): `app.py`
- [Feature History](https://github.com/rbuonodev/cad-vision/blob/main/app.py): `app.py`

### Sketching

- [Sketch Editor](https://github.com/rbuonodev/cad-vision/blob/main/sketch/editor.js): `sketch/editor.js`
- [Sketch Assist](https://github.com/rbuonodev/cad-vision/blob/main/sketch/assist.js): `sketch/assist.js`
- [Browser Constraint Solver](https://github.com/rbuonodev/cad-vision/blob/main/sketch/solver.js): `sketch/solver.js`
- [Constraint Solver](https://github.com/rbuonodev/cad-vision/blob/main/constraints.py): `constraints.py`

### Modeling

- [Feature Validation](https://github.com/rbuonodev/cad-vision/blob/main/engine.py): `engine.py`
- [Solid Builder](https://github.com/rbuonodev/cad-vision/blob/main/engine.py): `engine.py`
- [Mesh Generation](https://github.com/rbuonodev/cad-vision/blob/main/engine.py): `engine.py`

### Viewing & Files

- [3D Viewer](https://github.com/rbuonodev/cad-vision/blob/main/viewer.py): `viewer.py`
- [JSON Projects](https://github.com/rbuonodev/cad-vision/blob/main/engine.py): `engine.py`
- [STEP / STL Export](https://github.com/rbuonodev/cad-vision/blob/main/engine.py): `engine.py`

### Other components

- **CAD User**

## Connections

- CAD User → Streamlit Workspace: edits model (evidence: `README.md`)
- Streamlit Workspace → Feature History: edits history (evidence: `app.py`)
- Streamlit Workspace → Sketch Editor: opens sketch
- Sketch Editor → Sketch Assist: uses feedback
- Sketch Editor → Browser Constraint Solver: solves constraints (evidence: `sketch/editor.js`)
- Streamlit Workspace → Constraint Solver: solves relations (evidence: `app.py`)
- Constraint Solver → Feature Validation: solves polygon relations (evidence: `engine.py`)
- Streamlit Workspace → Feature Validation: submits features (evidence: `app.py`)
- Feature Validation → Solid Builder: builds solid (evidence: `engine.py`)
- Streamlit Workspace → Solid Builder: rebuilds model (evidence: `app.py`)
- Solid Builder → Mesh Generation: tessellates solid (evidence: `engine.py`)
- Streamlit Workspace → 3D Viewer: displays model (evidence: `app.py`)
- CAD User → JSON Projects: opens project (evidence: `README.md`)
- Streamlit Workspace → JSON Projects: loads JSON (evidence: `app.py`)
- CAD User → STEP / STL Export: exports geometry (evidence: `README.md`)
- Streamlit Workspace → STEP / STL Export: exports model (evidence: `app.py`)
