The Timekeeper
Concept presentation

The
Timekeeper

A room that only lights
when something real
passes through it

IntSpace · Interactive Spaces
Diffusion cloud chamber · working prototype
Observations 01–03 · Obs. 03 yielded signal
Prototype running · live detection, three projections

A cloud chamber makes invisible particles briefly visible as thin lines of condensation. The Timekeeper enlarges that box onto three surfaces in a dark room — the chamber itself, what the machine extracted from it, and what is left as it fades — each running about a second behind the particle that caused it.

Cloud chamber Computer vision Live detection Projection Deep time Non-agency
01 Functional prototype Cloud chamber
What was built

A diffusion cloud chamber, assembled from hardware-store parts. A sealed acrylic box; a felt strip at the top soaked in 99% isopropanol; underneath, a black anodised plate held at roughly −78 °C by dry ice.

The alcohol evaporates warm at the top, sinks, and meets the cold plate. In the few centimetres just above that plate it forms a layer of supersaturated vapour — vapour holding more alcohol than it should be able to, waiting for an excuse to condense.

Anything that ionises the air inside that layer provides the excuse. Droplets nucleate along the exact path the ionising particle took, and for something between a fifth of a second and a second there is a visible white line hanging in the box. Then it falls apart.

Nothing is being simulated. The lines are caused by muons from cosmic-ray showers, alpha particles from trace radon, and electrons from the potassium-40 in the room — all of which are passing through the chamber, the table, and everybody in the room continuously, and have been all along.

Overhead view of the chamber components laid out: sealed acrylic box, torch, isopropanol bottle, black plate and container.
FIG 1.1Build components, before assembly. Acrylic chamber, side-light torch, isopropanol, black ground plate, dry-ice tray.
ChamberSealed acrylic, ~150 mm cube
VapourIsopropanol 99%, felt reservoir
Cold sourceDry ice, −78.5 °C, insulated base
GroundBlack anodised plate (contrast)
LightSingle grazing LED, near-parallel to plate
Capture1920 × 1080 @ 30 fps

Observation log
SessionConditionOutcomeRecording
Experiment setupBuild, seal, charge, seat on dry iceReference procedure for all three sessions.youtu.be/tVaN-9vt6ZE
Observation #1First seal, plate not cold enoughFog, no layer. No tracks.youtu.be/uzHVGbMzZWQ
Observation #2 — MuddyOver-saturated, plate floodedHeavy alcohol rain, carpet drowns the frame. Unusable.youtu.be/isww7x5uCWg
Observation #3Reduced charge, grazing side-light, black groundStable layer. Tracks resolved and recovered.youtu.be/CxkEAz9M7Ws

Three sessions were logged; six further recordings were discarded. The failure modes were as instructive as the success — they are what the detection stage in 02 is built to survive.


Chamber, running

Observation #3, unprocessed. The tracks are in here, but so is everything else.

Build walkthrough

Assembly, charging the felt, seating the plate on dry ice.

02 How it works Developing the detection

A track is obvious to a person and nearly invisible to a threshold. Most of the work was separating the one thing that is signal from the three things that are not.

The problem
WhatLooks likeBehaviour in timeHow it is removed
Condensation carpet Static bubbly texture, bottom ~12% of frame Never moves Long-window median + ROI crop
Glass & rim glare Static horizontal bands Never moves Long-window median
Falling alcohol rain Thin streaks, tens of px per frame Fast Short-window mean smears it out
Ionisation track Thin bright line Still for ~0.2–1 s Survives both — this is the signal

The move — a band-pass in time

Each of those four things has a different speed, and speed is the only property that reliably separates them. So the detector is not a brightness threshold; it is a filter on how fast a pixel changes.

d = short_mean − long_median
  • Short mean (13 frames) averages a few frames together. A falling droplet moves during that window, so it smears and fades. A track holds still, so it stays sharp.
  • Long median (45 frames, stepped by 5) captures anything that is present the whole time — carpet, glare, the fog gradient — and subtracts it away.
  • A track is band-limited in time: too slow to be smeared by the first, too brief to be caught by the second. It is the only thing left.
Then three priors
  1. Thinness. A morphological top-hat with a 24 px kernel deletes anything wider than a track can be. Blobs go; lines stay.
  2. Adaptive levels. Black and white points are taken as percentiles of the pixels inside the ROI, not fixed 0–255 values, so the grade re-levels itself as the chamber fogs up over the clip.
  3. Geometry. After thresholding, connected components are measured. Two populations survive: round specks (single droplets catching the light) and long thin tracks. They separate cleanly on shape.
Band-passSHORT 13 · LONG 45 · STEP 5
ThinnessTOPHAT 24 px (ellipse)
Levelsblack 92.65% · white 99.470% · γ 1.80
ROIy 0.05–0.88 · x 0.00–0.98
Track gatemajor ≥ 45 px · minor ≤ 10 px · aspect ≥ 5

This pipeline is no longer offline. It has been ported to run live in a browser on a camera feed — same stages, same numbers — which is what drives the three projections in 04. Re-run against Observation #3 it finds what the Python version finds: two tracks in 1.9 seconds, 45–51 px long and 4–7 px wide, against 32,667 rejected specks.


Result
Raw chamber frame: grey fog, horizontal glare bands, streaks of falling alcohol and a bubbly condensation carpet along the bottom.
FIG 2.1Raw frame. Carpet along the bottom, glare bands across the top, alcohol rain throughout.
The same frame after band-pass filtering and grading: mostly black, with isolated white marks remaining.
FIG 2.2Same frame, band-passed and graded. Background crushed to black; only band-limited features survive.
FIG 2.3Processed clip, full length. Every surviving event, in time.
Maximum projection: all surviving pixels across the whole clip composited into one high-contrast black and white image.
FIG 2.4Maximum projection — every surviving pixel across the whole clip in a single frame. A record of the chamber's entire active period at once.

The maximum projection is worth pausing on: it is the closest thing this project has to a photograph of duration. Nothing in it happened simultaneously.

03 Interaction flow Sky · Machine · Room

Three actors, and only one of them is in the room. Everything the visitor sees was caused about a second earlier by something they cannot influence, schedule, or hurry.

Interaction flow diagram Three swimlanes above a projection band. Sky: a cosmic ray shower produces a muon that crosses the chamber. Machine: a droplet track condenses, one camera captures it, a ring buffer of 45 frames holds it so the middle frame can be judged — which puts everything about a second behind the present — then the band-pass, top-hat and grade run and a geometry gate separates tracks from specks; tracks are logged as events. The processed frame fans out to three projectors. Room: the visitor enters, finds three dark surfaces, and later sees all three at once, each about a second old. The projection band shows projector one, raw, onto a wall; projector two, detect, onto a wall; projector three, trails, onto a hanging mesh cloth. LANE A — SKY · UNCONTROLLED LANE B — MACHINE · ONE BROWSER LANE C — ROOM · VISITOR COSMIC RAY SHOWER ~15 km altitude MUON CROSSES CHAMBER ionises the vapour layer DISCARD — SPECK 32,667 of them per 100 frames TRACK CONDENSES visible ≈ 0.2 – 1 s, then collapses ONE CAMERA 1920 × 1080 @ 30 fps → 640 × 360 working RING BUFFER — 45 FRAMES judge the MIDDLE frame → ≈ 1 s behind BAND-PASS · TOP-HAT · GRADE short mean − long median GEOMETRY GATE len≥45 wid≤10 asp≥5 NO YES EVENT — LOGGED AND COUNTED x · y · θ · length · t VISITOR ENTERS eyes adapt, ~30 s THREE SURFACES, ALL DARK no attract mode, no idle loop SEES ALL THREE AT ONCE cause, evidence and memory PROJECTION — ONE FRAME, THREE SURFACES PROJECTOR 1 — RAW the chamber as it was a second ago PROJECTOR 2 — DETECT the same frame, extracted white on black PROJECTOR 3 — TRAILS accumulated events, decaying over ~8 s WALL WALL HANGING MESH CLOTH light hangs in the air, not on a wall All three surfaces are fed from the same processed frame, so they are time-aligned with each other and all three run the same distance behind the camera.
Lane A · Sky

Entirely outside the installation. Nobody schedules it, nobody in the room affects it, and it has been running for the whole history of the building.

Lane B · Machine

One camera, one browser, three outputs. The gate is deliberately strict — a false flash would be a lie, so the piece would rather miss events than invent them. On real footage it rejects about 32,000 specks for every two tracks it accepts.

Lane C · Room

The visitor has exactly two inputs: where they stand and how long they stay. Neither changes the rate. Waiting is the interaction.


Why three surfaces and not one

A single screen showing extracted tracks is a data visualisation. Three surfaces showing the same second from three distances is an argument about evidence: here is the chamber, here is what the machine claims was in it, and here is what is left once it has gone. The visitor can check the middle one against the first, which is the only reason to believe the third.

Why the cloth is the third one

Trails are the only output with a memory, so they get the only surface with depth. Projected onto hanging mesh rather than a wall, the accumulated tracks sit in the air in front of the wall, cast a softer second image behind themselves, and move when the room does. The two hard surfaces are the present; the cloth is the residue.

04 System diagram Chamber → Browser → Three surfaces

The whole signal chain is one camera, one browser and three projectors. There is no server, no render farm and no custom application — the detector that was a Python notebook now runs as a worker inside the page.

System diagram A left-to-right chain: chamber, camera, control page in a browser, three screen windows, three projectors. Below the chamber, a dashed group lists the chamber assembly. Below the control page, a dashed group lists the worker pipeline: ring buffer of 45 frames which puts the output a second behind, ROI crop, short mean minus long median, top-hat, percentile grade, and components into the track gate. Below the screen windows, a group lists the three views. Below the projectors, a group lists the three surfaces, the third being mesh cloth. The pipeline also writes an event log which drives a counter. A latency budget runs along the bottom. SIGNAL CHAIN — PHYSICAL TO LUMINOUS CHAMBER supersaturated isopropanol layer CAMERA 1080p · 30 fps fixed, manual exposure CONTROL PAGE one browser tab detection in a web worker SCREEN × 3 browser windows, fullscreen per output PROJECTOR × 3 one per surface, aligned in-page light USB canvas HDMI CHAMBER ASSEMBLY ISOPROPANOL FELT 99% COLD PLATE −78 °C BLACK GROUND GRAZING LED WEB WORKER — PER FRAME 0 · RING BUFFER 45 FR → ≈1 s 1 · ROI CROP 2 · SHORT MEAN − LONG MEDIAN 3 · TOP-HAT 24 px 4 · PERCENTILE GRADE + γ 5 · COMPONENTS → TRACK GATE VIEWS — ONE FRAME EACH 1 · RAW (centre frame) 2 · DETECT (graded) 3 · TRAILS (decay 8 s) per-screen alignment SURFACES WALL — 2.4 × 1.35 m WALL — 2.4 × 1.35 m MESH CLOTH — 2.0 × 2.5 m AMBIENT ≤ 5 LUX EVENT LOG append-only, CSV export COUNTER total since opening MEASURED LATENCY — 640 × 360, NO GPU track forms ≈ 200 ms · ring buffer 22 frames ≈ 730 ms · pipeline 36 ms / frame on real footage · canvas to projector ≈ 30 ms — total ≈ 1.0 s from particle to light the console reports the real figure continuously; it is measured, not assumed
Note on latency

The band-pass needs frames on both sides of the one it is judging, so the system is structurally about a second behind the particle. That delay is not hidden or compensated for — it is a real property of the method, and section 06 treats it as the subject rather than a defect.

Note on honesty

No idle animation, no ambient shimmer, no attract mode. If there is light on a surface, a particle crossed the chamber. The moment the room lights on anything else, every mark in the piece becomes decorative and the work is over.

Note on it being a browser

Not a shortcut. A projector-driven installation that runs from a served folder has no install, no runtime to version-pin and no compiled binary to lose — and each output is an ordinary window, so alignment is a page, not a hardware problem.

05 Spatial setup Two walls · one cloth · one plinth

The chamber's field of view is about 150 mm across. The projected image is 2.4 m. That enlargement — roughly 1 : 16 — is the whole spatial proposition: a thing the size of a fingernail, given the size of a person.

Room≈ 4.0 × 4.0 m, blacked out, ≤ 5 lux
Surface 1 — rawWall A, 2.4 × 1.35 m (16:9)
Surface 2 — detectWall B, 2.4 × 1.35 m, adjacent corner
Surface 3 — trailsMesh cloth, 2.0 × 2.5 m, hung free
Cloth offset300–500 mm clear of the wall behind
Cloth materialPolyester scrim, ~40% open weave
Projectors3 × short-throw, ceiling or floor, ≥ 2500 lm
PlinthØ 900 × 950 mm, chamber under glass
CameraFixed in the plinth, manual exposure locked
MachineOne mini PC in the plinth, 3 video outputs
Scale factor≈ 1 : 16 (chamber FOV → projected image)

Exposure must be locked. Any auto-gain in the camera re-levels the frame between shots and the temporal band-pass reads the change as motion, which produces tracks that were never there.

Isometric view of the room: two walls, a low circular plinth at the centre with a figure standing on it, and two observers nearby.
FIG 5.1Isometric study. The two walls carry raw and detect; the cloth hangs free in the volume. Earlier sphere study retained — see 07.

Why the cloth hangs free
  1. An open weave passes most of the light, so the trails land twice — sharp on the mesh, soft on the wall 400 mm behind it. The event acquires depth without any 3D being simulated.
  2. The visitor can walk behind it. From there the accumulated tracks read in reverse, which is the only place in the room where you are inside the image rather than in front of it.
  3. It moves. Air from the door, from the projector fans, from a person walking past — the residue of a particle that crossed the room an hour ago drifts slightly because somebody opened a door.
  4. A little projector blur (the softness control on each screen) stops the pixel grid beating against the weave into a moiré.

The two hard surfaces are the present tense and they are honest but flat: this is the chamber, this is what was extracted from it. The cloth is the only surface carrying time, so it gets the only treatment with a physical dimension.

Read left to right the room is an argument in three moves — cause, evidence, residue — and the visitor can check each one against the one before it. That checkability is what separates this from a screensaver.


Chamber detail — as seen from the plinth
FIG 5.2Detail into the active layer. This is the view the plinth affords when looking down, and the frame the camera sees.
FIG 5.3A resolved event, slowed. Roughly half a second of real time — and about a second before the wall shows it.
06 What and why it means Conceptual position
The delay is the subject

A cloud chamber is not a picture of a particle. By the time the droplets are large enough to see, the particle is long gone — it left the box, the table and the building at very nearly the speed of light. What you are looking at is an after-image of a decision the vapour made, a few hundred milliseconds late.

The Timekeeper takes that lateness literally and adds its own to it. The detector needs frames from after the event before it can confirm the event, so it keeps a ring buffer and always judges the middle frame. The room is therefore about a second behind the sky — 22 frames, measured and displayed rather than estimated. Nobody in the room ever sees the present. They see the recent past being confirmed.

All three surfaces share that lag exactly, because all three are drawn from the same judged frame. The visitor cannot catch the room out by looking between them: the surfaces agree with each other, and all of them disagree with now.


Why "timekeeper"

Most of the tracks are muons. A muon is made about 15 km up when a cosmic ray — often a proton thrown out of a supernova or an active galaxy, possibly millions of years ago — strikes the top of the atmosphere. A muon lives about 2.2 microseconds. At that lifetime it should decay roughly 660 m into its journey and never reach the ground at all.

It reaches the ground anyway, because it is moving fast enough that its clock runs slower than ours. Every line in the box is therefore a visible consequence of time being relative: a particle that exists at sea level only because it disagrees with the building about how long the trip took.

The timekeeper of the title is not the installation, and not the visitor. It is the particle. The room is only the dial.


Removing agency, on purpose

Interactive work usually opens by handing the visitor a lever. This piece deliberately does not. There is no button, no proximity trigger, no gesture, and nothing anybody can do to raise the rate. Standing closer does not help. Waving does not help. Waiting does not cause anything either — it just increases the chance you are looking the right way when something happens.

What is left, once the levers are gone, is attention. The piece asks for the one thing a room full of screens has trained out of people: staying still in the dark long enough for something rare to be worth noticing. The reward for that patience is small, brief, and completely real — which is precisely the argument.


The room will mostly be dark

At sea level roughly one muon crosses each square centimetre per minute. Scaled to the chamber's active window and the strictness of the track gate, the honest expectation is a handful of flashes per minute, unevenly spaced, sometimes with a minute of nothing between them.

That emptiness is not a shortfall to be engineered away. A flash every two seconds would be more comfortable and would mean nothing. The rarity is the only thing that makes the event legible as an event.

Position, in one line

Build a detector honest enough that the light can only ever mean one thing, then make a room out of it and take the buttons away.

Reads asDeep time, made briefly local
MediumReal detection, not simulation
Visitor roleWitness, not operator
Failure modeAny fake flash voids the piece
PaceSet by the sky, not the curator
Lineage
  • C.T.R. Wilson's chamber, 1911 — weather apparatus that accidentally became a particle detector.
  • The tradition of instruments that are also images.
  • Duration pieces that ask for waiting rather than input.
07 Proposed final installation Built · Proposed · Open
Where this actually is
StageFormStatus
Prototype Three projections — raw, detect, trails — from one camera and one browser, onto two walls and a hanging mesh cloth Built and running. Detection validated against Observation #3.
Proposed final Suspended sphere array over a centred plinth, each event lighting the sphere nearest where the track crossed the chamber Modelled, not built. Depends on the prototype proving the event rate is worth a room.

The projection prototype is not a mock-up of the sphere room — it is a different answer to the same problem, and it may turn out to be the better one. Projections can show the chamber itself, which spheres cannot; spheres put the event in the visitor's own volume of air, which projections cannot. That choice is still open, and the prototype exists to settle it with evidence rather than taste.


Isometric render of the proposed installation.
FIG 7.1Proposed final installation — suspended array over a centred plinth housing the chamber.
Walkthrough model
If the viewer does not load The Timekeeper — walkthrough model Use "Open model full screen" below
Open model full screen Orbit to navigate. Falls back to the link if the viewer is blocked.
Exported views

Prototype — bill of materials
Projectors3 × short-throw, ≥ 2500 lm, 1080p
MachineMini PC, 3 video outputs, Chrome
CameraUSB, manual exposure, fixed mount
ClothPolyester scrim 2.0 × 2.5 m, top batten, weighted hem
PlinthMDF drum, matt black, removable top
Chamber bayInsulated, dry-ice drawer, anti-glare glass
WallsMatt black, ≤ 3% reflectance
SoftwareStatic folder, served locally. No install.
Output states
StateTriggerWhat the room does
DarkDefaultAll three surfaces near black. No attract mode.
EventConfirmed trackAppears on raw and detect together; trails takes it and begins an ~8 s decay.
ResiduePost-eventCloth holds the accumulation after both walls have gone dark again.
FillingFirst ~45 framesNothing projected until the ring buffer is full. The room stays honest rather than guessing.
FaultChamber inactiveCounter shows the last event time. No light. The piece is honest about being down.

Open questions
  • Projection or spheres for the final. The prototype should answer this — if the measured event rate makes a room of spheres mostly dark and unreadable, the projections win by being able to show the chamber itself.
  • Dry-ice duration versus exhibition hours. A Peltier stack removes the daily reload but adds vibration, which the band-pass will read as signal.
  • Whether raw and detect should be adjacent (comparable at a glance) or opposite (you must turn around, and cannot hold both at once).
  • Whether the counter is shown to visitors at all, or kept for maintenance.
  • Cloth scale — 2.0 × 2.5 m reads as an object; a full-width drop would read as a second room.
Next
  1. Run an eight-hour unattended session on a live camera and get a real event-rate distribution. Everything above depends on that number.
  2. Re-tune the geometry gate on live camera footage — the current values are measured on Observation #3 at 640 × 360 and are in pixels, so they do not transfer to a different lens or resolution unchanged.
  3. Build the cloth rig at full scale and test the double image and the moiré against real projector optics.
  4. Decide projection versus spheres, on the evidence from (1).