A marble race simulator that ends with a video, not a screen recording
RaceCut runs a real rigid-body physics simulation (Rapier) in your browser. Every race is genuinely simulated - seeded and reproducible when you want fairness, steerable when you want a chosen winner - and the output is a rendered 60fps vertical video.
Simulation, not animation
The marbles in a RaceCut video aren’t keyframed. They collide, bounce and overtake under a deterministic physics engine, which is why races are reproducible from a seed and why a “rigged” race still looks real - the simulator searches for a run of physics where your pick wins, rather than faking the footage.
Simulator vs. game vs. RaceCut
| Games (Poki, apps) | Stream tools (Marbles on Stream) | RaceCut | |
|---|---|---|---|
| Real physics | Yes | Yes | Yes (Rapier, seeded) |
| Music-synced course | No | No | Yes - composed from your song |
| Video output | Screen-record it yourself | Stream capture | Finished 9:16 MP4, 60fps |
| AI voices singing per-leader | No | No | Yes |
Under the hood
- Rapier rigid-body physics compiled to WebAssembly - the same class of engine used in games
- Deterministic seeds: share a seed, get the same race
- Beat detection composes the course so drops and overtakes land on the music
- WebGPU rendering and H.264 encoding on your own device - nothing uploads
Seeds, explained in one paragraph
Every race starts from a number - the seed. Same seed, same course, same collisions, same winner, every time, on any device. That determinism is what makes fair races provably fair (publish the seed, anyone can reproduce the run) and what makes rigged races possible without faking anything: the simulator rolls new seeds until the physics happens to crown your pick. It is also why the generator can give you a different race from the same song every day.