# ritesh14g/single-pass-3d-model-generation architecture

> Architecture diagram of the GitHub repository ritesh14g/single-pass-3d-model-generation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ritesh14g/single-pass-3d-model-generation
- Repository: https://github.com/ritesh14g/single-pass-3d-model-generation

## Overview

PS-17 is a drone-video photogrammetry workflow: users submit footage and optional flight telemetry, then receive georeferenced 3D and map products with coverage and quality assessments. The CLI and Stage Lab provide run entry points; `src/pipeline.py` orchestrates resumable stages and persists artifacts for later stages. The sampled code documents preflight, ingest, export, and viewer behavior; other stage links are included only at the pipeline level, since their orchestration details were not sampled. The README is empty, so product capabilities are inferred from the source tree and excerpts.

Main entry points: [`src/pipeline.py`](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/pipeline.py) (Pipeline runner), [`src/export/stage.py`](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/export/stage.py) (Map export), [`src/cli.py`](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/cli.py) (CLI), [`src/qa`](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/qa) (Stage quality checks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Run entry points"]
  node_cli["CLI<br/>[cli.py]"]
  node_lab["Stage Lab<br/>[app.py]"]
  node_pipeline["Pipeline runner<br/>[pipeline.py]"]
end

subgraph group_prep["Input preparation"]
  node_preflight["Input preflight<br/>[analyzer.py]"]
  node_ingest["Frame and telemetry ingest"]
  node_condition["Frame conditioning"]
end

subgraph group_model["Reconstruction and analysis"]
  node_recon["3D reconstruction"]
  node_fusion["Scene fusion and zones"]
end

subgraph group_map["Mapping and delivery"]
  node_geo["Georeferencing"]
  node_export["Map export<br/>[stage.py]"]
  node_raster["Raster products<br/>[rasters.py]"]
  node_viewer["Web viewer packaging<br/>[package.py]"]
  node_serve["Viewer server<br/>[serve.py]"]
end

subgraph group_quality["Quality assessment"]
  node_qa["Stage quality checks"]
end

node_user(("Operator"))
node_video["Video and telemetry"]
node_reference["Reference surface"]
node_artifacts[("Run artifacts")]
node_browser(("Browser"))

node_user -->|"submits run"| node_cli
node_user -->|"configures run"| node_lab
node_video -->|"checks input"| node_preflight
node_video -->|"decodes frames"| node_ingest
node_cli -->|"runs stages"| node_pipeline
node_lab -->|"executes stages"| node_pipeline
node_pipeline -->|"runs check"| node_preflight
node_preflight -->|"returns verdict"| node_pipeline
node_pipeline -->|"runs ingest"| node_ingest
node_pipeline -->|"runs conditioning"| node_condition
node_pipeline -->|"runs reconstruction"| node_recon
node_pipeline -->|"runs fusion"| node_fusion
node_pipeline -->|"runs georeferencing"| node_geo
node_pipeline -->|"runs export"| node_export
node_pipeline -->|"runs evaluation"| node_qa
node_ingest -->|"writes frame data"| node_artifacts
node_condition -->|"writes conditioned frames"| node_artifacts
node_recon -->|"writes model outputs"| node_artifacts
node_fusion -->|"writes zone data"| node_artifacts
node_geo -->|"writes georeference"| node_artifacts
node_export -->|"writes map formats"| node_artifacts
node_export -->|"renders raster outputs"| node_raster
node_export -->|"uses map transform"| node_geo
node_export -->|"uses zone layers"| node_fusion
node_viewer -->|"packages run exports"| node_artifacts
node_cli -->|"starts viewer"| node_serve
node_serve -->|"serves viewer"| node_browser
node_qa -->|"compares surface"| node_reference
node_qa -->|"reads run products"| node_artifacts

click node_cli "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/cli.py"
click node_lab "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/ui/app.py"
click node_pipeline "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/pipeline.py"
click node_preflight "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/preflight/analyzer.py"
click node_ingest "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/ingest"
click node_condition "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/condition"
click node_recon "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/recon"
click node_fusion "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/fusion"
click node_geo "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/geo"
click node_export "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/export/stage.py"
click node_raster "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/export/rasters.py"
click node_viewer "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/viewer/package.py"
click node_serve "https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/viewer/serve.py"
click node_qa "https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/qa"

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_cli,node_lab,node_pipeline,node_browser toneBlue
class node_preflight,node_ingest,node_condition,node_artifacts toneAmber
class node_recon,node_fusion toneMint
class node_geo,node_export,node_raster,node_viewer,node_serve toneRose
class node_qa,node_user,node_video,node_reference toneIndigo
```

## Components

### Run entry points

- [CLI](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/cli.py): `src/cli.py`
- [Stage Lab](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/ui/app.py): `ui/app.py`
- [Pipeline runner](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/pipeline.py): `src/pipeline.py`

### Input preparation

- [Input preflight](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/preflight/analyzer.py): `src/preflight/analyzer.py`
- [Frame and telemetry ingest](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/ingest): `src/ingest`
- [Frame conditioning](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/condition): `src/condition`

### Reconstruction and analysis

- [3D reconstruction](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/recon): `src/recon`
- [Scene fusion and zones](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/fusion): `src/fusion`

### Mapping and delivery

- [Georeferencing](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/geo): `src/geo`
- [Map export](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/export/stage.py): `src/export/stage.py`
- [Raster products](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/export/rasters.py): `src/export/rasters.py`
- [Web viewer packaging](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/viewer/package.py): `src/viewer/package.py`
- [Viewer server](https://github.com/ritesh14g/single-pass-3d-model-generation/blob/main/src/viewer/serve.py): `src/viewer/serve.py`

### Quality assessment

- [Stage quality checks](https://github.com/ritesh14g/single-pass-3d-model-generation/tree/main/src/qa): `src/qa`

### Other components

- **Operator**
- **Video and telemetry**
- **Reference surface**
- **Run artifacts**
- **Browser**

## Connections

- Operator → CLI: submits run
- Operator → Stage Lab: configures run
- Video and telemetry → Input preflight: checks input
- Video and telemetry → Frame and telemetry ingest: decodes frames
- CLI → Pipeline runner: runs stages
- Stage Lab → Pipeline runner: executes stages
- Pipeline runner → Input preflight: runs check
- Input preflight → Pipeline runner: returns verdict
- Pipeline runner → Frame and telemetry ingest: runs ingest
- Pipeline runner → Frame conditioning: runs conditioning
- Pipeline runner → 3D reconstruction: runs reconstruction
- Pipeline runner → Scene fusion and zones: runs fusion
- Pipeline runner → Georeferencing: runs georeferencing
- Pipeline runner → Map export: runs export
- Pipeline runner → Stage quality checks: runs evaluation
- Frame and telemetry ingest → Run artifacts: writes frame data
- Frame conditioning → Run artifacts: writes conditioned frames
- 3D reconstruction → Run artifacts: writes model outputs
- Scene fusion and zones → Run artifacts: writes zone data
- Georeferencing → Run artifacts: writes georeference
- Map export → Run artifacts: writes map formats
- Map export → Raster products: renders raster outputs
- Map export → Georeferencing: uses map transform
- Map export → Scene fusion and zones: uses zone layers
- Web viewer packaging → Run artifacts: packages run exports
- CLI → Viewer server: starts viewer
- Viewer server → Browser: serves viewer
- Stage quality checks → Reference surface: compares surface
- Stage quality checks → Run artifacts: reads run products
