Third-Person Character Controller
Built by Ian Curtis, this open-source starter project explores how Gaussian splat environments can support realtime third-person gameplay directly in the browser.
The Experience
The project combines Marble-generated worlds with realtime physics, character movement, and interactive camera systems to create a ready-to-fork foundation for splat-based games and interactive experiences.
The template is designed to make it easy to swap in new Marble worlds, characters, and collider meshes without rebuilding the core gameplay systems from scratch.
How It Works
Marble provides both the Gaussian splat environment and paired collider mesh. Spark 2.0 renders the splats while Rapier powers the kinematic character controller and realtime physics simulation.
The system includes movement, jumping, sprinting, orbit cameras, animation blending, and live gameplay tuning through an integrated debug GUI. Developers can replace the splat world, collider mesh, or animated character assets with only a few configuration changes.
Stack
- Marble for Gaussian splat world generation
- Spark 2.0 for realtime splat rendering with LoD
- Rapier3D for physics and character movement
- Three.js for rendering and gameplay systems
The project is fully open source and available on GitHub.
More showcases
October 2026
MuJoCo-GS-Web
Realistic robot physics inside Marble worlds, running in any browser, even on a phone.

September 2026
Humanoid Simulation with Marble
Turning real-world streets into 3D humanoid playgrounds with live physics and browser rendering.

September 2026
Living Scrolls
Bringing traditional ink wash paintings to life as explorable 3D worlds.
