// ninety seconds, no narration needed

See it move

One scenario, one client, and the dashboard reacting in real time — from a cold START to a replayed session.

CLIP · ~90s ▶ Walkthrough capture drops in here
(OBS window capture → demo.mp4 / demo.gif)
The walkthrough

Seven beats, cut on the action

The full recipe lives in docs/demo-shot-list.md. Each frame below is a moment to capture; the client action drives the on-screen reaction.

010:00–0:12

Load a scenario & START

CONFIG tab → pick IOT SENSOR from the dropdown → LOAD. A rule and a feed appear; transport reads TCP+UDP. Hit START — the status pill flips ONLINE.

"One click stands up a whole device simulator."

SHOT 1◉CONFIG tab, preset loaded, pill ONLINE
020:12–0:28

A client connects

In a terminal: python probe.py. The DASHBOARD tiles jump, the throughput line moves, the LIVE FEED fills, and a client row appears.

"Everything the client does, visible."

SHOT 2◉DASHBOARD live — tiles + throughput moving
030:28–0:42

Read the bytes

MESSAGES tab → toggle HEX. Text or exact bytes on the wire, binary auto-tagged.

"This is what the device actually sent."

SHOT 3◉MESSAGES stream in HEX view
040:42–0:58

Script a reply

RULES tab shows the READ → sample rule. Send READ (python probe.py --send READ) — the templated JSON comes back and the hit count ticks.

"Responses are content, not code — regex in, template out."

SHOT 4◉RULES tab, a rule matching, hit count rising
050:58–1:08

Kick, instantly

CLIENTS tab → KICK the probe. It drops at once, the row vanishes, a disconnect lands in the feed.

"Instant, not a polite timeout."

SHOT 5◉CLIENTS tab, mid-kick
061:08–1:22

Record & replay

RECORDER tab → RECORD, let a few messages flow, STOP → EXPORT .JSONL → LOAD INTO REPLAY → REPLAY. The progress bar sweeps.

"Capture a session, hand it to a student, replay it tomorrow."

SHOT 6◉RECORDER / REPLAY mid-replay
071:22–1:30

Close on the map

Load the GEO preset and python probe.py --hold 20 — the world-map marker stream (FTXUI_SOCKET, folded in) as a living close-out.

SHOT 7◉GEO feed streaming markers

● Media pending capture

The frames above are placeholders. To fill them: run the walkthrough with the app, capture per docs/demo-shot-list.md (OBS window capture, 60 fps), drop the images into docs/media/ and swap each placeholder <div class="media ph"> for an <img>. Nothing here is a mock-up of the UI — just labelled slots.

One binary, one window, START and watch.
// the cheapest thing in the family to demo