
N° 09For operations
The whole floor, live in one world.
Every machine is a device streaming what it reports into a 3D world. Agents watch the streams and act under the grants you write, and every action is on record before it reaches a machine.
Plate 30 · A test hall at blue hour, running with no one on the floor
One world
The facility is a world. Every machine is a device.
A world is one plain file, worlds/<id>/world.json, marked physical or simulation. Every machine, robot, camera and computer on your floor is a device with channels, placed in it as a unit: a status feed, a G-code line, a servo bus, a video stream.
Each unit is drawn in 3D from its device's CAD model, converted from STEP or a mesh to glTF, or as a box until it has one. Where a channel reports a position, the world view draws the tool, or the arm's skeleton, where the machine says it is. That is live, or at whatever moment you scrub back to.

Plate 31 · The floor as a wireframe, four points marked
Annotated with what the machine said.
Open a machine's job in the 3D app's CAM mode and the twin labels it from the records: the line, feed, spindle, laser, extruder and progress. An alarm shows as an error. A deviation over 0.5 mm from the plan is a warning, and so is a lost link: state unknown, with no tool drawn. The plan and the report are two sources. They are labelled, and never blended.

Streams
Every channel writes a stream.
What a device does is recorded as streams in a run. records.jsonl grows line by line as the machine reports. A camera writes its one video file on the same clock.
There is no separate historian to keep in sync. The run folder is the history: plain files you can copy, diff and read with any tool.
Plate 32 · A camera and a sensor clamped to a pump motor
Analytics from the records.
The chart viewer reads a run's records.jsonl directly, or any CSV your MES exports, in six views: lines, tiles, bars, heat, parallel coordinates and scatter. The factory dashboard puts an OEE table beside the twin and the cameras.
There is one clock per window. Scrub the time bar and every pane moves to that moment together: the 3D world, the charts, the cameras and the records.
03:41:02.115 state Run · line 4127 · F1200 S12000 03:41:02.367 state Run · line 4128 · F1200 S12000 03:41:02.402 event ALARM:1 hard limit 03:41:02.410 state Alarm 03:41:06.021 note agent:floor-watch: stop mill-2/gcode 03:41:06.388 state Alarm · job stopped at line 4128
Authority
Agents act in real time, under a standing grant.
You decide once what an agent may touch: which world, which units, which channels, which verbs, for how long. Inside that grant it reads the streams, opens channels, arms, runs programs and sends commands over MCP, with no confirmation dialog at 3 a.m.
Each action is written to the run, with the principal that sent it, before the driver is called. An acknowledgement is not a state, and a lost link is recorded as unknown. Nothing is silently retried. If the agent tries again, that is a new recorded command. The driver enforces the bounds, and stop, hold and emergency verbs are always allowed to anyone with any grant on the unit.
commandagi grant add --principal agent:floor-watch \
--world plant --unit mill-2 --unit press-4 \
--verb open --verb run --verb send --for 12h --note "night watch"
Dashboards
Dashboards are files.
A dashboard is one JSON file, dashboards/<id>.dashboard.json. It holds the panes, their layout and typed parameters: a world, a unit, a run, a stream, a file. Start from a shipped one, such as the factory floor, camera wall, security wall, device cockpit, run replay, print farm or warehouse. Then edit it, commit it, and copy it to the next site.
The camera wall puts every recorded video stream on one screen, on the same clock as the machines.
Plate 33 · A control room at night, the chair empty
Counted, not projected.
What is in the product today, by the numbers in the repository.
- 26
- Drivers in the catalog
CNC, printers, servo buses, arms, cameras, shells and more, behind one session interface.
- 6
- Chart views
Lines, tiles, bars, heat, parallel coordinates and scatter, drawn from the records.
- 0.5mm
- Deviation that gets flagged
Between what the plan says and where the machine reports it is.
- 0
- Silent retries
A physical command is sent once. Retrying is a decision, and it is recorded.
Verification
We say exactly how far it has been tested.
Each driver carries one word for what it has been verified against: none, loopback, bench or hardware. Today 23 of the 26 say loopback, meaning they were tested against faithful software fakes of each protocol. The other three say none. No machine has been commissioned yet.
Fieldbus drivers such as Modbus, OPC UA and MQTT are not in the catalog yet. If your floor speaks them, tell us.
Put your floor in one world.
Build the world in simulation first, run the shift there, then connect the machines.