ShurIQ Report Studio Phase 0 Research Brief Session 123

Motion Graphics for the
ShurIQ Visual Grammar

A regulatory-grade reporting product can't sit still. Cavalry, Remotion, and the Stallion bridge turn the seven static primitives into a living vocabulary — and the Fiserv GTM brief is the first place we test it.

Authored2026-04-28
Surfaceclaude-code-terminal
StatusDraft · ideation
Test caseFiserv Prosperity GTM
§1 · Premise

Why this exists

ShurIQ reports already use static D3 panels for stack rankings, BPS pentagons, gap radar, and value-flow topologies. The Visual Grammar — seven primitives (entity-node, value-flow, event-marker, rubric-axis, gap, bridge, consensus-score) — was authored for print and web. The next layer encodes things print cannot.

  • State change between healthy → sub-optimal → critical.
  • Transition probability — "23% chance this rank drops next week."
  • Path traversal of a concept through a Business Model Canvas channel.
  • Variant batching — same composition, N reports, N spreadsheet rows, deterministic re-render per report version.

Cavalry (Scene Group, now Canva-owned, Pro free since April 2026) is the right authoring tool for the stylized layer: node graph, JS scripting, native Google Sheets feed, Dynamic Rendering across a CSV. Remotion complements it for code-only data overlays where determinism per report version matters more than aesthetic richness. Both can live in one pipeline.

The reader of a ShurIQ report should be able to read motion the way they read a sentence — every move means something specific, every transition encodes a claim, every variation is grounded in source data.
§2 · Tooling

Cavalry MCP — what to install in the morning

Two viable options exist (no published-to-Smithery yet, GitHub-only). Both ride on Stallion, Cavalry's official local HTTP server. Custom MCP work reduces to POST 127.0.0.1:8080/post with a JS payload — the surface is small.

OptionWhat it isUse when
hralet1/
cavalry-assistant
Wraps the Stallion HTTP bridge plus a LanceDB index of 40,000 doc chunks + 270 community .cv files. Three tool surfaces: script execution, knowledge query, scene management. Recommended. The semantic doc index lets Claude reason over real scene files while writing scripts.
kacperchlebowicz/
Cavalry-mcp
Minimal POC. Layer create, attribute set, keyframing, render, easing. Drop-in if cavalry-assistant setup hits friction — 30-minute install.

Setup sequence (morning, blocking)

  1. Open Cavalry → confirm Stallion server is running (Window > Scripts > Stallion or via the Scenery.io VS Code extension).
  2. git clone https://github.com/hralet1/cavalry-assistant && cd cavalry-assistant
  3. Pull the prebuilt lancedb_public.zip from GitHub Releases, unzip into the repo.
  4. claude mcp add cavalry-assistant node mcp/dist/index.js
  5. Authorize Cavalry's Google Sheets asset for the Fiserv BMC sheet 1MzqAk…CZZZY (tabs: Lean Canvas, Full BMC, Temporal Canvas).
  6. Clone jonnydubowsky/Canvalry-scripts into Cavalry's scripts folder (Help > Show Scripts Folder) — gets us Easey, Localiser, Renamer, Reduce Compositions.

Cavalry CLI was removed in v2.7+. If the local install is recent, headless render runs through Stallion only. If knowledge query won't start, Ollama isn't running — script execution still works.

§3 · Vocabulary

Visual Grammar × Cavalry mapping

Every motion artifact ShurIQ ships should be expressible as a composition of these moves. If a designer needs a new vocabulary item, it gets added to this table first — never invented at the artifact level.

entity-node
breathe idle · pulse alert · inflate rank rising · deflate rank falling · explode event · settle consensus
Spring stagger + Frame Oscillator
value-flow
particle stream · opacity surge · fork on decision · stall on gap
Pathfinder behavior + Path Distribution
event-marker
strike-arrival · ripple outward · residual trail
Fragmented image dissolve (DEEO)
rubric-axis
needle tween · threshold band crossing · anticipation curve · uncertainty oscillation
Easey speed graph
gap
static-noise fill · lightning arc when bridged · fade when filled
Noise Shader + Pathfinder
bridge
wormhole connect · dual-source pulse · evidence bloom
Duplicator + Index Context
0.84
consensus-score
whisker spread · dispersion cloud · agreement crystallization
Stagger + multi-point gradient
§4 · The Idea Bank

36 motion graphics, all Fiserv-grounded

Organized by analytical purpose. Every idea names the Cavalry technique that drives it. All build on existing Fiserv viz-hub viewports or BMC overlay data. The category letters (A–G) match the corresponding handoff-doc sections.

AState-change revealsDEEO Fragmented Image style
A·01BPS pentagon morph 46 → 80Pentagon collapses asymmetrically at current state, fragmentation reveal across each dimension as the new score lands.Fragmented Image + Spring stagger
A·02CEO transition dissolveBisignano portrait fragments via Duplicator-mask grid, new-leadership silhouette reassembles. Encodes the Project Elevate power vacuum.Fragmented Image (DEEO .cv)
A·03Stock-chart healthy-to-distressedLine chart fragments at peak (-73% drop point), reassembles around the floor. Caption with String Manipulator.Fragmented Image + Path Distribution
A·04Project Elevate logo collisionIBM and McKinsey logo blocks shatter the original Fiserv brand block; remnants drift outward.Boolean + Frame Oscillator
A·05Trust-collapse heatmap timeline36-month grid of cells dissolve from green → red along sentiment data.Duplicator grid + color-array driver
A·06Prosperity Index gauge fill850+ community-bank tiles cascade into a gauge as deposits route through StoneCastle.Duplicator + Spreadsheet utility
BBMC value-flow traversalsPathfinder behavior
B·07"Corporate Cash Sweep" path-traceParticle traces Customer Segments → Channels → Revenue Streams across the Full BMC.Pathfinder + custom path geometry
B·08StoneCastle Sankey from CSVCorporate treasuries → StoneCastle → 850 active community banks. Ribbon widths from $233B distribution.Pathfinder + Spreadsheet utility
B·09Decision-diamond gating revealCampaign engine 4-phase, particles route through diamonds based on threshold scores.Pathfinder + conditional Easey
B·109-block × 4-state cyclerNine BMC blocks cycle through Observation → Plan → Recipe → Missing, color and density per state from the Temporal Canvas tab.Duplicator grid + Spreadsheet utility
B·11"CEO sponsorship: Missing" bottleneckValue flow hits the one Missing entity, pulses red, releases when sponsorship arrives.Pathfinder + Frame Oscillator
B·12Top-down vs bottom-up channel forkSingle source node forks into influence-buyer (top) and market-economic (bottom) channels.Pathfinder + Path Distribution
CStack-rank dynamicsDuplicator + Index
C·13Bar-chart race Q1'24 – Q4'25Fiserv vs Stripe / Block / PayPal / Adyen / FIS BPS across eight quarters.Duplicator + Index + Spring stagger
C·14Rank-drop probability ticker"▼ 23% drop next week" sparkline appended to each row. Pulse intensity = probability.String Manipulator + Easey conditional
C·15Vertical shuffle on rank changeDisplaced rows slide with anticipation curves (Easey overshoot).Spring stagger + Easey
C·16Confidence-band whiskersHorizontal whisker per rank position, width = uncertainty.Duplicator + Falloff
C·17"Why did Fiserv drop?" causal ribbonWhen rank changes, ribbons reach back to source events.Pathfinder + Connect Shape
DProbability and forecastEasey + Falloff
D·187-day BPS weather forecastCloud and sun glyphs with probability bands per day.Smart Folder + Duplicator
D·19Monte Carlo cloud over BPS pentagonCloud thickens where outcomes are uncertain.Noise Shader + multi-point gradient
D·20Three-timeline scenario forkStatus quo / Project Elevate succeeds / class action wins. Line opacity = probability.Pathfinder + opacity binding
D·21Anticipation-curve needle hesitationRubric-axis needle hesitates before threshold, encoding model uncertainty.Easey speed graph
D·22Threshold-band washColor band shifts up/down the axis. Gauge follows.Falloff + multi-point gradient
ENegative-space and gap dynamicsConnect Shape + Noise
E·23Gap-radar concentric pulse14 Prosperity gaps + 12 brand gaps as radii. Pulse frequency = severity.Frame Oscillator + Duplicator
E·24Bridge-formation revealWhen a gap closes, accent-blue bridge node materializes between clusters.Connect Shape + Spring
E·25Constellation cluster-by-cluster reveal70-node negative-space graph emerges by cluster (8 clusters, modularity 0.66).Duplicator + Stagger
E·26Lightning-arc gap bridgeHigh-energy spark crosses dashed edge; edge becomes solid.Pathfinder + Frame Oscillator
E·27Static-noise gap-fillGap edges show TV static; clears as evidence accumulates.Noise Shader + opacity binding
FVariant batchingDynamic Rendering
F·28Per-competitor stack-cardSix competitors, one MP4 each for LinkedIn carousel from a CSV.Dynamic Rendering + Spreadsheet utility
F·29Friday weekly BPS updateCron pulls latest scores, renders five dimension cards plus a composite.Dynamic Rendering + Sheets reload
F·30Per-stakeholder briefing cardJosh, Limore, Nuri each get a personalized brief. Name via String Generator. Action items from BMC sheet.Dynamic Rendering + String Generator
F·31Multi-language variantsLocaliser exports strings to CSV, translate, reimport for ES / PT for LATAM.Localiser script
F·32Per-bank Prosperity dashboardOne card per active community bank from an 850-row sheet.Dynamic Rendering at scale
GBrand power · pentagonSpring stagger + 3D Matrix
G·33Sequential-dimension pentagon arrivalScore lands dimension-by-dimension. Pentagon morphs as each lands.Spring stagger
G·34Dimension-weighted shakeWhen a dimension drags composite down, that vertex jitters.Frame Oscillator + Falloff
G·35Comparative pentagon ghost overlayFiserv vs Stripe pentagons. Animated differential highlight.Multi-shape blend
G·36Pentagon-to-pyramid 3D extrude2D pentagon extrudes per-dimension by evidence depth.3D Matrix
§5 · Dispatch

Eight inspiring prompts

Self-contained Claude Code prompts, each anchored to a Cavalry community technique pattern. Hand any of these to an agent post-MCP-setup. Greek letter naming (α–θ) keeps them dispatch-addressable.

α
BMC value-flow Pathfinder · the keynote demo
6s · 1080×1920
Build a Cavalry scene that animates the path of "Corporate Cash Sweep" through the Fiserv Prosperity BMC. Use Pathfinder behavior to trace a custom path connecting Customer Segments → Channels → Revenue Streams. Pull the BMC entities live from the Google Sheets asset (sheet 1MzqAk…CZZZY, Full BMC tab). Use Duplicator + Index Context to instance one entity-node primitive per BMC block, sized via sqrt(degree). Background #FAF8F5. Edge opacity 0.04–0.15. Render via Stallion to motion-graphics/renders/01-cash-sweep.mp4.
β
Pentagon BPS reveal · the foundation demo
5s · 1080×1080
Animate the Fiserv Brand Power Score pentagon. Five dimensions (Awareness, Trust, Mission, Differentiation, Loyalty) arrive sequentially with Easey anticipation curves. When all five land, pentagon settles to its asymmetric 46/100 final shape. Use Text Shape + String Generator for the score label. Add dimension-weighted jitter on Trust (the dimension dragging composite down). ShurIQ palette: cobalt #2451B7, warm #FAF8F5, critical #D63B3B.
γ
Stack-rank race · the variant-batching test
12s · 1920×1080
Bar-chart race between Fiserv, Stripe, Block, PayPal, Adyen, FIS over eight quarters (Q1 2024 → Q4 2025). Pull data from CSV with quarter, company, bps columns. Duplicator + Index Context spawns one bar per company. Per-quarter pose change via Spring stagger. Each bar carries a String Generator label of its current score. Cobalt for Fiserv, neutral grays for competitors.
δ
StoneCastle Sankey
15s · 1920×1080
Build a Cavalry Sankey from corporate treasuries → StoneCastle network → 850+ community banks. Source-target-value triplets in CSV. Use Pathfinder to draw flow ribbons. Path Distribution for particle density along each ribbon (density = $ value). Show $233B cumulative arriving with a String Manipulator count-up.
ε
Negative-space constellation
20s · 1920×1080
Cluster-by-cluster reveal of the Fiserv negative-space graph (70 nodes, 180 edges, 8 clusters, modularity 0.66). Use Smart Folder asset for SVG node files. Stagger the cluster reveals. Edges fade in at opacity 0.04–0.15. String Generator labels each cluster as it appears. Background #FAF8F5.
ζ
Fragmented CEO transition
8s · 1080×1080
Adapt DEEO-STUDIO-Fragmented-Image.cv to depict the Fiserv CEO transition. Bisignano photograph fragments via Duplicator-mask grid; per-cell offsets animate outward; new-leadership placeholder silhouette reassembles inward. Caption strip with String Manipulator: "Project Elevate · Q4 2025 → Q1 2026".
η
Per-stakeholder briefing batch
batch · 1080×1920
Use Dynamic Rendering + Spreadsheet utility to render personalized motion briefs from the Fiserv BMC sheet. Composition: title strip with stakeholder name (String Generator), three action-item bars (Duplicator), BPS pentagon, sign-off frame. One render per row (Josh, Limore, Nuri). Output briefing_<firstname>.mp4.
θ
Probability ticker
4s loop · 1080×1080
Build a Cavalry composition that adds a probability ticker to a stack-rank row. Each row reads "▼ N% chance of rank drop next week" with pulse intensity = probability. String Manipulator formats the percentage. Drive from CSV column drop_probability. Use Easey conditional curves for the pulse.
§6 · Execution

The morning agent batch

Four agents. One blocking, three parallel. The goal is one usable MP4 from each parallel agent before lunch — proves the toolchain end-to-end.

Phase 0 — Blocking Agent 1 · cavalry-mcp-setup └─ verify Stallion · install cavalry-assistant · connect Google Sheet · smoke-test render Phase 1 — Parallel Agent 2 · prompt β pentagon BPS reveal (pure motion, no data) Agent 3 · prompt α BMC Pathfinder traversal (first Sheets-driven scene) Agent 4 · prompt γ stack-rank race (first Dynamic Rendering test)

Each tests a different axis of the toolchain. β is pure motion authoring. α is live Google Sheets integration. γ is Dynamic Rendering variant batching. If all three render successfully, the next thirty-three ideas are mechanical.

Skip ζ (fragmented CEO) until afternoon — it requires the DEEO .cv reference to be downloaded first and is more visually adventurous. Better as a Phase 2 stretch demo once the foundation is verified.

§7 · Pipeline split

Cavalry × Remotion — the right split

Cavalry and Remotion solve adjacent problems with opposite philosophies. Both can render variant batches from data; they earn different jobs in the same pipeline.

Cavalry
Remotion
Stylized hero motion (Pathfinder traversals, fragmented dissolves, generative geometry).
Code-only data overlays where every frame must be deterministic per report version.
Designer-authored visual language exploration.
CI / CD batch renders where the design is locked.
Live spreadsheet feeds (Google Sheets asset).
JSON-as-props pipelines from knowledge-graph exports.
Dynamic Rendering across 10–50 variants.
Lambda-rendered 1,000+ variants per cycle.
Hero panels in a published report.
Per-report data overlays rendered at publish time.

Pipeline shape: knowledge graph → JSON export → Cavalry exports stylized MP4/WebM hero loops (authored once, regenerated when narrative changes) → Remotion composes them with React data overlays for the per-version artifact → CDN delivery.

The Remotion skills layer wires this together at the second hop. Tomorrow's session focuses on the first hop only.

§8 · References

"Steal my reel" reference list

Study before the morning session if there's time. Each one teaches a technique that maps directly to the Visual Grammar.

Scenery.io workshop · 8 typographic animations
Antonin Waterkeyn's full build sequence covers Custom Shape, Pathfinder, Duplicator, String Generator, Easey, Falloff, Bounding Box.
scenery.io/workshop
Canva Motion Powerhouse
Phillip Tibballs / Jack Jaeschke / Sam Mularczyk. Easey, Localiser, Renamer. Open-source Cavalry tooling.
canvacreative.team/motion
DEEO Studio · Fragmented Image
Source .cv in Dropbox. The dissolve template for state-change reveals — applies to category A directly.
youtu.be/QdB7z5nBY1w
Cavalry · Data + Dynamic Rendering
Official tutorial. Canonical CSV → Spreadsheet utility → Dynamic Rendering pattern. Watch this first.
youtu.be/6Xh3hy8VCV0
Cavalry-assistant MCP
Wraps Stallion HTTP bridge plus 270-scene LanceDB index. The recommended install for tomorrow.
github.com/hralet1/cavalry-assistant
Stallion bridge
Cavalry's official local HTTP server. POST /post with a JS payload executes against the open scene.
github.com/scenery-io/stallion
§9 · Unknowns

Open questions

  1. Does cavalry-assistant's LanceDB index include the Easey / Localiser community scripts, or only Cavalry's own docs? If only docs, Phillip Tibballs scripts need separate indexing.
  2. Stallion's HTTP surface — is there a rate limit or queue depth that matters for a 36-prompt batch?
  3. Cavalry CLI was removed in v2.7+. If the install on this machine is ≥ 2.7, the headless-render path becomes Stallion-only. Check version on startup.
  4. Google Sheets asset auth: needs OAuth via Cavalry's built-in flow, separate from gws-cli. Confirm which Google account owns the BMC sheet.