Remote controller simulator — drive the experience from an iPad web twin over wifi #27
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Remote controller simulator — drive the experience from an iPad web twin over wifi
Summary
As the operator, I can drive the live experience (altitude, left, right, mood,
content) from a separate touch device (e.g. an iPad) over wifi while the
laptop renders — so I can stand back and feel the installation, and prototype the
controller in software before any hardware exists.
Problem / pain
Today you must sit at the rendering machine and move on-screen sliders. You can't
experience the piece from a distance, you can't feel what a handheld panel will be
like, and you have no way to validate the control ergonomics before committing
to hardware — so any physical-panel decision is made blind. The result is wasted
hardware iteration and an experience that can only be operated from the one spot
nobody actually stands.
Who feels it
Desired outcome / value
A touch remote on a separate device drives the live experience over wifi. It
is a faithful twin of the planned physical panel, so what is liked on the iPad
becomes the specification for the hardware — no redesign later — and the control
feel is validated in software, honoring simulator-first.
Acceptance — "done right"
Left / Right / Mood / Content changes the projected experience live.
feedback while their change plays; live controls (Left/Right/Mood) respond
immediately.
the same experience with no renderer change.
Scope / non-goals
In scope: the design spec's v1 — server-authoritative session state + the
networked control endpoints; the renderer refactored to display-only + live
updates; the touch remote page with the five controls and per-knob transition
state; wifi/LAN.
Non-goals: any Arduino/firmware; Bluetooth/USB transport; access control/auth;
moving rendering off the laptop. (All belong to the parent Epic's later Features.)
Assumptions · constraints · dependencies
docs/superpowers/specs/2026-06-26-networked-control-surface-design.mdis the binding engineering design (architecture, contract, the four endpoints,
the transition model, testing).
build time — the content/mode controls have evolved since the spec (session
0020's separate Video/Audio toggles); the implementation plan should fold that
in rather than treat the spec's content selector as literal.
Source / signal
Capture session
human-experience-filter-art-0025; design specdocs/superpowers/specs/2026-06-26-networked-control-surface-design.md(session0019 brainstorming).
Priority (WSJF)
Value: high (it is the installation-feel payoff and the hardware spec) ·
Time-criticality: low (deferred with the Epic) · Opportunity: high (first child,
unblocks the panel) ÷ Size: medium-large → provisional priority/P2.
Decomposition
A single increment (one SPEC = one plan = one execution). A recommended
implementation Task breakdown is in Solution notes; the binding breakdown is the
implementation plan's Tasks.
Solution notes (optional — NOT a design, non-binding)
Recommended Task shape (per the design spec): (1) server
SessionStatestore +the control endpoints; (2) the live push channel to the renderer; (3) renderer
refactor to display-only + reconnect/resync; (4) the touch remote page (five
controls + per-knob transition state); (5) the renderer's settled-ack +
transition-timeout safety net; (6) end-to-end browser tests across the two pages.
The binding detail is in the design spec.