# fabingurung/jp-drawing-coordination architecture

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

- Interactive diagram: https://gitdiagram.com/fabingurung/jp-drawing-coordination
- Repository: https://github.com/fabingurung/jp-drawing-coordination

## Overview

The main product is the browser-based AI-Aided Design workspace: users edit a validated semantic draft, from which linked 2D and 3D views are derived. Its model also supports reusable room layouts, hosted openings, connected frame geometry, and local JSON. The repository retains a historical CAD editor, source-review capabilities, project-specific evidence viewers, and a Python geometry bridge as separate branches. Edges reflect shown imports, indexed module references, or README statements; unsampled integrations and runtime wiring are not inferred.

Main entry points: [`cad/aad/main.ts`](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/main.ts) (AAD Editor), [`cad/main.ts`](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/main.ts) (Legacy CAD Editor), [`cad/aad/editable_model.ts`](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/editable_model.ts) (Semantic Draft), [`backend/cad_bridge/assembly_executor.py`](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_executor.py) (Assembly Export)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["AAD Workspace"]
  node_aad_app["AAD Editor<br/>[main.ts]"]
  node_draft_model["Semantic Draft<br/>[editable_model.ts]"]
  node_floor_graph["Floor Graph<br/>[floor_graph.ts]"]
  node_angled_graph["Angled Walls<br/>[angled_graph.ts]"]
  node_frame["Frame Connectivity"]
  node_rooms["Room Layouts<br/>[room_layout.ts]"]
end

subgraph group_review["Review and Sources"]
  node_dxf_trace["DXF Trace<br/>[dxf_trace.ts]"]
  node_source_review["Source Review<br/>[main.js]"]
  node_semantic_review["Semantic Review<br/>[semantic_review.ts]"]
  node_vertical_review["Vertical Review<br/>[vertical_review.ts]"]
  node_project_viewers["Project Viewers"]
end

subgraph group_legacy["Historical CAD"]
  node_legacy_editor["Legacy CAD Editor<br/>[main.ts]"]
  node_cad_model["CAD Model<br/>[model.ts]"]
  node_parametrics["Parametrics<br/>[parametrics.ts]"]
  node_project_package["Project Package<br/>[project.ts]"]
  node_dxf_overlay["DXF Overlay<br/>[dxf_overlay.ts]"]
  node_ifc_overlay["IFC Overlay<br/>[ifc.ts]"]
  node_vertical_data["Vertical Data<br/>[vertical_review.ts]"]
end

subgraph group_bridge["Geometry Bridge"]
  node_design_jobs["Design Job Validation<br/>[design_job.py]"]
  node_oriented_jobs["Oriented Job Validation<br/>[oriented_job.py]"]
  node_oriented_executor["Oriented Geometry Export"]
  node_assembly_executor["Assembly Export"]
  node_assembly_jobs["Assembly Jobs<br/>[assembly_job.py]"]
  node_multilevel["Multilevel Assembly"]
  node_multilevel_executor["Multilevel Export"]
end

node_designer(("Designer"))

node_designer -->|"edits draft"| node_aad_app
node_aad_app -->|"validates and derives"| node_draft_model
node_aad_app -->|"derives connectivity"| node_frame
node_aad_app -->|"parses DXF"| node_dxf_trace
node_draft_model -->|"validates and derives"| node_floor_graph
node_draft_model -->|"derives frame"| node_frame
node_draft_model -->|"derives room solids"| node_rooms
node_floor_graph -->|"delegates wall moves"| node_angled_graph
node_aad_app -.->|"supports review"| node_source_review
node_aad_app -->|"loads review data"| node_semantic_review
node_aad_app -->|"loads vertical data"| node_vertical_review
node_designer -->|"views project evidence"| node_project_viewers
node_legacy_editor -->|"validates model"| node_cad_model
node_legacy_editor -->|"resolves model"| node_parametrics
node_legacy_editor -->|"validates package"| node_project_package
node_legacy_editor -->|"loads overlay"| node_dxf_overlay
node_legacy_editor -->|"loads overlay"| node_ifc_overlay
node_semantic_review -->|"templates observations"| node_vertical_data
node_design_jobs -->|"provides job data"| node_oriented_executor
node_oriented_jobs -->|"provides wall state"| node_oriented_executor
node_assembly_jobs -->|"provides job data"| node_assembly_executor
node_design_jobs -->|"validates design input"| node_assembly_executor
node_multilevel -->|"provides assembly data"| node_multilevel_executor
node_assembly_executor -->|"reuses execution"| node_multilevel_executor

click node_aad_app "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/main.ts"
click node_draft_model "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/editable_model.ts"
click node_floor_graph "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/floor_graph.ts"
click node_angled_graph "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/angled_graph.ts"
click node_frame "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/frame_connectivity.ts"
click node_rooms "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/room_layout.ts"
click node_dxf_trace "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/dxf_trace.ts"
click node_source_review "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/source-review/main.js"
click node_semantic_review "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/semantic_review.ts"
click node_vertical_review "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/vertical_review.ts"
click node_project_viewers "https://github.com/fabingurung/jp-drawing-coordination/tree/main/public/stages"
click node_legacy_editor "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/main.ts"
click node_cad_model "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/model.ts"
click node_parametrics "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/parametrics.ts"
click node_project_package "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/project.ts"
click node_dxf_overlay "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/dxf_overlay.ts"
click node_ifc_overlay "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/ifc.ts"
click node_vertical_data "https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/vertical_review.ts"
click node_design_jobs "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/design_job.py"
click node_oriented_jobs "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/oriented_job.py"
click node_oriented_executor "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/oriented_executor.py"
click node_assembly_executor "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_executor.py"
click node_assembly_jobs "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_job.py"
click node_multilevel "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_multilevel.py"
click node_multilevel_executor "https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_multilevel_executor.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_aad_app,node_draft_model,node_floor_graph,node_angled_graph,node_frame,node_rooms toneBlue
class node_dxf_trace,node_source_review,node_semantic_review,node_vertical_review,node_project_viewers toneAmber
class node_legacy_editor,node_cad_model,node_parametrics,node_project_package,node_dxf_overlay,node_ifc_overlay,node_vertical_data toneMint
class node_design_jobs,node_oriented_jobs,node_oriented_executor,node_assembly_executor,node_assembly_jobs,node_multilevel,node_multilevel_executor toneRose
class node_designer toneIndigo
```

## Components

### AAD Workspace

- [AAD Editor](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/main.ts): `cad/aad/main.ts`
- [Semantic Draft](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/editable_model.ts): `cad/aad/editable_model.ts`
- [Floor Graph](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/floor_graph.ts): `cad/aad/floor_graph.ts`
- [Angled Walls](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/angled_graph.ts): `cad/aad/angled_graph.ts`
- [Frame Connectivity](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/frame_connectivity.ts): `cad/aad/frame_connectivity.ts`
- [Room Layouts](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/room_layout.ts): `cad/aad/room_layout.ts`

### Review and Sources

- [DXF Trace](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/dxf_trace.ts): `cad/aad/dxf_trace.ts`
- [Source Review](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/aad/source-review/main.js): `cad/aad/source-review/main.js`
- [Semantic Review](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/semantic_review.ts): `cad/semantic_review.ts`
- [Vertical Review](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/vertical_review.ts): `cad/vertical_review.ts`
- [Project Viewers](https://github.com/fabingurung/jp-drawing-coordination/tree/main/public/stages): `public/stages`

### Historical CAD

- [Legacy CAD Editor](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/main.ts): `cad/main.ts`
- [CAD Model](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/model.ts): `cad/model.ts`
- [Parametrics](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/parametrics.ts): `cad/parametrics.ts`
- [Project Package](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/project.ts): `cad/project.ts`
- [DXF Overlay](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/dxf_overlay.ts): `cad/dxf_overlay.ts`
- [IFC Overlay](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/ifc.ts): `cad/ifc.ts`
- [Vertical Data](https://github.com/fabingurung/jp-drawing-coordination/blob/main/cad/vertical_review.ts): `cad/vertical_review.ts`

### Geometry Bridge

- [Design Job Validation](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/design_job.py): `backend/cad_bridge/design_job.py`
- [Oriented Job Validation](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/oriented_job.py): `backend/cad_bridge/oriented_job.py`
- [Oriented Geometry Export](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/oriented_executor.py): `backend/cad_bridge/oriented_executor.py`
- [Assembly Export](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_executor.py): `backend/cad_bridge/assembly_executor.py`
- [Assembly Jobs](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_job.py): `backend/cad_bridge/assembly_job.py`
- [Multilevel Assembly](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_multilevel.py): `backend/cad_bridge/assembly_multilevel.py`
- [Multilevel Export](https://github.com/fabingurung/jp-drawing-coordination/blob/main/backend/cad_bridge/assembly_multilevel_executor.py): `backend/cad_bridge/assembly_multilevel_executor.py`

### Other components

- **Designer**

## Connections

- Designer → AAD Editor: edits draft
- AAD Editor → Semantic Draft: validates and derives (evidence: `cad/aad/main.ts`)
- AAD Editor → Frame Connectivity: derives connectivity (evidence: `cad/aad/main.ts`)
- AAD Editor → DXF Trace: parses DXF (evidence: `cad/aad/main.ts`)
- Semantic Draft → Floor Graph: validates and derives (evidence: `cad/aad/editable_model.ts`)
- Semantic Draft → Frame Connectivity: derives frame (evidence: `cad/aad/editable_model.ts`)
- Semantic Draft → Room Layouts: derives room solids (evidence: `cad/aad/editable_model.ts`)
- Floor Graph → Angled Walls: delegates wall moves (evidence: `cad/aad/floor_graph.ts`)
- AAD Editor → Source Review: supports review
- AAD Editor → Semantic Review: loads review data
- AAD Editor → Vertical Review: loads vertical data
- Designer → Project Viewers: views project evidence
- Legacy CAD Editor → CAD Model: validates model (evidence: `cad/main.ts`)
- Legacy CAD Editor → Parametrics: resolves model (evidence: `cad/main.ts`)
- Legacy CAD Editor → Project Package: validates package (evidence: `cad/main.ts`)
- Legacy CAD Editor → DXF Overlay: loads overlay (evidence: `cad/main.ts`)
- Legacy CAD Editor → IFC Overlay: loads overlay (evidence: `cad/main.ts`)
- Semantic Review → Vertical Data: templates observations (evidence: `cad/vertical_review.ts`)
- Design Job Validation → Oriented Geometry Export: provides job data (evidence: `backend/cad_bridge/oriented_executor.py`)
- Oriented Job Validation → Oriented Geometry Export: provides wall state (evidence: `backend/cad_bridge/oriented_executor.py`)
- Assembly Jobs → Assembly Export: provides job data (evidence: `backend/cad_bridge/assembly_executor.py`)
- Design Job Validation → Assembly Export: validates design input (evidence: `backend/cad_bridge/assembly_executor.py`)
- Multilevel Assembly → Multilevel Export: provides assembly data (evidence: `backend/cad_bridge/assembly_multilevel_executor.py`)
- Assembly Export → Multilevel Export: reuses execution (evidence: `backend/cad_bridge/assembly_multilevel_executor.py`)
