# khadeer0503/crowdsourcing_virtual-reality architecture

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

- Interactive diagram: https://gitdiagram.com/khadeer0503/crowdsourcing_virtual-reality
- Repository: https://github.com/khadeer0503/crowdsourcing_virtual-reality

## Overview

BIO-INTEL-MOB is a Unity VR application for exploring geospatial city scenes, inspecting proposals, and editing proposed street changes in a runtime workspace; it also supports SUMO traffic and pedestrian visualization. The principal flow is pilot-site selection and city exploration, through proposal inspection and landing, into inventory-based placement and editing. The README documents these capabilities and their relationships, but the only sampled source file is the SUMO-to-Unity bridge. Consequently, most implementation paths below identify existing asset directories, not inspected runtime code; internal call-level relationships cannot be verified.

Main entry points: [`Assets`](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets) (Pilot sites), [`Assets/Config`](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config) (Proposal markers), [`Assets/Config/INSPECTION/InspectionSystem`](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem) (Inventory panel), [`Assets/Config/INSPECTION/InspectionSystem/Prefabs`](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Prefabs) (Asset placement)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_explore["City exploration"]
  node_city["Geospatial city"]
  node_site["Pilot sites"]
end

subgraph group_inspect["Proposal inspection"]
  node_proposal_api["Proposal API"]
  node_markers["Proposal markers"]
  node_search["Marker search"]
  node_details["Proposal details"]
  node_street["Street inspection"]
end

subgraph group_workspace["Street workspace"]
  node_catalog["Asset catalog"]
  node_inventory_ui["Inventory panel"]
  node_placement["Asset placement"]
  node_editing["Object editing"]
  node_measurement["Measurement"]
  node_crossings["Zebra crossings"]
  node_workspace_state["Runtime workspace"]
end

subgraph group_simulation["Simulation"]
  node_sumo["SUMO simulation"]
  node_bridge["SUMO UDP bridge"]
  node_simulation_view["Simulation visualization"]
end

node_person(("VR user"))
node_user(("VR participant"))

node_user -->|"selects site"| node_site
node_site -->|"configures overview"| node_city
node_site -->|"loads dataset"| node_proposal_api
node_proposal_api -->|"provides proposals"| node_markers
node_user -->|"filters markers"| node_search
node_user -->|"selects proposal"| node_markers
node_markers -->|"shows details"| node_details
node_user -->|"lands to inspect"| node_street
node_user -->|"browses assets"| node_inventory_ui
node_catalog -->|"supplies definitions"| node_inventory_ui
node_inventory_ui -->|"starts placement"| node_placement
node_user -->|"confirms preview"| node_placement
node_user -->|"edits selection"| node_editing
node_placement -->|"creates objects"| node_workspace_state
node_editing -->|"updates objects"| node_workspace_state
node_user -->|"measures workspace"| node_measurement
node_user -->|"edits crossing"| node_crossings
node_sumo -->|"streams simulation state"| node_bridge
node_bridge -->|"sends UDP frames"| node_simulation_view
node_user -.->|"starts or stops"| node_simulation_view

click node_city "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/CesiumSettings"
click node_site "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets"
click node_proposal_api "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets"
click node_markers "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config"
click node_search "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config"
click node_details "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config"
click node_street "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION"
click node_catalog "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Inventory"
click node_inventory_ui "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem"
click node_placement "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Prefabs"
click node_editing "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem"
click node_measurement "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem"
click node_crossings "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Prefabs"
click node_workspace_state "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION"
click node_bridge "https://github.com/khadeer0503/crowdsourcing_virtual-reality/blob/main/SumoBridge/sumo_unity_bridge.py"
click node_simulation_view "https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets"

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_city,node_site,node_person toneBlue
class node_proposal_api,node_markers,node_search,node_details,node_street toneAmber
class node_catalog,node_inventory_ui,node_placement,node_editing,node_measurement,node_crossings,node_workspace_state toneMint
class node_sumo,node_bridge,node_simulation_view toneRose
class node_user toneIndigo
```

## Components

### City exploration

- [Geospatial city](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/CesiumSettings): `Assets/CesiumSettings`
- [Pilot sites](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets): `Assets`

### Proposal inspection

- [Proposal API](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets): `Assets`
- [Proposal markers](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config): `Assets/Config`
- [Marker search](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config): `Assets/Config`
- [Proposal details](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config): `Assets/Config`
- [Street inspection](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION): `Assets/Config/INSPECTION`

### Street workspace

- [Asset catalog](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Inventory): `Assets/Config/INSPECTION/InspectionSystem/Inventory`
- [Inventory panel](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem): `Assets/Config/INSPECTION/InspectionSystem`
- [Asset placement](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Prefabs): `Assets/Config/INSPECTION/InspectionSystem/Prefabs`
- [Object editing](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem): `Assets/Config/INSPECTION/InspectionSystem`
- [Measurement](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem): `Assets/Config/INSPECTION/InspectionSystem`
- [Zebra crossings](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION/InspectionSystem/Prefabs): `Assets/Config/INSPECTION/InspectionSystem/Prefabs`
- [Runtime workspace](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets/Config/INSPECTION): `Assets/Config/INSPECTION`

### Simulation

- **SUMO simulation**
- [SUMO UDP bridge](https://github.com/khadeer0503/crowdsourcing_virtual-reality/blob/main/SumoBridge/sumo_unity_bridge.py): `SumoBridge/sumo_unity_bridge.py`
- [Simulation visualization](https://github.com/khadeer0503/crowdsourcing_virtual-reality/tree/main/Assets): `Assets`

### Other components

- **VR user**
- **VR participant**

## Connections

- VR participant → Pilot sites: selects site
- Pilot sites → Geospatial city: configures overview
- Pilot sites → Proposal API: loads dataset
- Proposal API → Proposal markers: provides proposals
- VR participant → Marker search: filters markers
- VR participant → Proposal markers: selects proposal
- Proposal markers → Proposal details: shows details
- VR participant → Street inspection: lands to inspect
- VR participant → Inventory panel: browses assets
- Asset catalog → Inventory panel: supplies definitions
- Inventory panel → Asset placement: starts placement
- VR participant → Asset placement: confirms preview
- VR participant → Object editing: edits selection
- Asset placement → Runtime workspace: creates objects
- Object editing → Runtime workspace: updates objects
- VR participant → Measurement: measures workspace
- VR participant → Zebra crossings: edits crossing
- SUMO simulation → SUMO UDP bridge: streams simulation state (evidence: `SumoBridge/sumo_unity_bridge.py`)
- SUMO UDP bridge → Simulation visualization: sends UDP frames (evidence: `SumoBridge/sumo_unity_bridge.py`)
- VR participant → Simulation visualization: starts or stops
