riso-windowseat README

The project's README from github.com/sevenevesai/riso-windowseat. As one markdown file: README.md.

riso-windowseat

Procedural risograph films and prints, each a single index.html of Canvas 2D and Web Audio: no libraries, fonts, images or network calls. The repo began as the release of Window Seat. Making it, and the two shorts before it, produced a reusable kit of Claude Code skills, craft docs and a render harness. Roost, Held and Nonpareil were made with it next.

Window Seat, dawn from the viaduct

Films

All are 1080 × 1080, 30 fps. MP4s are on the v1.0 release. To watch the source instead, open any index.html in a browser and press play.

Film Length
Window Seat 78 s A night train journey through one window, scored for piano
Roost 70 s One take of a starling murmuration from sunset to roost, scored for strings
Held 70 s A kite that flies only while something holds its line, scored for found instruments
Nonpareil 70 s Paper marbling from the first drop to the one print it makes, scored for handpan
Lumen 28 s A seed that contains a sun; the first short, in call-and-response form
Emergence 28 s Lumen's sibling: how machines learned to listen, as nine worlds

Window Seat

A night train journey seen through one fixed window with a glass of water on the sill. Every pixel and every sound except the piano is procedural.

Time Passage
0–19 s Golden departure from a platform, fields, a red truss bridge, a conifer cutting, a tunnel
19–38 s A night city with a canal and a level crossing; another train overtakes, passengers in its windows
38–57 s Fireworks over a lake, sleeper hours with star trails, pre-dawn fog
57–78 s Dawn from a viaduct, rain streaming back along the glass, a lakeside halt under a rainbow

The score, "A Light Left in the Window", is an original piano piece in 6/8 whose phrasing follows the picture's timeline. The glass of water leans with every acceleration and is the last thing to settle.

Contact sheet of Window Seat's shots

Roost

A murmuration over a marsh in one fixed view. Each starling is a 2–3 px ink dot, so the flock is the halftone: where the sheet turns edge-on, the birds pile into dark printed ribbons. A falcon stoops through it and the flock pours into the reeds at nightfall. The string score is timed from the picture.

Held

A paper kite's line frays and parts at a hillside stake. Loose, it can only tumble; it falls across a harbour town, is snagged for a moment by a church weathervane, and over the water its line catches on a sloop's forestay, so the kite climbs again, held by the boat sailing into dusk. Its tail and loose line are simulated ropes. The score uses CC0 mbira, harp, glockenspiel, chimes, strings and flute, with every cue read from the picture's events.

Nonpareil

Paper marbling seen straight down into the bath. Drops of colour land on the beat and push each other outward; a rake and a fine comb drag them into the nonpareil pattern, and a flower is dropped and pulled into the middle. A sheet unrolls across the bath, is peeled back toward the lens like a turning page, and lands face up and mirrored beside the emptied tray. The marbling is closed-form geometry, so every frame is exact. The drops are the handpan's notes, over a slow cello and contrabass line.

How they're made

I directed each film; Claude Code (Anthropic's coding agent) wrote the code, using the skills, rules and docs in this repo. A work is designed in its FILM.md, its hardest frame is proved first, and then it is inspected as frame strips, 1:1 crops and loudness sheets rendered by tools/. Every frame is a pure function of time (seek(t)), so any moment can be inspected exactly and the MP4 cannot drop frames. Each FILM.md records the design decisions and measurements, and lists the film's remaining weaknesses.

Make your own

git clone https://github.com/sevenevesai/riso-windowseat
cd riso-windowseat/tools
npm install && npm run setup && npm test

Then open Claude Code in the repo root and ask, for example:

CLAUDE.md gives the session the contract and commands. The riso-film, riso-still and riso-score skills in .claude/skills/ carry the workflow and gates. Each skill's examples.md points to the routines in the shipped films that are worth reusing. A hook warns when an edit breaks determinism.

What's inside

Path Contents
films/ The six films, each with its FILM.md; Window Seat, Roost, Held and Nonpareil include sample credits and bank rebuild scripts
prints/workings/ A still print series and the print kit new works start from
docs/ The craft: brief, visual development, drawing, scene space, motion, sound, quality bar
studies/ Interactive A/B studies of each technique, and the sound kit
tools/ Scaffolding, verification, contact sheets, audio analysis and MP4 export (README)
.claude/ Skills, the ink-plate rule and the determinism hook

License

MIT, see LICENSE. The piano recordings embedded in Window Seat are Salamander Grand Piano V3 by Alexander Holm under CC BY 3.0; see AUDIO-SOURCES.md. The string recordings embedded in Roost are VSCO 2 Community Edition by Versilian Studios under CC0 1.0; see AUDIO-SOURCES.md. Held's instruments are from Versilian's VCSL and VSCO 2, also CC0 1.0; see AUDIO-SOURCES.md. Nonpareil's handpan is GAMEDRIX974's HandPan pack on Freesound and its cello and contrabass are from VSCO 2, all CC0 1.0; see AUDIO-SOURCES.md.

riso-windowseat (sevenevesai/riso-windowseat)

Searching Database…

这是什么?程序化生成的 risograph 风格动画影片,每部都是单个独立的 HTML 文件,由 Canvas 2D 和 Web Audio 构成,还包括制作它们所用的 Claude Code skills、craft 文档和工具。
这些视频是要下载的,还是在浏览器里运行?两者都是:每部影片是一个 index.html,在浏览器里打开并按下播放即可;同时所有渲染好的 MP4——全部为 1080 × 1080、30 fps——都放在 v1.0 release 里。
我如何用它制作自己的影片?在仓库根目录打开 Claude Code,直接提需求即可——比如'做一部 40 秒的 riso 风格影片,讲守灯塔人的一夜。'.claude/skills/ 里的 riso-film、riso-still 和 riso-score skills 包含完整的工作流程及其质量把关。
只是想看看影片,也需要安装 Claude Code 或其他东西吗?不需要——有浏览器就够了。这些文件不自带任何库、字体或图片,也不发出任何网络请求,所以离线也能播放;只有用这套工具创作新作品时才需要 Claude Code。
我可以改动影片的代码而不弄坏它吗?每一帧都是时间的纯函数,所以任何时刻都可以精确查看,导出的 MP4 也不会丢帧——一旦某次修改破坏了这种确定性,hook 会立刻发出警告。
包含哪几部影片?共六部:Window Seat(78 秒,一段夜间火车旅程,配钢琴音乐)、Roost(70 秒,椋鸟群飞)、Held(70 秒,一只只有在有东西拉住线时才能飞的风筝)、Nonpareil(70 秒,大理石纹湿拓纸艺),外加两部 28 秒的短片 Lumen 和 Emergence。
这些影片是怎么做出 risograph 印刷质感的?半调效果是程序化生成的:在 Roost 里每只椋鸟就是一个 2–3 像素的墨点,整群鸟本身就是半调网,当纸面转到侧视角时便堆叠成深色的印刷条带。Nonpareil 的大理石纹是闭式几何,所以每一帧都精确无误。
影片里的音乐和音效来自哪里?来自采样音色库:Window Seat 的钢琴是 Salamander Grand Piano V3(CC BY 3.0),而 Roost、Held 和 Nonpareil 使用了 VSCO 2 CE、VCSL 以及一套 Freesound handpan 音色包等 CC0 素材——全部都在 AUDIO-SOURCES.md 中注明了出处。
影片的质量是怎么检查的?每部作品先在 FILM.md 里做设计,先证明最难的那一帧,然后由 tools/ 渲染帧条、1:1 局部裁切、contact sheet、音频分析和 MP4 导出以供检查;每份 FILM.md 还列出该片尚存的不足之处。
Size
42.7 MB
Stars
297
Age
26d
Commits · 90 Days