Effort without a changing scene
A rowing ergometer keeps the work of locomotion and removes the changing scene. Into that emptiness the machine inserts a console — split, watts, rate — an encoding that must be read.[048][128] RowSim asks whether a floor-projected fluid can occupy the periphery instead, without becoming another task inside the stroke.[128][Th.]
Platform split
One fluid core, two hosts.
macOS hostSensors, stroke meaning, and the rowing-physics host stay here. Uniforms leave for Metal.
Sibling macOS and iOS hosts write shared uniforms into one Metal fluid core; sensing stays host-local.
One fluid core, two Apple hosts
The two hosts are siblings, not a pipeline. macOS listens: sensors, stroke meaning, the rowing-physics host. iOS is touch and lifecycle only. Both write the same Metal uniforms into one shared fluid core, so the field is one fluid even when the machines stay local. Whoever hears the stroke does not also have to paint it.
Sensing, host physics, Metal, projection
Providers converge on a typed event, the host decides what a stroke means, Metal paints the field, and two projectors put it on the floor. Directionality is the claim: sensing never rewrites the solver. Wisneski et al. turned architectural space into an interface;[130] here the architecture is a blackout room and a sheet, and the interface is on the floor rather than in the focal cone.[081][013][097]
Live architecture map
From signal to floor.
Providers → router → host → Metal → floor. Dashed satellite: Python bridge into UDP.
Input — PM5, native libmapper, and UDP (fed by the Python bridge) normalize into one event vocabulary.
Three providers fan into InputRouter → host physics → Metal → floor projection. The dashed satellite is the Python bridge feeding UDP.
Five parts of one floor
The fluid is on the sheet. The hull is the unlit cutout. The ergometer is the boat. The host sits to the side. Two projectors hang above. That is the mixed-reality register: not a headset, a floor.[081]

- 1
Floor projection — two WXGA units, 1280 × 800 each, onto a sheeted floor
- 2
Boat-shaped cutout masked over the machine — an obstacle in the solver, not an overlay
- 3
Concept2 ergometer, PM5 over Bluetooth, console covered — plus a handle-mounted inertial unit
- 4
macOS host running the Metal solver at 60 Hz — operator station, out of the rower's view
- 5
Two projectors — displaying the floor projection
Five parts of the floor-MR room: floor projection, hull mask, ergometer, host, and the two projectors.