Inspiration
Every important decision about the physical world starts with a question.
Where should the next hospital go? Where would a new bridge have the biggest impact? Which communities are underserved? If a wildfire started here, where would it spread first?
Answering those questions usually means learning GIS software, hunting for datasets, and stitching together complex spatial workflows. We wondered whether AI could remove that barrier without removing the rigor.
Instead of asking an AI for an answer, what if you could ask Earth a question?
What it does
Heka is Cursor for GIS. Ask Earth in natural language.
Describe a spatial problem in plain English and Heka figures out what information is needed, discovers relevant open datasets, builds a spatial analysis, runs GIS tools, and visualizes the results on an interactive globe.
For example, you can ask:
Where should Calgary build its next hospital? Where is the safest place to build a bridge across the Lagos Lagoon? Which neighborhoods would lose emergency coverage if this fire station closed? Where should new EV chargers be installed? Which Canadian city is most vulnerable to urban flooding?
If the required data doesn't exist, Heka says so instead of pretending it knows.
How we built it
We built Heka with React, TypeScript, Tauri, Cesium, PyQGIS, Cloudflare Workers, and GPT-5.6.
The AI never performs the GIS analysis itself.
Instead, GPT-5.6 plans the problem using structured outputs. Heka discovers datasets, validates whether enough evidence exists, then executes deterministic spatial analysis using GIS tooling and public data. The results are returned as explainable layers, ranked candidates, and interactive maps.
Codex was our primary engineering partner throughout Build Week, helping us iterate quickly on architecture, desktop integration, UI, and the AI planning pipeline.
Challenges we ran into
It was our first time building AI tools so most of the time was spent here. The AI at first did too much, then did too little and tried to put everything into the tool calling we provided.
We spent a lot of time separating planning from computation. The planner decides what should happen, while GIS tools perform the actual calculations.
We also had to integrate PyQGIS into a desktop application, package Cesium correctly, build a hosted AI gateway, and make the interface explain both its reasoning and its limitations instead of acting like a black box.
Accomplishments that we're proud of
Built a working AI-native GIS application in the last 2 days of Build Week. Integrated GPT-5.6 with deterministic GIS analysis instead of relying on hallucinated answers. Executed real QGIS Processing pipelines on public datasets. Created both a hosted web demo and a desktop Spatial Reasoning IDE. Built a system that admits when it lacks enough data rather than fabricating results. Created an interface where conversations, datasets, maps, and analysis stay connected.
What we learned
AI is very good at understanding intent.
GIS is very good at computing answers.
Connecting them unlocks a lot.
We also learned that users trust a system more when it explains what evidence it found, what assumptions it made, and what information is still missing.
What's next for Heka
Right now Heka can answer questions using open datasets and GIS analysis.
Next we want to make it useful for much broader spatial problems:
environmental planning disaster response transportation conservation infrastructure planning climate resilience agriculture utilities
We also want to support more GIS formats, more analysis tools, better dataset discovery, collaborative workspaces, and richer spatial reasoning.
Our goal isn't to replace GIS.
It's to make asking questions about the physical world as natural as writing code became with AI. Heka helps people move from "I have a spatial question" to "Here's an explainable map and the evidence behind it."
Built With
- cesiumjs
- cloudflareworkers
- codex
- geojson
- gis
- gpt5.6
- openstreetmap
- pyqgis
- python
- qgis
- react
- rust
- tauri
- typescript
Log in or sign up for Devpost to join the conversation.