A world, live · tenant: public
London, right now.
Compared with 3 hours ago, central London is quieter. On the 222 cameras within 5 km of Trafalgar Square that reported in both windows, objects per view went 17.8 → 14.7.
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. Read. Check.
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
15 people, 4 cars and 1 bicycle in view of the Trafalgar Square camera — about usual for this hour (percentile 0.38, CI 0.31–0.47, from 147 earlier readings).
At this hour of day, that is higher than 51 of 147 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
- 52e65e76942aed6a2366b8928dbabdbb67e2094295559d9ce33f3561aa47751c
- frame
- 135 of 271, captured 14 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
not established — verifier unreachable; nothing was checked. Retry.. The check did not complete, so nothing was established either way — not a pass and not a failure. The receipt is shown so you can check it yourself.
Checked at 2026-11-03 20:05 UTC.
curl geo.qa/api/world-model/verify/by-cid/ef919a2599640146fe5db4aeeaa3188ffa45a9927a10c8d60113a3352df937ae
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.
One camera each, as fresh as its last kept clip. A camera showing an operator notice says so rather than counting the notice.
Aldgate
1 person and 9 cars
Canary Wharf
3 people, 9 cars, 1 truck and 1 motorcycle
Elephant and Castle
19 people, 10 cars and 1 bus
Hammersmith Broadway
3 people and 4 cars
Hyde Park Corner
3 people, 14 cars, 2 buses and 1 truck
Marble Arch
12 people, 5 cars and 1 bus
Old Street
13 people, 17 cars, 1 bus, 1 truck and 1 bicycle
Oxford Circus
29 people and 13 cars
Piccadilly Circus
11 people and 5 cars
Tower Bridge
3 people, 12 cars, 1 bus and 1 truck
Trafalgar Square
15 people, 4 cars and 1 bicycle
Vauxhall Cross
14 cars and 1 motorcycle
What the cameras know jointly
Twelve cameras, and the ground underneath them.
Every camera above stands at a cell. At that same cell the open ledger already holds what the ground is: metres of road, land-surface temperature, particulates, canopy. The cameras say what is moving. Joined, they answer what neither half can — and the two questions people mean by “busy” turn out to have different answers.
Most in frame
Charing Cross Rd/Cranbourne St
30 objects counted
Counting alone. Needs one camera.
Most crowded street
Piccadilly/Whitehorse St
50 vehicles per 100 m seen
11 vehicles over 22 m of street the camera resolved. Needs the ranges the detector measured.
Charing Cross Rd/Cranbourne St has the most objects in frame; Piccadilly/Whitehorse St has the most vehicles per 100 m of street it can see. Counting answers 'where is there most', dividing answers 'where is it worst', and the second needs the ranges the detector measured. The divisor is the furthest object in each frame, so it is a lower bound on what each camera can see and the densities are upper bounds: some of this difference is where the traffic happened to stand, not how crowded the street is
Breathing it now
Charing Cross Rd/Cranbourne St — 28 people counted, at 5 µg/m³ PM2.5.
The camera counts who is standing there; CAMS says what they are breathing. An instant at one junction, not a dose.
Nothing here is averaged into a score. A score hides which half moved. Every number names the two measurements it came from, and an agent reads the same object at /api/worlds/london.
What this page cannot tell you
One 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:4d090b20ce402acc82e26c2076fb9438, 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.
not read this time: verify ef919a25: backend-unreachable; verify 77762212: backend-unreachable; verify 06a818de: backend-unreachable; verify bdc10522: backend-unreachable; verify 3d18eb32: backend-unreachable; verify 317eecfe: backend-unreachable; verify a5daf6d3: backend-unreachable; verify b73ce36d: backend-unreachable; verify 0fa29b6a: backend-unreachable; verify 5021fe4f: backend-unreachable; verify 52e65e76: backend-unreachable; verify 59c64532: backend-unreachable; verify 630beda8: backend-unreachable
Generated 2026-11-03T20:05:34.667Z. Bring your own cameras, drones or phones and your World gets the same treatment, in its own namespace: write to us.