# efea24/cad_automtaion architecture

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

- Interactive diagram: https://gitdiagram.com/efea24/cad_automtaion
- Repository: https://github.com/efea24/cad_automtaion

## Overview

Text2CAD converts a natural-language part description into a CAD token sequence, reconstructs sketch and extrusion operations, builds a solid, and exports STEP or STL. The repository also contains the model-training and evaluation path, plus geometry and topology utilities used in CAD representation. The pipeline and model boundaries are supported by the excerpts and source index; several conversion and evaluation modules are indexed but unsampled, so their detailed calls are not asserted.

Main entry points: [`Text2CAD/CadSeqProc/cad_sequence.py`](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/cad_sequence.py) (CAD Sequence), [`Text2CAD/Cad_VLM/models/text2cad.py`](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/text2cad.py) (Text2CAD Model), [`Text2CAD/Cad_VLM/train.py`](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/train.py) (Training Loop), [`Text2CAD/CadSeqProc/sequence/sketch/loop.py`](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/loop.py) (Sketch Loops)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User Pipeline"]
  node_runner["Pipeline Runner<br/>[run.py]"]
  node_translator["Prompt Translation<br/>[translator.py]"]
  node_wrapper["Text-to-CAD API<br/>[text_to_cad.py]"]
end

subgraph group_generation["Text Generation"]
  node_model["Text2CAD Model<br/>[text2cad.py]"]
  node_text_embed["Text Embedding<br/>[text_embed.py]"]
  node_adaptive["Adaptive Text Layer<br/>[adaptive_layer.py]"]
  node_decoder["CAD Decoder<br/>[decoder.py]"]
  node_attention["Attention Layers<br/>[attention.py]"]
  node_attention_ops["Attention Operations<br/>[functional.py]"]
end

subgraph group_cad["CAD Reconstruction"]
  node_cad_sequence["CAD Sequence<br/>[cad_sequence.py]"]
  node_sketch["Sketch Sequence<br/>[sketchsequence.py]"]
  node_face["Sketch Faces<br/>[face.py]"]
  node_loop["Sketch Loops<br/>[loop.py]"]
  node_coords["Coordinate Systems<br/>[coord_system.py]"]
  node_extrude["Extrusion Sequence"]
  node_cad_export["CAD Export<br/>[json2step.py]"]
  node_mesh_export["Mesh Export<br/>[json2stl_skt3d.py]"]
end

subgraph group_geometry["Geometry Kernel"]
  node_curves["Curve Geometry<br/>[curve.py]"]
  node_arc["Arc Geometry<br/>[arc.py]"]
  node_line["Line Geometry<br/>[line.py]"]
  node_occ_construct["Shape Construction<br/>[Construct.py]"]
  node_occ_topology["Topology Utilities<br/>[Topology.py]"]
end

subgraph group_learning["Training and Evaluation"]
  node_dataset["Training Dataset<br/>[t2c_dataset.py]"]
  node_training["Training Loop<br/>[train.py]"]
  node_loss["Training Loss<br/>[loss.py]"]
  node_metrics["Model Metrics<br/>[metrics.py]"]
  node_evaluation["Sequence Evaluation<br/>[eval_seq.py]"]
end

node_user(("Text Prompt"))

node_user -->|"submits prompt"| node_runner
node_runner -->|"invokes generation"| node_wrapper
node_runner -.->|"uses translation"| node_translator
node_wrapper -->|"generates sequence"| node_model
node_wrapper -->|"reconstructs model"| node_cad_sequence
node_model -->|"embeds text"| node_text_embed
node_model -->|"adapts embeddings"| node_adaptive
node_model -->|"decodes CAD"| node_decoder
node_decoder -->|"uses attention"| node_attention
node_attention -->|"calls operations"| node_attention_ops
node_cad_sequence -->|"uses sketches"| node_sketch
node_cad_sequence -->|"uses extrusions"| node_extrude
node_cad_sequence -->|"uses topology"| node_occ_topology
node_sketch -->|"builds faces"| node_face
node_sketch -->|"uses coordinates"| node_coords
node_face -->|"uses loops"| node_loop
node_loop -->|"uses curves"| node_curves
node_loop -->|"constructs arcs"| node_arc
node_loop -->|"constructs lines"| node_line
node_occ_construct -->|"uses topology"| node_occ_topology
node_cad_sequence -.->|"exports solid"| node_cad_export
node_cad_sequence -.->|"exports mesh"| node_mesh_export
node_training -->|"loads batches"| node_dataset
node_training -->|"trains model"| node_model
node_training -->|"computes loss"| node_loss
node_training -->|"records metrics"| node_metrics
node_evaluation -->|"evaluates sequences"| node_cad_sequence

click node_runner "https://github.com/efea24/cad_automtaion/blob/main/pipeline/run.py"
click node_translator "https://github.com/efea24/cad_automtaion/blob/main/pipeline/translator.py"
click node_wrapper "https://github.com/efea24/cad_automtaion/blob/main/pipeline/text_to_cad.py"
click node_model "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/text2cad.py"
click node_text_embed "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/text_embed.py"
click node_adaptive "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/adaptive_layer.py"
click node_decoder "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/decoder.py"
click node_attention "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/attention.py"
click node_attention_ops "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/functional.py"
click node_cad_sequence "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/cad_sequence.py"
click node_sketch "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/sketchsequence.py"
click node_face "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/face.py"
click node_loop "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/loop.py"
click node_coords "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/coord_system.py"
click node_extrude "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/transformation/extrude_sequence.py"
click node_curves "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/curve.py"
click node_arc "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/arc.py"
click node_line "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/line.py"
click node_occ_construct "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/OCCUtils/Construct.py"
click node_occ_topology "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/OCCUtils/Topology.py"
click node_cad_export "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/json2step.py"
click node_mesh_export "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/json2stl_skt3d.py"
click node_dataset "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/dataprep/t2c_dataset.py"
click node_training "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/train.py"
click node_loss "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/loss.py"
click node_metrics "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/metrics.py"
click node_evaluation "https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Evaluation/eval_seq.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_runner,node_translator,node_wrapper toneBlue
class node_model,node_text_embed,node_adaptive,node_decoder,node_attention,node_attention_ops toneAmber
class node_cad_sequence,node_sketch,node_face,node_loop,node_coords,node_extrude,node_cad_export,node_mesh_export toneMint
class node_curves,node_arc,node_line,node_occ_construct,node_occ_topology toneRose
class node_dataset,node_training,node_loss,node_metrics,node_evaluation,node_user toneIndigo
```

## Components

### User Pipeline

- [Pipeline Runner](https://github.com/efea24/cad_automtaion/blob/main/pipeline/run.py): `pipeline/run.py`
- [Prompt Translation](https://github.com/efea24/cad_automtaion/blob/main/pipeline/translator.py): `pipeline/translator.py`
- [Text-to-CAD API](https://github.com/efea24/cad_automtaion/blob/main/pipeline/text_to_cad.py): `pipeline/text_to_cad.py`

### Text Generation

- [Text2CAD Model](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/text2cad.py): `Text2CAD/Cad_VLM/models/text2cad.py`
- [Text Embedding](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/text_embed.py): `Text2CAD/Cad_VLM/models/layers/text_embed.py`
- [Adaptive Text Layer](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/adaptive_layer.py): `Text2CAD/Cad_VLM/models/layers/adaptive_layer.py`
- [CAD Decoder](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/decoder.py): `Text2CAD/Cad_VLM/models/decoder.py`
- [Attention Layers](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/attention.py): `Text2CAD/Cad_VLM/models/layers/attention.py`
- [Attention Operations](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/layers/functional.py): `Text2CAD/Cad_VLM/models/layers/functional.py`

### CAD Reconstruction

- [CAD Sequence](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/cad_sequence.py): `Text2CAD/CadSeqProc/cad_sequence.py`
- [Sketch Sequence](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/sketchsequence.py): `Text2CAD/CadSeqProc/sequence/sketch/sketchsequence.py`
- [Sketch Faces](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/face.py): `Text2CAD/CadSeqProc/sequence/sketch/face.py`
- [Sketch Loops](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/loop.py): `Text2CAD/CadSeqProc/sequence/sketch/loop.py`
- [Coordinate Systems](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/sketch/coord_system.py): `Text2CAD/CadSeqProc/sequence/sketch/coord_system.py`
- [Extrusion Sequence](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/sequence/transformation/extrude_sequence.py): `Text2CAD/CadSeqProc/sequence/transformation/extrude_sequence.py`
- [CAD Export](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/json2step.py): `Text2CAD/CadSeqProc/json2step.py`
- [Mesh Export](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/json2stl_skt3d.py): `Text2CAD/CadSeqProc/json2stl_skt3d.py`

### Geometry Kernel

- [Curve Geometry](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/curve.py): `Text2CAD/CadSeqProc/geometry/curve.py`
- [Arc Geometry](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/arc.py): `Text2CAD/CadSeqProc/geometry/arc.py`
- [Line Geometry](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/geometry/line.py): `Text2CAD/CadSeqProc/geometry/line.py`
- [Shape Construction](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/OCCUtils/Construct.py): `Text2CAD/CadSeqProc/OCCUtils/Construct.py`
- [Topology Utilities](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/CadSeqProc/OCCUtils/Topology.py): `Text2CAD/CadSeqProc/OCCUtils/Topology.py`

### Training and Evaluation

- [Training Dataset](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/dataprep/t2c_dataset.py): `Text2CAD/Cad_VLM/dataprep/t2c_dataset.py`
- [Training Loop](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/train.py): `Text2CAD/Cad_VLM/train.py`
- [Training Loss](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/loss.py): `Text2CAD/Cad_VLM/models/loss.py`
- [Model Metrics](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Cad_VLM/models/metrics.py): `Text2CAD/Cad_VLM/models/metrics.py`
- [Sequence Evaluation](https://github.com/efea24/cad_automtaion/blob/main/Text2CAD/Evaluation/eval_seq.py): `Text2CAD/Evaluation/eval_seq.py`

### Other components

- **Text Prompt**

## Connections

- Text Prompt → Pipeline Runner: submits prompt (evidence: `pipeline/run.py`)
- Pipeline Runner → Text-to-CAD API: invokes generation (evidence: `pipeline/run.py`)
- Pipeline Runner → Prompt Translation: uses translation (evidence: `pipeline/run.py`)
- Text-to-CAD API → Text2CAD Model: generates sequence (evidence: `pipeline/text_to_cad.py`)
- Text-to-CAD API → CAD Sequence: reconstructs model (evidence: `pipeline/text_to_cad.py`)
- Text2CAD Model → Text Embedding: embeds text (evidence: `Text2CAD/Cad_VLM/models/text2cad.py`)
- Text2CAD Model → Adaptive Text Layer: adapts embeddings (evidence: `Text2CAD/Cad_VLM/models/text2cad.py`)
- Text2CAD Model → CAD Decoder: decodes CAD (evidence: `Text2CAD/Cad_VLM/models/text2cad.py`)
- CAD Decoder → Attention Layers: uses attention (evidence: `Text2CAD/Cad_VLM/models/decoder.py`)
- Attention Layers → Attention Operations: calls operations (evidence: `Text2CAD/Cad_VLM/models/layers/attention.py`)
- CAD Sequence → Sketch Sequence: uses sketches (evidence: `Text2CAD/CadSeqProc/cad_sequence.py`)
- CAD Sequence → Extrusion Sequence: uses extrusions (evidence: `Text2CAD/CadSeqProc/cad_sequence.py`)
- CAD Sequence → Topology Utilities: uses topology (evidence: `Text2CAD/CadSeqProc/cad_sequence.py`)
- Sketch Sequence → Sketch Faces: builds faces (evidence: `Text2CAD/CadSeqProc/sequence/sketch/sketchsequence.py`)
- Sketch Sequence → Coordinate Systems: uses coordinates (evidence: `Text2CAD/CadSeqProc/sequence/sketch/sketchsequence.py`)
- Sketch Faces → Sketch Loops: uses loops (evidence: `Text2CAD/CadSeqProc/sequence/sketch/face.py`)
- Sketch Loops → Curve Geometry: uses curves (evidence: `Text2CAD/CadSeqProc/sequence/sketch/loop.py`)
- Sketch Loops → Arc Geometry: constructs arcs (evidence: `Text2CAD/CadSeqProc/sequence/sketch/loop.py`)
- Sketch Loops → Line Geometry: constructs lines (evidence: `Text2CAD/CadSeqProc/sequence/sketch/loop.py`)
- Shape Construction → Topology Utilities: uses topology (evidence: `Text2CAD/CadSeqProc/OCCUtils/Construct.py`)
- CAD Sequence → CAD Export: exports solid
- CAD Sequence → Mesh Export: exports mesh
- Training Loop → Training Dataset: loads batches (evidence: `Text2CAD/Cad_VLM/train.py`)
- Training Loop → Text2CAD Model: trains model (evidence: `Text2CAD/Cad_VLM/train.py`)
- Training Loop → Training Loss: computes loss (evidence: `Text2CAD/Cad_VLM/train.py`)
- Training Loop → Model Metrics: records metrics (evidence: `Text2CAD/Cad_VLM/train.py`)
- Sequence Evaluation → CAD Sequence: evaluates sequences (evidence: `Text2CAD/Evaluation/eval_seq.py`)
