Le Cadran

A watch face that doesn't tell time. It shows what an AI assistant was actually doing when it answered, and it never shows a state that didn't happen.

Le Cadran under one routing trace: a brass bezel, twelve council positions around the chapter ring with four lit green, cyan and white hands, and undriven subdials labelled as undriven.
CDN-01 / Plate 1 / the dial under the trace for "run Publish, security check" / rendered by ATLAS rouage/dial.py, not drawn by hand.

Twelve positions that are operating modes, not hours.

Live in the terminal Prototype 0 Case not built

ATLAS runs as one assistant in many modes. Le Conseil names those modes (the skeptic, the archivist, the bloodhound, the smith and the rest) and decides which of them answer a given message. Le Cadran is the dial that shows the outcome: each lit position is a member who actually convened, the hands point to who answered and who took precedence, and anything the system can't measure yet is drawn and labelled undriven.

It's laid out as a diver's chronograph because every part of that movement carries a real constraint. The bezel turns one way only, which is how Le Sauvegarder works. The crown screws down, so nothing changes by accident. A guarded pusher has to be armed before Le Fripon can be used, and the arming expires.

Open the live instrument

Open the full object record (Plates 1–4)

The display never shows a state the router did not produce.

In software it is a discipline.

Every lit element traces back to a field in a routing trace emitted by Le Rouage, the routing train. There's no demo loop, idle animation or startup sweep that lights positions for effect. Dark positions are genuinely dark: the gate did not fire.

In hardware it is a wiring constraint.

The case's LEDs are driven by that same trace, so the physical object can't be finished before the software behind it is. An instrument that displays invented state is a prop.

Undriven is a reading, not a gap.

The registers (Signal, Noise, Gain), the up-and-down reserve (Le Barillet), the calendar (Le Continuant) and the retrograde arc are drawn on the face and marked undriven. They'll light when something real drives them, and not before.

Type something. The council routes it.

The live instrument runs the same routing train in your browser: train.js, held to the Python rouage.py by a conformance suite. Type a message and the dial and the terminal face redraw from the trace it produces. Matching is by named invocation, so a route needs its verb. Try run Publish, not "publish". The page also takes a proposed member and a reason, standing in for the assistant's own call.

Nothing on it is sent anywhere. It's a static page with no network requests, rendered by ATLAS rouage/live.py and published here unchanged.

Open Le Cadran · Live

Six states, six colours. Red belongs to fault and nothing else.

  • Dark · unlit

    The gate did not fire.

  • Consulted · yellow

    Weighed and contributed, not surfaced.

  • Active · green

    Convened and surfaced.

  • Sealed · amber

    Locked, awaiting the crown.

  • Held · dim amber-grey

    Stopped at the door. Held and consulted once shared a colour, and that was a bug: one was heard, the other never got in.

  • Dissent · magenta

    Le Renégat refusing; the brake is engaged.

From a council to a dial to a face in the terminal.

  1. 08.16

    Inception

    The council is rebuilt as a diver's movement, and the case is specified the same night, honesty constraint included. A marine chronometer was drafted first and sent back: it has neither a rotating bezel nor a crown.

  2. 08.26

    The going train

    Le Rouage, the router, lands with the first SVG dial (#2). Prototype 0 is started: the layout under test, honest by construction.

  3. 08.29

    The dial catches a bug

    Position 12 lit, and the reason engraved on the dial was the exact sentence written to keep him dark. The negative gate was fixed (#24).

  4. 10.02

    A round face in the terminal

    The dial is redrawn in character cells; the hands were chosen by L'Opérateur from four candidates (#50), then split into a face for glancing and a table for reading (#52).

  5. 10.09

    Every prompt

    The train runs on every message through a prompt hook (#56), and a stop hook is added to draw the face after the turn settles (#59). Its display in a live session is not yet verified.

  6. 10.25

    Live in the browser

    The live page draws the terminal face and takes a proposal (#62). This sub-dossier makes the sheet and the instrument public.

  7. Next

    Prototype 1 / .30 cal

    The case: specified, not built.

Prototype 1 goes into a .30 cal ammo can, turned on its side.

Specified Not built

An M19A1 can laid on its side carries a dial of six to six and a half inches. Behind diffused acrylic batons sit addressable RGB LEDs, one per position, with the hands on a geared stepper and a single-board computer in the three-inch depth. The can's existing latch and hinge become the caseback, so the instrument opens the way its doctrine says a case opens. Pusher, crown and pusher come through the side under a fabricated guard.

Prototype 0 comes first: a four-inch round panel showing the existing interface at real size, the cheapest way to find out that a marker is unreadable at arm's length.

What the case does not do.

It doesn't run the council, store L'Archive, or decide anything. The instrument is read. L'Opérateur decides.

Le Cadran: A Watch Face That Can't Lie.

Video thumbnail: Le Cadran, a watch face that can't lie.
FI YouTube / 7:41 / voiceover by Matthew / every dial and face shown is a real ATLAS render; the ammo can is a labelled mockup.

Watch the long-form on YouTube

Watch the Short

Source of truth first. Public record second.