Visualization choreography
Answers do not just print; they drive the globe. The console treats the scene as a living digital twin: every simulation, optimization, and assistant answer animates the current scene into the next one, so the operator never mentally reconstructs what changed.
The living-scene principles
The choreography follows a small set of standing rules:
- Persistent scene. The globe is never torn down and rebuilt. Every visualization is an incremental update to the single scene graph.
- Everything animates. Membership changes fade (nothing pops in one frame), positions interpolate per frame, overlays morph.
- Live optimization playback. Optimizations show the process: candidates appear, rejected ones dim, the winner glows.
- Camera continuity. The camera never teleports unless asked; it flies while the simulation keeps rendering.
- Temporal continuity. Scrubbing the timeline evolves every visualization continuously.
- Interactive explanations. The assistant's claims drive emphasis on the globe (pulse, glow, highlight), not just text.
- Never block rendering. Heavy computation runs asynchronously in the fleet worker; the renderer holds frame rate while results arrive.
What plays automatically
Certain result kinds choreograph the scene the moment the tool completes, before the assistant writes a word. The result then carries a visualization block recording what was played, which nodes were highlighted, and a suggested camera target; the assistant narrates it and executes the camera move.
Candidate sweeps
Siting and placement results replay the optimizer's evaluation as a staggered reveal, so a recommendation reads as a process, not a teleport:
- Every evaluated candidate appears on the globe in evaluation order (a new marker every 24 ms, each fading in over 220 ms).
- Rejected candidates settle down to a faint trace (16 percent opacity) over about 0.7 s, so the search space stays visible without dominating.
- Picks stay fully lit, labeled with their objective scores in the objective's own units.
- The rank-1 winner pulses continuously (a slow 1.4 s throb).
- The sweep is capped at 200 markers so a grid-heavy candidate pool cannot flood the globe; picks are always kept, and the cap trims the rejected tail.
Sweeps play for optimize_ground_network, ranked compare_candidate_sites results, and analyze_network_capacity with focus station_placement (where the sweep's objective label is the P99 unserved-demand reduction in Gbps). The sweep is pure presentation over a result already computed; it never influences the numbers.
Bottleneck pulses
analyze_network_capacity with focus gateway_bottlenecks pulses the hottest gateways on the globe: the top three gateways at or above 80 percent peak utilization throb so "this is the bottleneck" is visible, not just stated. The result's visualization block records the highlighted node ids.
Site framing
Availability and siting analyses attach a suggested camera target at the analyzed or winning site (lat, lon, label). The assistant executes it with set_camera view="point", flying the camera to the location while the answer explains what it shows.
What the assistant drives explicitly
Beyond the automatic choreography, visualization is a scripted output stage of the execution pipeline, applied in a fixed order after the analysis is complete:
- Camera: only if the subject benefits from framing (
set_cameraregion for a bounding box, point for a place). - Selection:
select_node/select_linkon exactly the assets that participated in the analysis dataset, no more. - Context layers:
set_filter,set_constellations,set_layersto show the participating population. - Relationship overlays: the links and paths that contributed.
- Panels and charts:
open_paneland the chart tools.
The invariant: the globe must reflect the exact filtered dataset and computed results. Visualization is an output of the analysis, never an input.
Continuous motion underneath
The choreography sits on scene-level animation that runs regardless of the assistant:
- Satellite motion: worker-sampled position windows with per-frame smooth interpolation at any playback rate.
- Link transitions: link lines fade in and out on a shared wall-clock envelope with horizon hysteresis, so links do not flicker at the visibility boundary.
- Node presence fades: added assets fade in, dropped assets retire through a fade-out, and an asset that returns mid-fade revives smoothly.
- Camera flights:
set_cameraalways flies; focusing a gateway is a staged descent that waits for terrain tiles.
Honest gaps
Stated plainly, because the assistant will state them too:
- There are no geographic coverage, demand, or beam-footprint overlay layers yet. Coverage percentages, demand figures, and beam plans come back as numbers, tables, and insight cards, not shaded map regions. "Heatmap" requests get a ranked per-group breakdown with a bar chart, and the answer says a map overlay is not available.
- Layer toggles are instant rather than cross-faded.
- The candidate sweep replays the final ledger rather than streaming per-candidate evaluation live; results arrive whole from the worker, then animate.
- There is no geographic gateway filter: for a regional gateway question the camera frames the region and the named gateways are selected, and the assistant says exactly that rather than implying the globe hid the rest.