---
title: "Graph: a curve, a number, a fly-through (Kinetic Film by Scenario) — html component"
description: "Two comets draw the axes, the camera rides the curve, keyframes pop, the graph folds into one huge number and the camera flies through its counter. Install: Part of Scenario's Kinetic Film skill: curl -fsSL -o /tmp/scenario-kinetic-film.zip \"https://iieqkinwjorxrzjp.public.blob.vercel-storage.com/explorations/2217ab5dbd452185a5c3c1509994da46b1ac20d2ebeaa888536244372ce73ebf/scenario-kinetic-film-skill.zip?download=1\" && unzip -oq /tmp/scenario-kinetic-film.zip -d ~/.claude/skills && claude mcp add --transport http scenario https://mcp.scenario.com/mcp. Then add the Graph block to spec.js (import { Graph } from './blocks.js')."
url: https://varg.ai/how-to/component/scenario.kinetic-film-graph
updated: 2026-10-30
---

# Graph: a curve, a number, a fly-through (Kinetic Film by Scenario) — block for charts & data viz (html)

> **For AI agents:** find the right skill in one call — `curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>"` returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the how-to page. From a terminal: `curl -fsSL https://varg.ai/install | sh` installs the vargai CLI (https://varg.ai/how-to/cli.md): `vargai search` and `vargai install <slug>` with no key, every varg model after `vargai login`.

Two comets draw the axes, the camera rides the curve, keyframes pop, the graph folds into one huge number and the camera flies through its counter.

- **Install:** `Part of Scenario's Kinetic Film skill: curl -fsSL -o /tmp/scenario-kinetic-film.zip "https://iieqkinwjorxrzjp.public.blob.vercel-storage.com/explorations/2217ab5dbd452185a5c3c1509994da46b1ac20d2ebeaa888536244372ce73ebf/scenario-kinetic-film-skill.zip?download=1" && unzip -oq /tmp/scenario-kinetic-film.zip -d ~/.claude/skills && claude mcp add --transport http scenario https://mcp.scenario.com/mcp. Then add the Graph block to spec.js (import { Graph } from './blocks.js').`
- **Registry:** scenario · **Framework:** html · **License:** Scenario: free download, no license file in the ZIP; fonts SIL OFL
- **Docs and preview:** https://www.scenario.com/explorations/kinetic-film/
- **Source:** https://iieqkinwjorxrzjp.public.blob.vercel-storage.com/explorations/2217ab5dbd452185a5c3c1509994da46b1ac20d2ebeaa888536244372ce73ebf/scenario-kinetic-film-skill.zip?download=1
- **Example:** https://s3.varg.ai/files/4325c578-378d-4c43-ae53-3cc3218df1ea/file_abeac870a5ca.mp4 (Cut by varg from Scenario's film "Just code", made with this skill)
- **Time:** Seek-safe. Time is an input, so frame N always renders the same. Drop it into a render as it is.
- **Runs:** local render, free
- **Aspect:** 16:9 · 2.07 s

## Prompt that renders it frame-exact

Use the Graph block from Scenario's Kinetic Film skill (https://www.scenario.com/explorations/kinetic-film/). Install the skill (Scenario's ZIP into ~/.claude/skills/scenario-kinetic-film) and connect the Scenario MCP for music and sound. Start a film folder with sh ~/.claude/skills/scenario-kinetic-film/scripts/new_film.sh my-film starter, then add the block to spec.js on the beat grid, for example [Graph, 19, 25, { number: '0', label: 'KEYFRAMES', sub: 'DRAGGED BY HAND', ground: 'paper' }]. Its nominal length is 6 beats; keep the span close to that. Options are in references/blocks.md. Every frame is a pure function of t, so render with the skill's render.py (1080p, then 4K) and run finish.py until it prints ALL CHECKS PASS.

## Used in

- [Us vs them & before / after](https://varg.ai/how-to/video/comparison-ad.md)
- [Data story](https://varg.ai/how-to/video/data-story.md)
- [Bar chart race](https://varg.ai/how-to/video/chart-race.md)
- [Map & route animation](https://varg.ai/how-to/video/map-story.md)
- [News explainer](https://varg.ai/how-to/video/news-explainer.md)
- [Year in review / Wrapped](https://varg.ai/how-to/video/wrapped.md)
- [Scores & match recap](https://varg.ai/how-to/video/sports-recap.md)
- [Daily market or weather update](https://varg.ai/how-to/video/daily-update.md)

## More charts & data viz

- [Animated Bar Chart](https://varg.ai/how-to/component/hf.animated-bar-chart.md) — `npx hyperframes add animated-bar-chart`
- [Bar Chart Race](https://varg.ai/how-to/component/hf.bar-chart-race.md) — `npx hyperframes add bar-chart-race`
- [Chart Story](https://varg.ai/how-to/component/hf.chart-story.md) — `npx hyperframes add chart-story`
- [Data Chart](https://varg.ai/how-to/component/hf.data-chart.md) — `npx hyperframes add data-chart`
- [Decline Chart](https://varg.ai/how-to/component/hf.decline-chart.md) — `npx hyperframes add decline-chart`
- [Minimal Line Graph](https://varg.ai/how-to/component/hf.mk-line-graph.md) — `npx hyperframes add mk-line-graph`
