Skip to main content

Ask anything about the real world.

geo.qa is geographic question‑answering for production AI. A fleet of modalities (satellite optical, SAR, drone, CCTV, ground sensors) fused into one memory you own, so your model answers with what was actually observed, cites the receipt, and can train on it.

Cell × Band × Tslot  Fact
Signed · verifiable
Private · airgapped
Plate i · the cell latticesurvey · 1:∞
Fig. i. Every place on Earth resolves to a stable address roughly ten metres on a side, matched to the Sentinel pixel pitch. Every observation, from any sensor, files against it.

Chapter I

The agent that was never there.

Put an AI agent into production and, sooner or later, it answers a question about a place it has never observed. Fluently, and wrong.

If you have run an agent against the physical world, you have seen it. Ask whether an address flooded last week, whether a field caught rain, whether a gate stood open at three in the morning. The model reaches for the nearest static dataset and serves it back as live truth.

The failure is not reasoning. The model reasons fine. The failure is that it holds no memory of the place: nothing observed, nothing dated, nothing it can be held to.

This is a memory problem, not a model problem. So we built the memory: a record of real places, kept current by every sensor already pointed at them, that an agent can query and quote.

# ungrounded LLM ask has 12 Rue de l'Étang flooded this month? → "No recent flooding reported." (invented) # the same question, grounded by geo.qa ask has 12 Rue de l'Étang flooded this month? → flood_extent = 0.0 across 4 observations cell 8a1f0b27a… · NDWI · SAR-VV · optical · 30d receipt 0x9f3c… signed
Spec. 1. Same prompt, two memories. One guesses; one answers and shows its work.

Chapter II

How the memory is made.

The encoder runs at the source, on our own devices. What travels to the ground is a latent, not imagery, and a decoder turns it into citeable fact.

01

Observe

Sensors already in place: orbital payloads, drones, vehicle cameras, fixed CCTV, all pointed at the same ground.

02

Encode → latent

The encoder runs at the source: for satellites, on the orbital data-centre payload. A scene becomes a latent vector before it touches a ground station.

03

Decode → memory

On the ground, the decoder resolves each latent onto the cell lattice: one shared, addressable Earth memory.

04

File a fact

Every value is filed with its band, its time, and a signed receipt. Nothing is overwritten; the past stays queryable.

05

Agent cites

Your model reads the memory and answers with the exact observations that support it, receipt attached.

Fig. ii. The decode path. Bandwidth and exposure both collapse at step 02: only the latent flies down.

Chapter III

One address for every place.

A memory is only useful if you can name a spot and trust the name. geo.qa gives every place on Earth a stable address and a simple algebra.

Cell×Band×TslotFact
cellWhere. A stable cell ≈ 9.7 m on a side. Every place resolves to exactly one; neighbours are one hop away.
bandWhat. A measured quantity: optical, NDWI, SAR, thermal, pressure, a signed human report.
tslotWhen. The instant of observation. History is append-only; nothing is ever overwritten.
factThe answer. A value at cell × band × tslot, carrying its provenance. Direct, derived, or a signed absence, never a silent guess.
receiptThe proof. An ed25519 signature over a BLAKE3 hash of the canonical CBOR, verifiable offline against the open emem.dev protocol.
Plate iii · one cell, decomposedband × tslot
Fig. iii. A single address holds many bands across many tslots. Resolving one returns a fact and its receipt.
factflood_extent = 0.0
cell8a1f0b27a4dffff
tslot2026-05-04 … 2026-06-01
bandsNDWI · SAR-VV · optical
sources4 observations · 2 modalities
receipt 0x9f3c1a… · ed25519 signed · emem.dev verifiable

Chapter IV

Many modalities, one memory.

Every source writes into the same addressable record. The fleet is the unit of intelligence, not the single sensor.

#ModalityWhat it writes into the memoryCadence
01
Satellite opticalmultispectral surface
land cover, water, change, vegetation indicesdaily–weekly
02
Satellite SARall-weather radar
structure, moisture, flood, motion, through cloud1–6 days
03
Thermal / IRheat signature
flares, fires, equipment activity, anomaliessub-daily
04
Drone surveycentimetre detail
close-range inspection of a single asseton tasking
05
Vehicle camerasstreet level
what is round the corner, lane by lanecontinuous
06
Fixed CCTVthe perimeter
gate, yard, fence line, occupancycontinuous
07
Ground sensorsSCADA / IoT
pressure, flow, level, vibrationseconds
08
Weather fieldsenvironment
rain, wind, temperature, soil moisturehourly
09
AIS / vesselmaritime tracks
who is where on the water, and whenminutes
10
Field reportssigned human notes
a person’s observation, attributableon event
11
Cadastral / GISthe record of record
parcels, assets, boundaries, ownershipon change
12
Acousticsound events
alarms, gunshots, machinery, leakscontinuous

Chapter V

Where geo.qa sits.

Many are calling 2026 the year of the world model. Several layers of intelligence are converging, and each one needs something to be true about a real place.

Large Language Modelsreason in language
reason
World Foundation Modelsimagine plausible physics
predict
Large Geospatial Modelslocalise in 3D space
localise
↑ grounded on ↑
geo.qa · Earth Memoryremember & cite what was observed
ground truth
World & geospatial modelsgeo.qa
Outputan inferred representationan observed fact, dated
Trustblack-box inferencea signed, verifiable receipt
Deploymenta cloud service you callyour tenancy, airgapped
Timea single snapshotevery tslot, append-only
Fusionmostly one modalitymany, one address
To build ona fixed, pretrained modela memory you train your own on

World Labs’ Marble and DeepMind’s Genie generate a plausible world; they do not claim to reproduce the real one. Niantic’s Large Geospatial Model and Google’s AlphaEarth do read the real Earth, but as a model you call, not a memory you own, cite, and train on. geo.qa is the layer underneath: a dated, signed record of what was actually observed, private to you, that your own models can learn from.

Chapter VI

Train your own world model.

The memory is not only something to query. It is a substrate to learn from. Every dated, multimodal fact is supervision for a model you train, own, and deploy, without your data ever leaving the boundary.

train.py
# a JEPA dynamics model, trained on your own memory
from geoqa import Memory, train

mem = Memory(tenant="acme")

model = train.jepa(
    memory = mem,
    bands = ["optical", "SAR-VV", "thermal", "weather"],
    horizon = "7d",
)

model.deploy(airgapped=True)  # reads the same memory
train.jepa(memory)predict the next latent state of a place: a world model of your own ground
train.forecast(band)project a band’s trajectory forward, cell by cell
train.detect(classes)your own categories, on your own fused imagery
train.embed()a private encoder tuned to your fleet and places
model.deploy()serve it inside your tenancy, citing the same receipts
model.evaluate()score against held-out tslots; nothing was overwritten

Chapter VII

Airgapped by construction.

Because what moves is latents and signed facts, and the memory is a tenancy you own, your model can run sealed, train sealed, and still be audited.

What never leaves

the boundary holds by design, not by policy

  • Raw imagery. Encoded at the source; only the latent vector travels down.
  • Your memory. A single tenant: your keys, your retention, your jurisdiction.
  • Your models. Trained and served inside your boundary. No calls home, no training on your data by us.

What you keep

provenance that survives a hostile review

  • Provenance. Every answer carries a signed, verifiable receipt.
  • Audit. Replay any decision against the exact observations it used.
  • Interop. The same call shape as the open emem.dev protocol.

Chapter VIII

An interface agents already speak.

One call shape, shared with the open emem.dev protocol, so an agent reads public and private memory in a single answer.

query.py
# resolve a place, ask a question, get a cited fact
from geoqa import Memory

mem = Memory(tenant="acme")        # your private tenancy
cell = mem.locate(lat=25.276, lon=55.296)

fact = mem.ask(
    cell,
    band = "flood_extent",
    since = "-30d",
)

fact.value      # 0.0
fact.sources    # 4 observations · 2 modalities
fact.receipt    # 0x9f3c… signed · verifiable
locate(lat, lon)a place → its stable cell address
ask(cell, band)a fact at an address, with its receipt
recall(cell)every signed fact filed at a place
watch(cell, bands)stream changes as they are observed
recall_polygon(geo)read a whole neighbourhood in one call
verify(receipt)check a signature against emem.dev, offline

Chapter IX

Questions from the field.

Most operators feed the encoder and read the decoder at the same time. A few of the surfaces we keep ending up on.

01

Autonomous fleets

The vehicle’s cameras write to the memory; the car reads neighbouring cells to know what is round the corner before it sees it.

what is in cell 8a2a1072b… right now?

02

Energy & infrastructure

Pads, lines and stations watched by every sensor at once. One page goes out only when independent witnesses agree.

did pressure at G-247 drop overnight?

03

Insurance & risk

Price and settle against what was observed, not what was claimed, and every fact arrives with its receipt.

was this parcel underwater on 04 May?

04

Defence & GEOINT

An owned, airgapped memory with full provenance: answers built to survive an audit, weeks later.

what changed at this site since Tuesday?

Give your model a memory.

Stop letting it guess about the world. Start letting it cite, and train on what it cites.

geo.qa · a vortx ground decoder · emem.dev open protocol