Some checks reported errors
continuous-integration/drone/push Build was killed
Polisplexity Digital Twin Viewer
This application is a Django-based 3D digital twin city renderer using A-Frame and real-world OpenStreetMap (OSM) data. It allows visualization of buildings, fiber paths, cell towers, and other urban infrastructure in a simulated, interactive WebVR environment.
✨ Features
- 🔲 Building extrusion from OSM: Downloads building footprints with geometry and height/levels metadata and extrudes them into 3D blocks.
- 🛰️ Street network rendering: Downloads local driving network and represents it visually as 3D fiber links.
- 🏙️ Recentered city layout: All elements are normalized to a
(0,0)
coordinate center and scaled down to allow a bird’s-eye view or giant-perspective simulation. - 📡 A-Frame-based environment: Uses
aframe-environment-component
for sky, lighting, ground, and interactions. - 🎯 Status gauges: Each building displays a status gauge with a rotating ring and transparent glass core, labeled with mock status data.
- 🧠 Per-entity click interaction: Clicking on a gauge changes its color and toggles the status (mocked).
- 🌐 Dynamic generation by coordinates: Any city view can be created dynamically via URL parameters like
lat
,long
, andscale
.
🏗️ Stack
Component | Technology |
---|---|
Backend | Django 5.x |
Mapping API | osmnx , shapely , geopandas |
Frontend (3D) | A-Frame 1.7.0 |
Visualization Libs | aframe-environment-component |
Deployment Ready? | Yes, via Docker + Gunicorn |
🔌 Example Usage
To load a city block from Centro Histórico, Mexico City:
[http://localhost:8001/city/digital/twin/osm\_city/?lat=19.391097\&long=-99.157815\&scale=0.1](http://localhost:8001/city/digital/twin/osm_city/?lat=19.391097&long=-99.157815&scale=0.1)
🧪 Directory Highlights
pxy_city_digital_twins/views.py
: Request handler that decides which generator to use (osm_city
,random_city
, etc.)services/osm_city.py
: Main generator for real-world urban geometry based on lat/lon.templates/pxy_city_digital_twins/city_digital_twin.html
: A-Frame scene renderer.templates/pxy_city_digital_twins/_status_gauge.html
: UI fragment for interactive gauges on city elements.
📦 Dependencies
Add these to requirements.txt
:
osmnx>=1.9.3
shapely
geopandas
Optional (for better performance in prod):
gunicorn
dj-database-url
🚧 To-Do
- Load
status
from a real database or agent simulation - Add 3D models (e.g., trees, street furniture)
- Support texture-mapped facades
- Add time-based simulation / animation
- Integrate sensor/IoT mock data stream
👀 Screenshot
Coming soon — consider generating A-Frame scene screenshots automatically using headless browser tools.
Maintained by Hadox Research Labs