High-level designVersion 1.029 Oct 2026Gandhinagar, Gujarat

GIFT City Twin

A digital twin that makes the working day in GIFT City measurably better, and lets planners see a change before it is built.

Lead Vatsal Mehta, project owner and developer Status Proof of concept running; MVP proposed Read time 12 min, 25 with engineering detail

Independent project. Not affiliated with or endorsed by GIFTCL. Every number in this report carries a source or a label saying how it was produced: measured, derived, modelled or synthetic.

The short version

The problem

About 25,000 to 30,000 people work in GIFT City. Their day is shaped by heat over 40 °C, a metro branch that ran only at peak hours, and almost no autos after 7:30 pm. The city's rich operational data never reaches them.

Our answer

One twin core with two faces: a phone companion for the people who walk, commute and work there, and a 3D console where operators and planners see forecasts and test what-ifs.

Proof so far

A working twin built in two days from open data: 1,718 buildings fused from five sources, live weather and air quality, a moving metro, and three what-if questions answered with numbers.

What we need

Four decisions (endgame, primary user, team and budget, GIFTCL access) and a short round of user interviews before the MVP is locked.

3.68 km²working boundary, the OSM place polygon
1,718building footprints fused, each with a confidence score
99cited sources, each tagged by confidence
13architecture decisions recorded as ADRs
153 → 7minutes average wait for a train home, if the metro ran every 15 min (modelled)
01

Why this twin, and why now

GIFT City already runs one of India's most instrumented utility networks, and an official portal twin is being built. Neither helps a commuter at 1 pm in May. We build the part that is missing: daily usefulness and prediction, on open standards so it can plug into the official platform later.

Documented painWhat people reportWhat only a twin can do about itFit
Heat on footSummers around 40 °C make walks impractical; staff ask for shaded paths.Shade-aware walking and street-level heat stress need 3D buildings, sun position and weather together.Strong
Getting homeMetro branch ran 07:36–10:18 and 16:06–19:13, every 49–57 min (Jan 2026). Autos scarce after 7:30 pm.Door-to-desk planning across metro, GIFT Go and walking, with a warning before the last option leaves.Strong
Finding the placeVisitors and new joiners cannot find the right tower, gate or lobby.Building, entrance and company finder down to the lobby, with drop-off points.Medium
After-work lifeDescribed as a "ghost town after working hours".Amenity and event discovery. Useful, but a map does this too.Weak

Sources: Outlook Business 2026 (S04), Gujarat metro timetable reporting Jan 2026 (S12). No primary user research yet; see section 07.

Where we sit next to the official twin

Official (expected)This project
Buyer, vendorGIFTCL, DEV IT; ₹2.79 crore, filed 1 Jul 2026Independent; seeks partnership
FocusWeb portal, content, walkthrough, investorsDaily utility for people on the ground
ModeDescriptive: what existsPredictive: what will happen, what if
OpennessVendor platformNGSI-LD, CityJSON, 3D Tiles, MCP

What Indian city twins look like today

Varanasi, Ayodhya, Guwahati and, since September 2026, Ahmedabad (₹283 crore, 625 km², underground utilities) were all procured from mapping vendors. They are strong on base maps, CCTV and asset layers, and weak on prediction, what-if analysis and anything a citizen uses daily.

Our position: base mapping is a vendor game we should not play. The application and simulation layer on top, built on the same open standards, is open ground.

Complement, never duplicateIntegrate through standardsNever look official

Five principles we hold ourselves to

Useful on day oneNothing in the public app may depend on data we do not have yet. Open data first; partner feeds plug in later.
Predictive, not descriptiveThe MVP predicts at least street heat stress and journey reliability, and answers at least one what-if.
Honest by designEvery value shows how it was made. measuredderivedmodelledsynthetic
Built to integrateStandards-based core with adapter interfaces, so GIFTCL's C4 or the official twin can connect without a rewrite.
Works in the sunCompanion interactive in 3 s on a mid-range Android over 4G; console at 30 fps on a mid-range laptop.
02

Who it serves

Five groups touch GIFT City every day. Each one gets something no map, portal or control-room screen gives them today. The first column is the people we would build for first.

Workforce and commuters
~25,000–30,000, incl. security, housekeeping and drivers
"It is 6:45 pm. How do I get home, and is the last train gone?"
MVP
Door-to-desk with the right entrance; cool corridors (shortest or coolest walk); heat now and next 24 h.
Later
Last-way-home guardian; heat-safe shift planner with Gujarati and Hindi voice alerts for outdoor staff.
Residents
small but growing; ~22% of planned built-up area
"A tower is going up next door. Will it take my sun?"
MVP
Coolest hour to go out; neighbourhood essentials with walking heat cost.
Later
My home's sun profile; future view from my window; report an issue on the 3D map.
Visitors
business guests, delegations, candidates, hotel guests
"Which gate, which tower, which lobby?"
MVP
Find the exact place, with a shareable meeting pin; a guided 3D story of GIFT City from 2016 to 2030.
Later
Arrival kit from airport and railway station; event mode; offline visitor card in three languages.
City operators
GIFTCL operations, C4, cooling, power, water, emergency services
"Heat wave tomorrow. Will district cooling hold?"
MVP
Heat-wave cockpit; tomorrow's cooling demand per building, labelled modelled.
Later, with partner data
Every C4 alarm in 3D context; restricted utility-tunnel view; calibrated cooling twin; evacuation planning.
Planners, investors, regulators
GIFTCL planning, developers, 939 registered entities, IFSCA
"What does a 30-storey tower on this plot do to its neighbours?"
MVP
Drop-a-tower what-if; growth vs cooling capacity by year; 4D city from 2016 to 2030.
Later
Plot feasibility with zoning; site selection by talent catchment; generative massing; permit pre-check.
One capability set for all
Shared
One time control from past to forecast to 2030; ask-the-twin agent that cites sources; provenance on every value; English, Gujarati and Hindi; open API.
Privacy
No accounts in the MVP. Routes are computed on the phone; home and office never leave the device (DPDP).
Which data each user needs Data to user matrix

Filled dot: needed for that user's MVP. Ring: needed later. Buildings with heights, footpaths with shade, weather and transit timetables unlock the MVP for four of the five groups, which is why they are the critical path.

DataWorkforceResidentsVisitorsOperatorsPlanners
Buildings and heights●●●●●
Entrances and drop-offs●○●○○
Footpaths with shade●●○○●
Weather forecast●●○●●
Air quality●●○○○
Transit timetables (GTFS)●○●○●
Amenities●●●○
Imagery time series○○○●
Master plan and zoning○○○●
Cooling SCADA, C4 alarms, tunnel BIM○○○

The deep-research report adds emergency services, tourists and city administration as separate stakeholders. We fold emergency services and administration into operators, and tourists into visitors, because they share data and interface; their extra needs (evacuation modelling, executive KPIs) sit on the operator roadmap.

03

What it does

One twin core, two faces, one agent. The core turns public data into a living model of GIFT City. The faces present it to two very different audiences, and the agent answers questions about it in plain language.

SOURCES TWIN CORE FACES Open map dataOSM, Open Buildings Satellite imagerySentinel-2, S2DR3 at 1 m Weather and airOpen-Meteo, CAMS Transit timetablesGMRC, GIFT Go, GSRTC Field dataentrances, sensor walks Partner feedsC4, cooling SCADA (later) ingest adapter Pipelinesfetch, validate, fuse, build tiles Semantic modelbuildings, paths, stops, sensors; stable IDs Enginessimulate, analyse, forecast, what-if APIsREST, NGSI-LD shaped, MCP tools Companionphone, public, works offlinecommuters, residents, visitors Consoledesktop 3D with a time slideroperators, planners Ask the twinAI agent, answers cite sourceseveryone public API internal API MCP tools Classification is enforced in the API: restricted partner data never reaches a public face.
Product shape. Every face reads the same core through the same APIs. The partner arrow is dashed because the adapter exists before the data does: that adapter is the partnership pitch to GIFTCL.

Feature status

Built working in the proof of concept Feasible now open data is enough Needs field data we can collect it Needs partner GIFTCL or utility data
FeatureStatusApproachWho it serves
Multi-source buildings with confidenceBuiltEach source is a candidate; a ranked fusion picks a winner and keeps the rest with their evidence.Everyone
Fresh imagery and 13 index layersBuiltEarth Engine composites, 1 m super-resolved scenes, swipe compare 2023 vs 2026.Planners
Roads from 1 m imageryBuiltOur SegFormer model, mask to graph, every edge scored against OSM.Planners
4D city, 2016 to todayBuiltYearly satellite-derived heights, calibrated; planned towers as ghosts once the master plan is available.Planners, visitors
Metro, signals and traffic animationBuiltTimetable to motion profile to CZML; signals evaluated per frame. Signals and traffic are synthetic.Operators, planners
Weather, India AQI, heat comfort (UTCI)BuiltCity conditions card; UTCI on a 20 m grid using every tower's shadow.Everyone
What-if: place a buildingBuiltLive shadow plus impacts: floor area, occupants, cooling vs capacity, cars, metro load, neighbours losing sun.Planners, residents
Where to open a shopBuiltMulti-criteria scoring on a 60 m grid; rules written in plain English, validated before running.Investors
Scenario LabBuiltBaseline vs scenario with KPIs, series, narrative and assumptions. Results below.Operators, planners
Shade-aware walkingFeasible nowShade per footpath segment every 15 min; routing runs on the phone. Gated by spike SP-02.Workforce, residents
Growth vs cooling capacityFeasible nowEnergyPlus prototype buildings on Ahmedabad weather, scaled by floor area, summed with diversity.Operators, planners
Ask the twinFeasible nowMCP server exposing the same endpoints as tools; a 50-question known-answer test set.Everyone
Door-to-desk and last-train alertNeeds field dataHand-built GTFS from official PDFs plus OpenTripPlanner; entrances mapped on site.Workforce, visitors
Real sensor fusionNeeds field dataOptimal interpolation already runs; needs a calibration walk with loggers.Operators
Spatial C4 and calibrated coolingNeeds partnerNGSI-LD adapter into the same reading model; restricted deployment.Operators
Utility-tunnel viewNeeds partnerRestricted IFC/CAD; never public.Operators

What the proof of concept already answers

Each Scenario Lab question runs a baseline and a scenario through the same engine. Grey is today; marigold is the scenario. Bars are drawn to scale within each card.

Transit

What if the metro ran every 15 minutes, all day?

Today153 min
Scenario7 min

Average wait for a train home. Working-day minutes with no train within 30 min fall from 78% to 0%; about 256 cars an hour leave the peak.

modelled Timetable reconstructed from news; mode shift is an elasticity estimate.

Traffic

Do coordinated signals cut waiting?

Today28 s
Scenario17.5 s

Signal wait per trip, down 37% with optimised offsets. On held-out trips: 29.4 to 20.2 s. A textbook green wave managed only 28 to 27 s.

synthetic Signal plans and demand are seeded; no queueing model yet.

Heat

How much cooler with shade trees?

Today93%
Scenario82%

Share of street cells at or above 35 °C at 14:00. Treated streets are 1.1 °C cooler in air temperature.

modelled Air temperature only; the larger radiant comfort gain is not yet modelled.

A finding that shapes the product: on 29 Oct 2026, only 3 to 7% of GIFT City's ground was in building shade at any daytime hour. Modelled comfort (UTCI) at 14:30 was 38 °C in sun and 34 °C in tower shade. Shade is scarce, which strengthens the case for trees and canopies, and is exactly why shade routing must pass its go/no-go test before it becomes the headline feature.

04

How it works

We borrow the shape of a proven open smart-city platform, Snap4City, and right-size it for one district and a small team. Data moves through six stages; each stage has one owner in the code and one rule it never breaks.

COLLECT PROCESS STORE AND INDEX ANALYSE PRESENT RUN Snap4City, the reference IoT DirectoryOrion brokers, MQTTETL, NiFi, DataGate Node-RED IoT appsmicroservicespush and pull flows OpenSearch clusterKm4City ontologyGeoServer Python and R jobsin containers: ML,traffic flow, OD Dashboard BuilderServiceMap 3D twincontrol-room synoptics Docker Composeone VM to a clusterAGPL-3.0 same stage GIFT City Twin, ours Source adaptersa manifest per downloadNGSI-LD adapter, later CLI now, Dagster nextvalidate, fuse,build tiles Files, then PostGIS+ TimescaleDBURN entities Sim + analysisplans in, state outLLM rules, validated Cesium consoleMapLibre companionMCP agent Docker Composeone India-region serverstatic Companion Snap4City: DISIT Lab, University of Florence; 40+ locations; components per github.com/disit/snap4city and its Nov 2022 overview talk.
Same stages, lighter parts. Snap4City proves the six-stage shape at city scale across 40+ deployments. We keep the stages and the ontology-first idea, and swap a VM-heavy PHP and Java stack for a Python package, a file store that grows into PostGIS, and two web clients.

What we take from Snap4City

  • An ontology-first entity model (their Km4City; our NGSI-LD URNs) so every sensor, building and stop is linkable.
  • A broker-ready front door with an auth filter, so partner feeds arrive through one guarded entrance.
  • A 3D scene built from separate buildings, so each one can be picked, inspected and replaced in a what-if. Their note that fused photoreal meshes block building substitution is why we build our own base.
  • What-if as versioned scenarios keyed by time.
  • One-command deployment from a single machine upward.

What we leave

  • The reference footprint: an 8-CPU, 500 GB virtual machine and a PHP, Drupal, Apache and Tomcat stack. Too heavy for one district and one developer.
  • Visual Node-RED flows for core logic. We keep logic in tested code so automated tests can guard it.
  • AGPL coupling. Linking AGPL services would set our own licence before we have decided it (Q-10).
  • No-code dashboards as the main interface. Our users need answers and routes, not widgets.
CLIENTS EDGE SERVICES DATA, INDIA REGION Companion PWAMapLibre, deck.gl; routes on device ConsoleCesiumJS 3D, time slider, what-if LLM agentany MCP client CDN, static hosting3D Tiles, vector tiles, app bundles API gatewayauth, rate limits, classification enforced here MCP servertwin tools for agents tiles public API signed in tool calls same rules Twin APIFastAPI; entities, series, scenarios Journey plannerOpenTripPlanner 2, GTFS + OSM Simulation workersshade, heat, what-if, cooling Tile serverMartin vector tiles routes requests runs scenario PostgreSQL + PostGIS + TimescaleDBentities, geometry, time series, scenarios Object storageraw data, tiles, rasters, scenario outputs reads, writes tiles from results Pipelines (Dagster)ingest → validate → conflate → build tiles → publish a versioned build to storage and CDN writeswrites
Target containers for the MVP. The gateway is the one place that decides who sees what: public, internal or restricted. The Companion's routes never pass through it; they are computed on the phone from cached tiles.

Four flows that matter

Base data build, batch

  1. Fetch each source; write raw files with a manifest (URL, date, SHA-256, licence).
  2. Validate schema, coordinate system and geometry.
  3. Fuse footprints and heights by trust rank; keep every candidate.
  4. Write entities with stable URNs; build 3D Tiles, vector tiles, shade tables, routing graph.
  5. Publish a versioned build (build ID, git SHA, manifests).

Shade-aware route, on the phone

  1. Load the routing graph and this season's shade table once; cache for offline.
  2. A Web Worker runs time-dependent A* with the user's shortest-to-coolest setting.
  3. Show the route, % shaded and extra metres.
  4. No trace is sent to any server.

Heat stress, hourly

  1. Fetch the forecast; compute UTCI per street segment from now to +24 h.
  2. Combine weather with each segment's shade and surface type.
  3. Store in TimescaleDB; serve as tiles with method and run ID.

What-if, on request

  1. The console posts a footprint, height and use.
  2. A worker recomputes shadows, broken shade routes, cooling and trips.
  3. Results are stored per scenario ID and diffed against the baseline build.
  4. Target: answer within 10 s.

Rules the design never breaks

ADRDecisionWhy it mattersStatus
0005Provenance on every valueModelled numbers mistaken for measured ones would destroy trust with a government audience.Proposed
0006Classification enforced server-sideUtility tunnel, substations and CCTV are critical infrastructure. Hiding a layer in the UI is not security.Proposed
0007Build our own 3D baseGoogle's photoreal tiles do not cover India, and their terms forbid measuring from them.Proposed
0008NGSI-LD shaped live entitiesBIS IS 18003 and IUDX are NGSI-LD based; this is how we plug into Indian government platforms.Proposed
0010Simulation: plans in, state outDeterministic, seeded engines make every scenario reproducible and testable.Accepted
0011LLM proposes, schema decides, human reviewsThe model never computes a number we show; it writes rules that are validated and editable.Accepted
0013Air quality is city-wide; comfort is spatialOne station 4.5 km away cannot draw a street-level AQI map; heat comfort can.Accepted
Data model, identity and security zones Engineering

Core entities: Building, Storey, Entrance, FootpathSegment, RoadSegment, PublicSpace, TransitStop, TransitRoute, Amenity, WeatherForecast, AirQualityObserved, ShadeSample, HeatStressForecast, Scenario, DataSource. Every record carries the same envelope:

{
  "id": "urn:ngsi-ld:Building:giftcity:B-GIFT-ONE",   // stable forever, never derived from geometry
  "type": "Building",
  "geometry": "EPSG:4326 stored; EPSG:32643 (UTM 43N) for analysis",
  "valid_from": "2013-01-01", "valid_to": null,       // 4D: history, today, planned
  "status": "operational | under_construction | planned",
  "provenance": { "kind": "measured | derived | modelled | synthetic",
                  "source_ids": ["S24", "D41"], "method": "registry", "run_id": "…" },
  "classification": "public | internal | restricted",
  "xref": { "osm": "way/…", "open_buildings": "…" }   // external IDs are cross-references only
}
ZoneContentsAccess
PublicCompanion, public tiles, public APIAnonymous, rate-limited
InternalConsole, scenarios, agent with internal toolsSigned in (Keycloak, OIDC)
RestrictedPartner data: utilities, C4, tunnel BIMNamed users, audited, separate storage, India region

Standards mapping: buildings as CityGML 3.0 / CityJSON and NGSI-LD Building; footpaths as CityGML TrafficSpace and NGSI-LD RoadSegment; weather and air as Smart Data Models WeatherForecast and AirQualityObserved; transit as GTFS; sensors as OGC SensorThings; building systems later as Brick and IFC.

As-built proof of concept and its API Engineering
LayerCodeRule
Sourcesgifttwin/sources/*One module per source; every download gets a manifest.
Domaingifttwin/buildings/*All height candidates kept; the winner is explained.
Worldgifttwin/world.pyThe only runtime file reader; swap for PostGIS here and nothing else changes.
Simulationgifttwin/sim/*Deterministic and seeded; CZML out.
Analyticsgifttwin/analysis/*Every number carries assumptions and provenance.
Integrationsgifttwin/integrations/*External ML runs behind a process boundary in its own environment.
Clientfrontend/src/*React never touches Cesium directly; it updates a store or calls a controller.
EndpointPurpose
GET /api/layers/{buildings,change}Fused buildings and change polygons as GeoJSON
GET /api/world/{context,imagery,roads}Boundary, metro, roads, POIs; imagery catalogue; road-extraction stages
GET /api/sim/{transit,vehicles}.czmlTime-dynamic metro and traffic
GET /api/sim/{sensors,heat,conditions,comfort}Readings, fused heat field, weather and NAQI, UTCI raster
GET /api/scenariosScenario Lab results with assumptions
POST /api/whatif/buildingImpacts of a proposed building
POST /api/siting/evaluate · /api/rules/translateSite suitability; plain English to validated rules

Path to target without a rewrite: PostGIS and TimescaleDB when scenarios are saved or layers pass 50 MB; 3D Tiles past 10,000 buildings or for façade shaders; an NGSI-LD adapter at the first partner feed; SUMO when real traffic counts exist; the MapLibre Companion at the first public pilot.

05

Data and research

Two days of research and build produced ten research notes, a 55-entry data catalogue and 99 cited sources. Every fact is tagged by how sure we are, and contradictions are kept in the open rather than smoothed over.

[V] verified at source[R] reported by others[I] our inference[U] unverified[K] background knowledge

What we collected

DatasetWhat we holdUsed forProvenance
OpenStreetMapPulled 28 Oct 2026: boundary polygon (3.68 km²), a 7,630-node road graph, metro viaduct, POIs, 61 buildings inside the boundary.Network, contextmeasured
Google Open Buildings v310,580 footprints in the box, 1,661 inside the boundary, streamed from an 8.2 GB shard in about 12 s.Footprintsderived
Open Buildings 2.5D TemporalYearly heights 2016 to 2023 per footprint via Earth Engine; calibrated ×1.24 against 9 trusted towers.Heights, 4Dmodelled
Curated registry43 buildings with floors, height, status and web sources.Authoritative heightsmeasured
Sentinel-2 via Earth EngineOct 2026 composite; single scenes 1 Jun 2023 and 15 Oct 2026; 13 index layers (NDVI, EVI, NDBI, BSI, NDWI, MNDWI, land surface temperature, and 2023→2026 changes).Greenery, heat, changederived
S2DR3 at 1 mTwo super-resolved scenes (2023, 2026), true colour plus 12 bands; 53 of 75 monthly credits left.Roads, future 3Dmodelled
Roads from our modelRoute Resilience SegFormer on 1 m scenes: 92–95% of detections lie on OSM roads; finds 48–51% of OSM.OSM edit checklistmodelled
Change 2023 → 2026Spectral change polygons; 184 buildings flagged as changed.Construction radarderived
Weather and airOpen-Meteo hourly cache; CAMS pollutants with India NAQI computed by us: 120 Moderate, ozone-led, at 14:00 on 29 Oct while US AQI read 73.Conditions, UTCImodelled
BasemapEsri World Imagery over GIFT City is Vantor 0.34 m from 16 May 2026 (non-commercial demo terms).Visual referencemeasured
Transit timetablesFour official PDFs (GMRC, GIFT Go, GSRTC, intra-city bus) located; GTFS to be hand-built.Door-to-deskto build
Master plan, cooling SCADA, C4, drone surveyNot available. Routes: RTI for the plan; partnership for live feeds; Digital Sky check for drones.Zoning, operatorsblocked
CANDIDATES PER FOOTPRINT Curated registry, web-verified OSM height or floor tags Open Buildings v3 footprint Satellite heights 2016–23, ×1.24 Placeholder, 6 m Rank by trust 1 registry, high confidence 2 OSM measured height 3 registry medium, OSM floors × 3.5 m 4 registry low, satellite calibrated 5 placeholder, hidden by default winner Fused building height and its source confidence score, high to none every losing candidate kept height history, status changed since 2023: yes or no Sentinel-2 change 2023 → 2026 flags 184
How a building gets its height. No source is thrown away. The fused record says which source won and why, so a planner can check it and a field survey can overrule it.

The weak spot, shown plainly

High 4 Medium 7 Low 531 None 1,176, mostly sheds

Shadows, heat comfort and what-if are only as good as these heights. The roughly 60 main towers are few enough to verify by hand, which is the first field task on the roadmap.

Key research facts we build on Research
TopicFactTag
Scale~25,000–30,000 workers; 25 operational buildings, 37 under construction; ~62 M sq ft planned, ~29.5 M allotted; use mix ~67% commercial, 22% residential.[R] S04 S10
Operations brainC4 command centre integrates 70,000+ I/O points across power, cooling, water, waste, utility tunnel, streetlights and GIS.[V] S82
District coolingPlanned 180,000 TR; phase 1 since 2015; claims electrical demand cut from 240 to 135 MW; SCADA metered.[V] S06
Utility tunnel~16 km (World Bank) or ~17 km; power, water, sewage, waste pipes, chilled water.[R] S08
MetroGIFT City branch opened Sep 2024; peak-only every 49–57 min in Jan 2026; operation until 11 pm approved from May 2026, branch details unknown; Shahpur extension approved Feb 2026.[R] S12 S13 S15
HeatAhmedabad's Heat Action Plan (2013) followed the May 2010 heat wave at 46.8 °C; it gives us alert thresholds and credible partners.[V] S52
Shade routing evidenceCoolWalks (Sci. Reports, 2025): uniform grids gain nothing from shade routing; mixed heights can. GIFT City is mixed, so gains are plausible but unproven.[V] S51
Maps lawDST 2021: data finer than 1 m horizontal or 3 m vertical must be Indian-owned and stored in India.[R] S46
Personal dataDPDP Rules notified Nov 2025; main obligations from about May 2027.[R] S50
DronesGIFT City sits about 12 km from the airport, at the edge of the yellow band; assume permission is needed.[R] S49 S85
How we reconciled the deep-research report Research

The external deep-research report is kept unchanged in docs/inputs/2026-10-29-deep-research-report.md. Each claim was checked against our research before use.

Adopted

  • Stakeholder to data to feature mapping; adds emergency services and city administration to our users.
  • Data-quality KPIs: freshness, completeness, latency, reliability, shown on a data-health page.
  • Standards stack: CityGML/CityJSON, IFC, SensorThings, NGSI-LD, 3D Tiles, OGC API. It matches ours.
  • Governance: catalogue, audit logs, a steering group once partners join.
  • Platform comparison, used in section 06.

Deferred, by trigger

  • Kafka, Kubernetes and a service per function: no event volume or team size justifies them yet.
  • Graph database: PostGIS plus URN relations cover our links.
  • Closed-loop control of city systems: a non-goal until an operator asks for supervised advice.
  • Blockchain provenance, AR/VR: no user need found.

Not used, unverified

  • "5% of assets yields 80% of benefit"; "payback in 15–18 months"; "28% water OpEx cut": no primary source.
  • Snap4City licence given as GPL: the repository is AGPL-3.0.
  • "NGSI-LD backbone": Snap4City is FIWARE-certified; the NGSI version is not stated.
  • Roadmap dates starting Jan 2025 are out of date.
06

Technology

Open source end to end, chosen for a geospatial and simulation workload, and sized for one district rather than a national platform. Heavier infrastructure arrives only when a named trigger fires.

ConcernBuilt todayMVP targetWhy this and not the alternative
3D consoleCesiumJS 1.146Same, with 3D TilesGlobe-accurate, real sun and shadows, time-dynamic CZML, Apache-2.0. Unreal needs GPU streaming and cannot reach phones.
Phone companionNot yetMapLibre + deck.gl PWACesium is too heavy on a mid-range Android in the sun. One data core, two renderers (ADR-0003).
Web appReact 19, Vite 8, TypeScript strict, zustandSameFast iteration; the store keeps React away from the 3D engine.
BackendPython 3.11, FastAPI, pydantic, Typer CLISameGeo, ML and simulation libraries are Python-native: shapely, pyproj, networkx, rasterio, pvlib.
StorageFiles with manifestsPostgreSQL + PostGIS + TimescaleDB; object storageOne database for geometry and time series. Orion-LD only when a partner feed is real.
PipelinesCLI commandsDagsterAsset-based pipelines with lineage; a scheduler only when there is something to schedule.
Remote sensingEarth Engine; Gamma Earth S2DR3Same, plus STAC catalogueNo raster downloads for composites; 1 m scenes at a few credits each.
Machine learningOur SegFormer roads model in its own environment+ ChangeFormer for new buildingsProcess boundary: the twin never imports torch.
JourneysNot yetOpenTripPlanner 2Mature multimodal GTFS routing. Shade routing stays on the phone.
SimulationOwn engines; optimal interpolation for sensors+ EnergyPlus prototypes, SUMO laterPhysics where it decides the answer; seeded and reproducible everywhere.
AIGroq, gpt-oss-120b, JSON rulesMCP server + eval setSwappable model; every number comes from a tool, never from the model.
Qualitypytest, vitest, Playwright; ruff; CI on GitHub+ performance budgets in CI86 automated tests today (66 backend, 13 frontend unit, 7 end-to-end), including Python and TypeScript parity for signals.
PlatformLocalDocker Compose, one India-region server, Keycloak, OpenTelemetryIndia hosting for fine data and any personal data. Static Companion survives API downtime.

Build or buy

PlatformStrengthWhy it is not our coreWhat we borrow
Snap4CityOpen, FIWARE-certified, full city pipeline, 40+ deploymentsHeavy VM stack; AGPL; dashboard-firstSix-stage shape, ontology-first model, scenario versions
FIWARE Orion-LDThe open NGSI-LD context broker; IUDX compatiblePlumbing only, no 3D or analyticsOur live-entity API shape; adopt the broker at first partner feed
Azure Digital Twins, AWS TwinMakerManaged scale, enterprise supportLock-in, cost, managed twin products get retiredGraph-of-entities thinking
Esri ArcGIS UrbanBest planning GIS; common in Indian governmentLicence cost; weak on live data and citizen appsPlanning scenario UX
Bentley iTwinBIM and infrastructure depth; owns CesiumCost; engineering-first UIRestricted utility-tunnel view later
Scale triggers: when heavier infrastructure earns its place Engineering
AddOnly when
PostGIS + TimescaleDBScenarios are saved, time series accumulate, or a layer passes 50 MB
3D Tiles pipeline (pg2b3dm)More than 10,000 buildings, or façade shaders such as lit windows
Orion-LD broker, MQTTThe first partner or field sensor feed is live
SUMO trafficReal counts and signal plans exist to calibrate it
KafkaSustained event volume beyond what Postgres and MQTT handle, roughly thousands per second
KubernetesMore than one team operates the platform, or uptime commitments exceed one server with backups
Gaussian-splat hero zoneDrone or phone capture is permitted; Cesium has supported splat tilesets with LOD since Apr 2026
07

Feasibility

The technology is proven by the running prototype. The open risks are data access, user evidence and positioning, and each has a planned answer.

Technical

High

Every MVP engine has a working prototype: 3D, fusion, shadows, comfort, simulation, what-if, LLM rules.

Data

Medium

Open data covers the MVP for four of five users. Heights are weak; master plan and live feeds are blocked.

Legal

Medium

ODbL share-alike, non-commercial API terms, DPDP, drone permission, critical-infrastructure care. All have rules in place.

Cost

High

Free tiers and one server run the MVP. Commercial use needs paid weather and imagery; the cost model is still open.

Adoption

Low to medium

No primary user research yet, and an official twin is coming. Interviews and a partner-first pitch close this.

Team and time

Open

Capacity, deadline and budget are undecided, so the roadmap below is indicative.

Top risks and what we do about them

RiskOddsImpactMitigation
Official twin launches overlapping public featuresMediumHighLead with prediction and daily utility; offer integration through standards rather than compete on 3D.
Shade routing shows little gainMediumMediumSpike SP-02 first: under 10% more shade at 15% extra distance demotes it to a layer; lead with heat stress and door-to-desk.
Wrong heights give wrong shadowsMediumHighCurated registry, on-site floor counts for ~60 towers, golden tests.
Modelled numbers taken as realMediumHighProvenance chip on every value; "modelled" in the copy; hatching for synthetic layers.
Sensitive infrastructure exposedLowHighServer-side classification with tests; review before any layer is published.
Timetables change and misleadHighMedium"Timetable as of" dates; monthly re-check; feedback button.
Licence breach (ODbL, non-commercial terms)MediumHighLicence matrix; CI check that every source has a licence entry.
Scope creepHighMediumSlice gates, ADRs and a demo script written before the build.
Limits of the prototype, stated up front Honesty
  1. Signals, vehicles, most sensors, shop POIs and rents are synthetic. They are labelled in the interface and deterministic by seed.
  2. 1,176 small footprints still use a placeholder height and are hidden by default.
  3. Satellite-derived heights are calibrated on only 9 tower pairs, which is why they rank as low confidence.
  4. The change layer is a 10 m spectral heuristic: good for "look here", not for counting buildings.
  5. Esri imagery and the free Open-Meteo API are used under non-commercial terms.
08

Roadmap

Ruthless MVP, ambitious roadmap. Each slice ships on its own and must pass a measurable gate before the next one depends on it.

28–29 Oct 2026

Proof of concept

3D twin, fusion, imagery, metro, Scenario Lab, what-if, siting, conditions and comfort.

About 12 weeks

MVP

Slices S0 to S7 on open data and our own field data. Public Companion pilot; console demo for GIFTCL.

After MVP

v1, field data

Entrances mapped, sensor calibration walk, verified GTFS, last-way-home guardian, heat-safe shift planner.

With a partner

v2, live city

C4 alarms in 3D, calibrated cooling twin, restricted tunnel view, emergency planning.

Indicative, assuming one or two developers. It will be fixed once team, time and budget (Q-03 to Q-05) are answered.

How we will validate before we claim Validation
WhatHowPass mark
Is the problem real?10–15 interviews across levels including service staff; a week of commute diaries; observation at 09:00, 13:00, 18:30, 20:00Top three pains confirmed or replaced
ShadowsTimestamped photos at 5–10 points vs predicted shadowsEdges within a few metres
Heat comfortWalk with a temperature and humidity logger plus a black-globe thermometer in sun and shadeError reported in the docs
Journeys20 timed trips vs the plan95% within 5 min
Ask the twin~50 known-answer questions on every changeEvery number traced to a tool call
PerformanceReal mid-range Android outdoors; budgets in CI3 s to interactive; 300 KB initial JS
09

Decisions needed

Engineering can move ahead on the foundations today. These choices decide what the MVP looks like, so they come before slice S1.

Q-01

What is the endgame: portfolio, competition, startup or a government pitch?

Recommendation: treat it as a government and GIFTCL pitch with a public pilot. It sets the bar for honesty and security that every other endgame also needs.

Q-02

Who is the primary user?

Recommendation: the commuting professional, including service staff. Largest group, sharpest documented pain, and served by open data alone. Planners stay the second face.

Q-03 to 05

Team, time and budget

Recommendation: one lead developer plus one part-time field and research helper for 12 weeks; budget for one India-region server, paid weather if commercial, and a few S2DR3 credits.

Q-12

When to approach GIFTCL, DEV IT and GMRC

Recommendation: after S2, with a working Companion and the console demo. Lead with the NGSI-LD adapter as the integration offer.

Q-09, Q-10

Product name and our own licence

Recommendation: an independent name that cannot be mistaken for official branding; Apache-2.0 for code, ODbL where outputs derive from OSM.