Mimir/docs/eve-dashboard.md
2026-05-31 01:04:31 +01:00

2.2 KiB

Eve Dashboard

Objective

Use EveCanvas as a native Mimir operator dashboard: scene graph, source panels, visibility/reset controls, and multitouch transform editing. Eve renders the control surface locally and sends edit intents to Mimir; it does not own final composition.

Authority Map

  • Owner: Mimir owns accepted dashboard state and transform truth.
  • Inputs: Eve sends select, move, scale, rotate, toggle-visibility, and reset-transform commands over /eve/dashboard.
  • Outputs: Mimir sends dashboard-state snapshots with nodes, health, visibility, dimensions, transform, selected node, and LUT preset.
  • Derived state: Eve's UIKit panels are local render projections of Mimir state.
  • Forbidden writers: Eve gestures do not mutate program layout directly; they request changes and then re-render the accepted snapshot.
  • Cut line: no camera-stream fanout to Eve for the dashboard. Source previews may be added later as thumbnails/proxies, but dashboard control must not require Starfire to render every camera feed for the iPad.

Runtime

Start the dashboard server:

dotnet run --project .\src\Mimir.EveDashboard\Mimir.EveDashboard.csproj -- --port 8795

EveCanvas connects to:

ws://192.168.1.66:8795/eve/dashboard

Current State

Mimir.EveDashboard currently serves fixture scene nodes for the first native control proof. It accepts transform/visibility commands, mutates the server-side state, increments the state version, and broadcasts the new snapshot. The next cut is replacing fixture state with live MimirPresentationControlState and MimirSceneEditorState snapshots.

Verification

The command smoke connected to /eve/dashboard, received state version 1, sent:

{"type":"move","nodeId":"eve-camera","x":0.25,"y":-0.25}

and received state version 2 with eve-camera moved to that transform. During the same smoke, EveCanvas connected from 192.168.1.72 and remained running.

The first device screenshot proved the dashboard rendered on Eve, but also showed the legacy debug overlay occluding the hierarchy panel. EveCanvas hides that overlay while dashboard mode is active; dashboard status remains in the native dashboard footer.