# adiscripts03/3d_ulpin_sih architecture

> Architecture diagram of the GitHub repository adiscripts03/3d_ulpin_sih, 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/adiscripts03/3d_ulpin_sih
- Repository: https://github.com/adiscripts03/3d_ulpin_sih

## Overview

This repository is a national 3D ULPIN volumetric cadastre platform. Surveyors or operators ingest floor plans and optional point clouds; the backend extracts and classifies rooms, builds and validates vertically stacked parcels, assigns identifiers and registers them. Users then inspect estates and units in the cadastral interface and manage allotments, transfers, and mortgage restrictions. The README also describes a separate 3D studio and export capabilities. Router internals and some frontend wiring were not sampled, so uncertain implementation links are omitted; the map follows documented capabilities and sampled entry points.

Main entry points: [`backend/main.py`](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/main.py) (FastAPI application), [`backend/services/cadastral_engine.py`](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/cadastral_engine.py) (Cadastral engine), [`backend/database.py`](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/database.py) (Cadastre database), [`backend/routers/ingestion.py`](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/ingestion.py) (Survey ingestion)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Cadastral clients"]
  node_app["Cadastral interface<br/>[app.js]"]
  node_studio["3D studio"]
end

subgraph group_api["REST services"]
  node_api["FastAPI application<br/>[main.py]"]
  node_ingest["Survey ingestion<br/>[ingestion.py]"]
  node_ai["AI pipeline<br/>[ai_pipeline.py]"]
  node_institutions["Institution registry<br/>[institutions.py]"]
  node_buildings["Building profiles<br/>[buildings.py]"]
  node_parcels["Parcel queries<br/>[parcels.py]"]
  node_rights["Rights management<br/>[rights.py]"]
  node_encumbrances["Lien management<br/>[encumbrances.py]"]
  node_topology["Topology audit<br/>[topology.py]"]
  node_analytics["Estate analytics<br/>[analytics.py]"]
end

subgraph group_processing["Survey processing"]
  node_cv["CV extraction<br/>[cv_extractor.py]"]
  node_advancedcv["Advanced vision"]
  node_vector["Vector extraction"]
  node_text["Text analysis<br/>[text_analyzer.py]"]
  node_pointcloud["Point-cloud checks"]
  node_engine["Cadastral engine"]
  node_floor3d["Floor-plan 3D<br/>[floorplan_3d_ml.py]"]
  node_topovalidator["Spatial validator"]
end

subgraph group_domain["Cadastre operations"]
  node_rightsmanager["Rights rules<br/>[rights_manager.py]"]
  node_occupancy["Occupancy checks"]
end

subgraph group_state["Registry state"]
  node_db[("Cadastre database<br/>[database.py]")]
end

node_operator(("Surveyor / operator"))
node_externalrecords["Government land records"]
node_pointcloudsource["Survey point cloud"]

node_operator -->|"uses"| node_app
node_operator -->|"uses"| node_studio
node_app -->|"requests"| node_api
node_studio -->|"uploads / requests"| node_api
node_api -->|"dispatches"| node_institutions
node_api -->|"dispatches"| node_buildings
node_api -->|"dispatches"| node_parcels
node_api -->|"dispatches"| node_rights
node_api -->|"dispatches"| node_encumbrances
node_api -->|"dispatches"| node_topology
node_api -->|"dispatches"| node_analytics
node_api -->|"dispatches"| node_ingest
node_api -->|"dispatches"| node_ai
node_operator -->|"submits plan"| node_ingest
node_operator -.->|"provides"| node_pointcloudsource
node_ingest -->|"runs pipeline"| node_engine
node_ingest -->|"stores config / upload"| node_db
node_engine -->|"extracts rooms"| node_cv
node_engine -.->|"uses vision"| node_advancedcv
node_engine -->|"extracts vectors"| node_vector
node_engine -->|"analyzes text"| node_text
node_engine -->|"validates heights"| node_pointcloud
node_engine -->|"checks geometry"| node_topovalidator
node_engine -->|"registers parcels"| node_db
node_ai -->|"generates 3D"| node_floor3d
node_floor3d -->|"provides twin data"| node_app
node_rights -->|"invokes mutations"| node_rightsmanager
node_rightsmanager -->|"reads / writes titles"| node_db
node_encumbrances -->|"invokes lien actions"| node_rightsmanager
node_institutions -->|"reads registry"| node_db
node_buildings -->|"reads profiles"| node_db
node_parcels -->|"reads parcels"| node_db
node_topology -->|"audits geometry"| node_topovalidator
node_analytics -->|"reads metrics"| node_db
node_externalrecords -.->|"informs parcel search"| node_app
node_occupancy -.->|"uses unit registry"| node_db

click node_app "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/frontend/app.js"
click node_studio "https://github.com/adiscripts03/3d_ulpin_sih/tree/main/frontend"
click node_api "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/main.py"
click node_ingest "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/ingestion.py"
click node_ai "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/ai_pipeline.py"
click node_institutions "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/institutions.py"
click node_buildings "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/buildings.py"
click node_parcels "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/parcels.py"
click node_rights "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/rights.py"
click node_encumbrances "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/encumbrances.py"
click node_topology "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/topology.py"
click node_analytics "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/analytics.py"
click node_cv "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/cv_extractor.py"
click node_advancedcv "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/advanced_cv_pipeline.py"
click node_vector "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/vector_extractor.py"
click node_text "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/text_analyzer.py"
click node_pointcloud "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/pointcloud_validator.py"
click node_engine "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/cadastral_engine.py"
click node_floor3d "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/floorplan_3d_ml.py"
click node_topovalidator "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/topology_validator.py"
click node_rightsmanager "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/rights_manager.py"
click node_occupancy "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/occupancy_manager.py"
click node_db "https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/database.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_app,node_studio toneBlue
class node_api,node_ingest,node_ai,node_institutions,node_buildings,node_parcels,node_rights,node_encumbrances,node_topology,node_analytics toneAmber
class node_cv,node_advancedcv,node_vector,node_text,node_pointcloud,node_engine,node_floor3d,node_topovalidator toneMint
class node_rightsmanager,node_occupancy toneRose
class node_db,node_operator,node_externalrecords,node_pointcloudsource toneIndigo
```

## Components

### Cadastral clients

- [Cadastral interface](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/frontend/app.js): `frontend/app.js`
- [3D studio](https://github.com/adiscripts03/3d_ulpin_sih/tree/main/frontend): `frontend`

### REST services

- [FastAPI application](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/main.py): `backend/main.py`
- [Survey ingestion](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/ingestion.py): `backend/routers/ingestion.py`
- [AI pipeline](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/ai_pipeline.py): `backend/routers/ai_pipeline.py`
- [Institution registry](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/institutions.py): `backend/routers/institutions.py`
- [Building profiles](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/buildings.py): `backend/routers/buildings.py`
- [Parcel queries](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/parcels.py): `backend/routers/parcels.py`
- [Rights management](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/rights.py): `backend/routers/rights.py`
- [Lien management](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/encumbrances.py): `backend/routers/encumbrances.py`
- [Topology audit](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/topology.py): `backend/routers/topology.py`
- [Estate analytics](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/routers/analytics.py): `backend/routers/analytics.py`

### Survey processing

- [CV extraction](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/cv_extractor.py): `backend/services/cv_extractor.py`
- [Advanced vision](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/advanced_cv_pipeline.py): `backend/services/advanced_cv_pipeline.py`
- [Vector extraction](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/vector_extractor.py): `backend/services/vector_extractor.py`
- [Text analysis](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/text_analyzer.py): `backend/services/text_analyzer.py`
- [Point-cloud checks](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/pointcloud_validator.py): `backend/services/pointcloud_validator.py`
- [Cadastral engine](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/cadastral_engine.py): `backend/services/cadastral_engine.py`
- [Floor-plan 3D](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/floorplan_3d_ml.py): `backend/services/floorplan_3d_ml.py`
- [Spatial validator](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/topology_validator.py): `backend/services/topology_validator.py`

### Cadastre operations

- [Rights rules](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/services/rights_manager.py): `backend/services/rights_manager.py`
- [Occupancy checks](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/occupancy_manager.py): `occupancy_manager.py`

### Registry state

- [Cadastre database](https://github.com/adiscripts03/3d_ulpin_sih/blob/main/backend/database.py): `backend/database.py`

### Other components

- **Surveyor / operator**
- **Government land records**
- **Survey point cloud**

## Connections

- Surveyor / operator → Cadastral interface: uses
- Surveyor / operator → 3D studio: uses
- Cadastral interface → FastAPI application: requests
- 3D studio → FastAPI application: uploads / requests
- FastAPI application → Institution registry: dispatches
- FastAPI application → Building profiles: dispatches
- FastAPI application → Parcel queries: dispatches
- FastAPI application → Rights management: dispatches
- FastAPI application → Lien management: dispatches
- FastAPI application → Topology audit: dispatches
- FastAPI application → Estate analytics: dispatches
- FastAPI application → Survey ingestion: dispatches
- FastAPI application → AI pipeline: dispatches
- Surveyor / operator → Survey ingestion: submits plan
- Surveyor / operator → Survey point cloud: provides
- Survey ingestion → Cadastral engine: runs pipeline
- Survey ingestion → Cadastre database: stores config / upload
- Cadastral engine → CV extraction: extracts rooms
- Cadastral engine → Advanced vision: uses vision
- Cadastral engine → Vector extraction: extracts vectors
- Cadastral engine → Text analysis: analyzes text
- Cadastral engine → Point-cloud checks: validates heights
- Cadastral engine → Spatial validator: checks geometry
- Cadastral engine → Cadastre database: registers parcels
- AI pipeline → Floor-plan 3D: generates 3D
- Floor-plan 3D → Cadastral interface: provides twin data
- Rights management → Rights rules: invokes mutations
- Rights rules → Cadastre database: reads / writes titles
- Lien management → Rights rules: invokes lien actions
- Institution registry → Cadastre database: reads registry
- Building profiles → Cadastre database: reads profiles
- Parcel queries → Cadastre database: reads parcels
- Topology audit → Spatial validator: audits geometry
- Estate analytics → Cadastre database: reads metrics
- Government land records → Cadastral interface: informs parcel search
- Occupancy checks → Cadastre database: uses unit registry
