Inspiration
UK planning is trapped in the 90s. Real estate developers spending weeks manually scouring PDF constraint maps and Land Registry portals just to see if a site was viable. Meanwhile, councils struggle to meet housing targets because they lack the tools to identify strategic opportunities at scale for infrastructure/policy improvements. We wanted to build a "God Mode" for urban planning, a tool that bridges the information gap between those who build cities and those who regulate them.
What it does
CityZenith is a real-time 3D urban intelligence platform.
For Developers: Click any parcel to instantly generate a "Site Context." In seconds, the app assembles planning precedents, statutory constraints (Green Belt, Flood Zones), and market value heatmaps. An AI-powered "Build Mode" then runs a full development appraisal, estimating GDV, ROI, and approval likelihood.
For Councils: A dedicated "Council Mode" performs a 10-stage borough audit. Using RAG, it cross-references the live map against the council's actual Adopted Local Plan to suggest spatial interventions, identify brownfield opportunities, and flag housing delivery gaps.
How we built it
We built a high-performance spatial stack using Next.js 15 and MapLibre GL.
Data Engine: Parallel API calls to the IBEX planning API, Land Registry SPARQL endpoints, and Environment Agency WFS layers
AI Layer: We used Gemini 2.5 Pro for its massive context window, allowing us to feed it complex spatial evidence and local policy text simultaneously.
Vector Intelligence: Local Plan PDFs were chunked and stored in a MongoDB Atlas Vector Store, enabling semantic retrieval of specific planning policies.
Frontend: We used deck.gl for high-performance 3D overlays and Zustand for lightning-fast state management of raw spatial features.
Challenges we ran into
Balancing our context window: Planning data is noisy. We had to build a custom normalisation layer to filter out "noise" (like minor domestic extensions) so the AI focused only on substantive, precedent-setting developments.
Data Latency: Fetching from 5+ government APIs at once is slow. We solved this by streaming data progressively, so the UI updates as each "layer" of evidence arrives.
Accomplishments that we're proud of
Zero-input Appraisal: We managed to extract building heights, footprints, and use classes directly from vector tiles, meaning a user can get a financial ROI estimate without typing a single number.
Policy Grounding: Achieving a system where the AI doesn't just "guess," but actually cites the specific paragraph of the Local Plan that makes a site constrained.
What we learned
We learned that the bottleneck in UK housing isn't a lack of land; it's a lack of accessible evidence. We also discovered that LLMs are surprisingly good at spatial reasoning when the data is structured as context objects rather than just raw text.
What's next for CityZenith
Nationwide onboarding, by automating the ingestion of all 300+ UK Local Plans into our vector store to provide 100% coverage.
Built With
- deck.gl
- environment-agency-wfs
- google-gemini-2.5-pro
- hm-land-registry-sparql
- ibex-planning-api
- maplibre-gl
- mongodb-atlas
- mongodb-vector-search
- nextjs
- node.js
- planning.data.gov.uk-api
- proj4js
- react-map-gl
- tailwind-css
- turf.js
- typescript
- vercel
- vitest
- zustand
Log in or sign up for Devpost to join the conversation.