A world, live · tenant: public
London, right now.
Compared with 3 hours ago, central London is quieter. On the 235 cameras within 5 km of Trafalgar Square that reported in both windows, objects per view went 7.4 → 6.2.
Counted on the 267 street cameras within five kilometres of Trafalgar Square, which is a slice of Greater London and not all of it. Every number on this page names the clip it came from and the detector that counted it. One of them is taken all the way to a signed receipt below, and checked.
One answer, all the way down
Ask. Get a number. Get the bytes. Check the signature.
This is what every geo.qa answer is built from. Here it is once, unabridged, for one place.
ask
How busy is Trafalgar Square right now?
answer
1 person and 1 bus in view of the Trafalgar Square camera — quieter than usual for this hour (percentile 0.11, CI 0.06–0.21, from 71 earlier readings).
At this hour of day, that is higher than 5 of 71 previous readings at this camera at this hour of day, over the last 30 days.
counts are from ONE camera of 267 within 5000 m. That is an answer about this junction, not about the area.
evidence
- clip sha256
- ae00c8187da822cf24501eab37c95af4897c192cfd01e93ef9379c44a3b7bbc3
- frame
- 135 of 271, captured 17 min ago
- counted by
- cpu_detect_coco@4d9812b3db3df883 (fasterrcnn_mobilenet_v3_large_fpn)
- camera
- tfl_jamcam:tfl-JamCams_00001.06502
The clip is kept and hashed. Fetch it, hash it, decode that frame and run the same detector: the counts must reproduce.
check
✓ valid — ed25519 signature by geoqa, verified offline against the published key. Checked by this page when it was built. It proves the clip above is ours, from that camera, at that time, unaltered. It does not sign the counts — those you check by re-running the detector, as described in the step before.
- ✓cryptographic hash — sha256 of the payload's canonical bytes equals payload_sha256
- ✓source identity — the key this receipt names is geo.qa's published signing keykid geoqa-2026-06 · geoqa
- ✓cryptographic — ed25519 over the payload's canonical bytes, under the key above
- ✓binding — the envelope's outer schema label equals the schema inside the signed payload
- —binding — the signed payload is the kind the caller expected (not asked: pass expect_schema to pin the kind)
- ✓record lookup (not a proof) — a leaf for this cid exists in geoqa-transparency-v1geoqa-transparency-v1 · 0 independent witnessesno independent party has co-signed this log's head yet, so a different history shown to someone else would go undetectedcheck it yourself: GET /verify/log/proof/c8dcbf14d5bac5d6336b8440fe8d26cc0ef97cab3cda6f427edf8767de5cf59b -- fold the audit path to the signed root yourself
Signed 2026-09-19 04:58 UTC. Checked by this page 2026-09-19 05:15 UTC.
- that the observation is accurate: the signature proves these bytes came from geo.qa unchanged, not that the sensor or the model got the world right
- that any sentence written about this payload is true: text around a receipt is not signed by it unless it is inside payload
curl geo.qa/api/world-model/verify/by-cid/c8dcbf14d5bac5d6336b8440fe8d26cc0ef97cab3cda6f427edf8767de5cf59b
No key, no account. The same call from your terminal returns the same verdict, and the clip hash checks out on the verify page without a terminal at all.
Twelve places
What each camera saw in its latest kept clip.
These are readings from one camera each, as fresh as its last retained clip. A camera that showed an operator notice instead of a street says so rather than counting the notice. When this page was built it checked the signature on 12 of the 12 clips: proof the bytes are ours, from that camera, at that time, unaltered. That is not the same as verifying the counts — the signature does not contain them. To check a count, fetch the clip and re-run the named detector on the cited frame.
Aldgate
24 cars, 2 buses and 1 truck
Canary Wharf
9 cars
Elephant and Castle
4 people, 4 cars, 1 bus and 2 trucks
Hammersmith Broadway
1 car and 2 buses
Hyde Park Corner
1 car, 1 bus and 2 trucks
Marble Arch
7 people, 3 cars, 2 buses and 1 truck
Old Street
2 people
Oxford Circus
3 people, 4 cars and 3 buses
Piccadilly Circus
1 person and 3 cars
Tower Bridge
10 people, 7 cars and 3 trucks
Trafalgar Square
1 person and 1 bus
Vauxhall Cross
nothing the detector looks for
What this page cannot tell you
A camera sees a junction, not a city.
One camera is one junction
A count is what one camera saw in one frame. It is an answer about that junction, not about the area around it. The trend line at the top compares the same cameras with themselves, which is the only comparison that removes our own sampling.
A park is not a cell
Ask about a place with no camera on it and the honest answer is the distance to the nearest one, not a number. geo.qa says it cannot see rather than inventing a count.
Not everything here is evidence
The counts on the cards and in the answer above come from retained clips, so they can be recomputed; a count from a live frame cannot, once the frame is gone. The trend is different: it is computed over the observation series, and there is no receipt for a trend. What you can check there is its method and its paired-camera reasoning. The detector is named by a function id: only counts sharing one are comparable.
For agents
The same World, as a document.
Everything above, with nothing added, at one URL. No key. Rebuilt about every two minutes, and served from the last build while the next one runs — each panel carries its own age.
curl geo.qa/api/worlds/london curl geo.qa/api/world-model/verify/by-cid/<receipt cid>
The document also carries the derivation: each step, its inputs by address, who computed it, and how to re-run it without trusting us.
The twelve panels were not re-read for this build: the perception service reported its answer unchanged at state:3273dcb5a0cb16008237375671c02892, and 13 clock-derived fields were refreshed. That address says two answers are the same reading. It does not say the reading is true, and no signature covers it.
Generated 2026-09-19T05:15:28.315Z. Bring your own cameras, drones or phones and your World gets the same treatment, in its own namespace: write to us.