The RCWeb Fluid Simulation Controller app (app/fluid-sim-c) is the touch surface for app/fluid-sim.

/fluid-sim-c/ from the QR code shown by /fluid-sim/.The controller automatically follows the aspect ratio of the display so the touch pad maps cleanly onto the main screen. The pad is resized to fit narrow phone screens without horizontal overflow.
There is no clear button and no flow slider. The controller is intentionally minimal so users can focus on drawing.
The controller uses rc.sendFunctionCall to call functions on the display app:
fluidSim.addStroke(...) receives each throttled touch segment.fluidSim.setAimCursor(...) shows the user's current touch position on the display.fluidSim.broadcastSize() is requested when the controller connects so the pad can match the display aspect ratio.Touch movement is throttled by time and distance before being sent over RCWeb. This keeps multiple controllers responsive without flooding the room with tiny updates.
The controller measures the available space inside .controllerShell, subtracts padding and the fixed header/control areas, then sizes the touch pad to preserve the display aspect ratio. This prevents the pad from overlapping the browser edge on narrow screens.
script.js as the COLORS array.sendStroke and multiplied by measured finger momentum.