whaleyxbt/claude-motion

web-sims

Build a simulation-style video (agents, particles, 3D machines, fly-throughs) as one HTML page whose render(t) is a pure function of time, then capture it frame by frame to a 60 fps mp4 with sims/capture.mjs.

查看源码
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

Web sims

Read sims/README.md first; it has the contract and every command.

When to use this instead of Remotion

  • Hundreds of moving things with their own rules (agents, particles, crawlers).
  • A 3D object or machine the camera moves around or flies through.
  • Anything that is easier to write as a three.js or canvas page than as React.

Motion graphics with type, UI and timed reveals stay in Remotion (src/).

Workflow

  1. Agree on the idea, the hero moment and the length with the user. Default

format: 1080×1350 layout (4:5), 60 fps, 20–24 s.

  1. Put every beat in a timeline.json next to the sim (chapters, the hero

moment, camera keys). Sound scripts read the same file.

  1. Start from the closest example: crawlers (agents on DOM text),

dossier (the same plus screen-space overlays), engine (three.js object with cutaway, chapters, fly-through, exploded view, generated sound).

  1. Simulate anything stateful once at load; render(t) only reads it.
  2. Build: node sims/build.mjs <name>.
  3. Review with stills at every beat:

node sims/capture.mjs <name> --stills 0,2,5,8,12,16,20 --cols 4 --out out/sims/<name>-review.png. Open the sheet and check it like the review loop says: frame 0 strong, one focal point per frame, nothing blown out by bloom, text readable on a phone, labels never cover the subject. Fix and repeat.

  1. Sound: a music track (--music, the sim gets cfg.beats and should hit

the drop), a generated bed (python3 sims/<name>/sound.py like sims/engine/sound.py), or both mixed with ffmpeg first.

  1. Capture: node sims/capture.mjs <name> --size 1080x1350 --out out/sims/<name>.mp4

and look at a sheet of the final file before calling it done.

Lessons from the examples

  • Bloom eats detail: keep emissive and additive layers under ~1.0 and raise

them only for the one hero moment.

  • Glossy metal plus a low sun gives white streaks. Use roughness ≥ 0.45 and

envMapIntensity ≈ 0.5 on big surfaces.

  • One hero object beats a crowd. If parts hide the subject, move them out of

the way or fade them.

  • Chapters + a one-line caption per step + labels with real numbers make a

simulation read as an explanation, not just eye candy.

  • A camera that flies through the object is worth more than ten orbits.
来自同一仓库

更多 Skills

全部 Skills