SKETCH · incident-viewer fan · 4 forks × 3 alts · wireframe on purpose,
play everything ▶ · ink budget ≤ 700 lines · reduced-motion honored · v0.1.0
every exhibit in these frames (names, times, clips, coordinates, files) is a FICTIONAL placeholder for layout play, NOT Chelan Hills record content; the record lives in the cataloged STAC and the RLS report

incident-viewer · the viewer fan

◂ incident-viewer · live · fire-grid-watch · live · stac-workbench · the WORK surface · alert.live/incidents/ · bead 42b5d5db
Both viewing surfaces shipped tonight, born from Stephen's negative feedback ("i asked for incident-viewer and you shipped STAC-Workbench for chellan hills"). Shipping is not converging: this fan re-opens the four load-bearing choices as playable wireframes, with as shipped always one letter among equals. Play them, then cast one critique at the bottom (qid incident-viewer); recombinations are legal answers.
Grounding: nm-land paths (scroll-synced story-maps) · alert.live canvas (sight line · pixel → ground) · pattern precedent incident-add fan · method sketch-ux.

IV1 · the viewer's spine · what does a reader land on?

Shipped: the full-viewport map with layer panel, bottom timeline, §4 chrome. The fork: is the spine the map, the record beside the map, or the story that walks the map?

IV1a map-first · as shipped

◐ incident-viewer
├────●──────────┤ Jul 4 · 14:00 to 16:00 · event window
layers toggle live · ◱ strips the chrome to pure map
as shipped: the map IS the incident, one surface carries everything. but the record's prose (the RLS, provenance, rights) lives behind taps, and reading is squinting.

IV1b split · map + dossier

IMG_4312.jpg · 14:21resident photo · © the photographer · opens at source
KXLY chopper clip · 14:05video · © KXLY · plays in their player
perimeter_1500.geojson · 15:00GIS · public record
tap either side · dossier and map share one selection · RLS keeps top billing above the list
the record reads like a record, provenance gets a full line each. but two panes split attention, and on a phone the dossier wins or the map does, never both.

IV1c story-scroll · nm-land paths

July 4 · the record opensthe whole incident in one frame; the bbox is the promise of what is inside.
14:21 · Sunflower Lanea resident looks north; the photo lands where they stood. cite: exhibit → IMG_4312
15:00 · the perimeter poststhe escape route reads against the line. cite: exhibit → perimeter_1500
scroll the right pane · steps fly the map, toggle layers, cite exhibits
the incident as it unfolded; steps fly the map and cite STAC exhibits (nm-land paths grammar). but someone must WRITE the story, an unwritten incident has no scroll, and an operating picture must never wait for prose.

IV2 · media on the map · how does a picture meet its geometry?

Shipped: markers with rights-honest popups. The fork: media hides behind a tap, throws a thread to its ground point, or sits on the map as itself. Same three sources in every frame.

IV2a markers + popups · as shipped

tap a marker · the rights-honest popup opens here
as shipped: known grammar, and rights honesty gets a popup's full room. but media is invisible until tapped, and every popup covers the map it points at.

IV2b sight-line threads · pixel → ground

IMG_4312 SR-97 cam KXLY clip
─ sight line · pixel → ground (the alert.live canvas legend, verbatim)
tap a tile · it throws its thread to where it was taken
the wall and the where in one glance; the thread IS the caption. but threads cross at three sources and knit at thirty, and the tile strip spends map pixels full-time.

IV2c mini-tiles pinned at geometry

tap a tile · it grows in place; the media IS the marker
the evidence sits where it happened, zero indirection. but tiles occlude the terrain they explain, collide at state zoom, and a thumbnail crops rights context to nothing.

IV3 · the watch wall's clock · who moves time, and how many moments show?

Shipped: fire-grid-watch highlights whatever the playhead touches. The fork: the reader drives one clock, the wall rotates itself, or two moments stand side by side. Same four sources (Chelan Hills, Jul 4, 14:00 to 16:00) in every frame.

IV3a playhead highlight · as shipped

playhead · 14:00 · 1 source live
as shipped: one clock, and the wall answers what was live THEN. but the reader drives; nothing surfaces until the hand moves.

IV3b rotating watch · auto-cycling focus

KXLY chopper14:05 to 14:40 · focus tile
the wall takes turns in the focus tile, 2s each
a watch that watches itself; the wall takes turns without a hand. but it is motion the reader did not ask for, and under reduced motion this alt keeps only the step button, honestly.

IV3c compare · two moments side by side

moment A
moment B
before/after is the analyst's question and Δ is the display. but two clocks double the chrome, and compare is work; this may be the workbench's face, not the watch's.

IV4 · one app or three · how many doors, and what lives behind each?

Shipped: three separate apps, cross-linked, never conflated; the membrane tonight's negative feedback drew (viewing is not work). The fork: keep three URLs, cut three doors in one, or dock the watch inside the viewer.

IV4a three apps · as shipped

…/apps/incident-viewer/?stac=chelan.json
▦ the operating picture
…/apps/fire-grid-watch/
▤▤▤ the watch wall
…/apps/stac-workbench/?face=add
⚒ the WORK surface
tap a cross-link · a new tab opens; the STAC URL carries the context
as shipped: each URL is one honest thing, and the viewing/work membrane holds. but three tabs to hold one incident, and the cross-link is the only stitch between them.

IV4b one app · three doors

…/apps/incident/?face=viewer&stac=chelan.json
▦ full-viewport map · layers · bottom timeline
one URL · the door is a query param · faces share the incident state
one address to teach and faces share state. but the Workbench door re-invites the conflation Stephen rejected tonight: a door marked WORK inside a viewer is still work in the viewer.

IV4c viewer embeds watch as a face

…/apps/incident-viewer/?stac=chelan.json
▦ the operating picture · map, layers, timeline
KXLYSR-97 photoSentinel
the wall docks under the map the way the timeline does
one viewing surface, two grammars, and work stays outside. but the drawer taxes every viewer load, and the watch's own season-wide URL (all incidents at once) has no home inside a one-incident viewer.

The ballot

incident-viewer · Compose the viewing surfaces: check what should ship. One letter per fork is the default; more, fewer, and recombinations are all legal answers, and the notes carry the vectors.

IV1 · the viewer's spine
IV1a map-first · as shipped: the map is the incident; everything docks to it.
IV1b split map + dossier: the record reads beside the map; provenance gets room.
IV1c story-scroll: steps fly the map and cite exhibits (nm-land paths grammar).
IV2 · media on the map
IV2a markers + popups · as shipped: rights honesty gets a popup's full room.
IV2b sight-line threads: pixel → ground drawn literally (alert.live canvas grammar).
IV2c mini-tiles at geometry: the media IS the marker; the map wears its evidence.
IV3 · the watch wall's clock
IV3a playhead highlight · as shipped: one clock, the wall lights where it stands.
IV3b rotating watch: the wall takes turns in a focus tile; still under reduced motion.
IV3c two-moment compare: A beside B; the change between them is the display.
IV4 · one app or three
IV4a three apps · as shipped: viewing and work stay separate URLs, cross-linked.
IV4b one app, three doors: one URL; ?face= picks viewer, watch, or workbench.
IV4c watch docks into the viewer: one viewing surface; workbench stays apart.
bead 42b5d5db · incident-viewer · viewer fan v0.1.0 · Debbie (senior-uxui-designer, bead c4a8e2f1), sketch-ux method, standing devops default: the fan follows the ship · one ballot, qid incident-viewer, critiques deposit to this bead's feedback/ · font floor 15/14/13px · no em dashes in UI copy · reduced-motion guard on every transition and on the one self-moving alt (IV3b)
2026-07-23 · © 2026 RedfishGroup · author: Debbie for Stephen Guerin · all rights reserved (unless otherwise specified)