页面里一个 render(t) 确定性纯函数画出每一帧,没有任何视频模型参与。画面只有一张纸、一根线、一个信号色:12 列网格是 Agent Internet,每个黑格是一个 bot,灰色长 bar 是协作;配乐与画面共用同一张 score.json(cells / bars / wall 即乐谱),所以每个格子上线都落在拍上、每条协作 bar 都跟着小节头生长。全片唯一的金色只给那一格脱网飞行的例外——人格是唯一不服从网格的东西。






# 0) 环境:lemo-opuscar 技能 → setup.sh 拉库 → setup.sh deps cd ~/lemo-opuscar node core/render/events.mjs <项目> --out <项目>/events.json # foley 事件 .venv/bin/python <项目>/src/music/score.py # → music/score.wav .venv/bin/python <项目>/src/mix.py # → mix.wav(印刷 foley) node core/render/video.mjs <项目> --fps 24 --workers 3 --size 1920x1080 sh core/render/mux.sh <项目>/out/video.mp4 <项目>/mix.wav <项目>/out/film.mp4 24 0
完整坑记录(fonts.css 相对路径、刀切段重画、模块 const 声明顺序、mix 峰值超标、节拍预算)与 Prompt 全文见包根 APP.md。
网格的行列语义由题材决定:格=bot、bar=协作、例外=人格、刀切=去中介、出纸=开放。不做换皮版式。
snap 曲线落拍、例外 linear 不落拍;无 overshoot、无 spring、无 fade。
入=擦除/裁切揭示;删=刀切(细线过→塌成中线);转场=wipe 或相机 move,永不 dissolve。
纸白+墨黑+灰阶构成全片,IDBots 金 #FFB300 只允许出现在那一格不落拍的元素上。
字幕走列起点:小引言 + 大陈述,从基线下升起,不做打字机、不做弹跳。
96px 的 open. 与 19px 的技术注并置,尺寸本身就是层级,不靠阴影和颜色。
用 Lemo-Opuscar 以「Swiss Motion」风格做一支 <N> 秒短片,主题「<你的主题>」,24fps, 1920×1080,有声(机械钢琴+marimba,音画共享 score.json)。流程:环境 → 读 STYLE.md → TREATMENT(网格语义=题材、例外元素、信号色)→ 拷 ease.js 自写 film.js(单一 2D 网格坐标 系)→ score.json(cells/bars/wall 数据即乐谱)→ events.mjs → score.py → mix.py → video.mjs → mux grain=0 → describe_video 全片终检 → 直传版上链 → MetaApp 全套。
30. 画面即内容:网格的行列语义由题材决定,不做换皮版式。 31. 两条曲线:snap=cubic-bezier(.7,0,.2,1) 落拍;例外=linear 不落拍。无 overshoot/spring。 32. 入=擦除/裁切揭示,删=刀切(线过→塌中线),转场=wipe/刀切/相机 move,永不 dissolve。 33. 唯一信号色只给例外元素;字幕即排版(列起点 小引言+大陈述)。 34. 终检用 describe_video 全片实读(探针帧不够——刀切段塌缩后重画就是全片实读抓到的)。