# 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`, and `scale`. ## πŸ—οΈ 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`: ```txt osmnx>=1.9.3 shapely geopandas ```` Optional (for better performance in prod): ```txt 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](https://hadox.org)**