gitwtfhub

wtf is marble-runner?

panterathehacker/marble-runner — explained in plain English

Analysis updated 2026-05-18

15TypeScriptAudience · developerComplexity · 4/5LicenseSetup · moderate

TL;DR

Browser game that drops a Mixamo character into a Marble Gaussian splat world, with WASD movement, Rapier physics, and a Claude Code onboarding flow for custom worlds.

Mindmap

mindmap
  root((marble-runner))
    Inputs
      Marble splat file
      Avaturn or Mixamo avatar
      WASD and mouse
    Outputs
      Playable 3D scene
      Character animations
      Physics collisions
    Use Cases
      Walk through Marble worlds
      Show off custom splats
      Learn splat plus physics
    Tech Stack
      TypeScript
      Vite
      Three.js
      Spark
      Rapier3D

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Walk through a Gaussian splat world in third person from a browser

REASON 2

Drop your own Marble .spz world into the game with a Claude Code prompt

REASON 3

Swap in a custom Mixamo or Avaturn character with idle, walk, run, and jump

REASON 4

Study how Three.js plus Spark renders splats alongside Rapier3D physics

What's in the stack?

TypeScriptViteThree.jsRapier3D

How it stacks up

panterathehacker/marble-runneraredotna/api-examplesceelog/openweread
Stars151515
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderatemoderate
Complexity4/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Custom worlds need a Marble .spz file plus a hand-scaffolded physics collider, the Claude Code prompt automates this.

MIT lets you use, modify, and share the code freely as long as you keep the copyright notice.

Wtf does this do

Marble Runner is a small browser game that lets you walk around inside a Gaussian splat world in third-person. A Gaussian splat is a relatively new way of representing a 3D scene from photographs, popularized in 2023, that produces very photo-real results. World Labs is a company that runs Marble, a service for generating such worlds. This project takes a Marble world file and drops a controllable character into it so you can walk, run, and jump through the scene. The README points to a hosted version at marble-runner.vercel.app where you can play without installing anything. You pick one of five default worlds, choose a character, or make your own using the Avaturn avatar creator in about a minute. Movement is the standard WASD plus Shift to run and Space to jump, with mouse drag for the camera and Tab to open a debug panel. If you have generated your own world in Marble, the README suggests an unusual onboarding path: open Claude Code and paste a prompt that tells the AI assistant to clone the repo, install dependencies, start the dev server, and set up your splat file under a chosen name. The assistant creates a folder under public/worlds, copies the .spz splat file in, scaffolds a flat physics collider so the character has something to stand on, writes a meta.json, and restarts the server. The project is built with TypeScript and Vite. Rendering uses Three.js with Spark 2.0 from World Labs to handle the splat format. Physics uses Rapier3D with a kinematic character controller. Character models are standard Mixamo GLB files with idle, walk, run, and jump animations. The license is MIT, and the README notes Mixamo characters are free for commercial use.

Yoink these prompts

Prompt 1
Set up marble-runner locally with Vite and play the hosted default world list at marble-runner.vercel.app
Prompt 2
Use the Claude Code onboarding prompt from marble-runner to import my own .spz splat under public/worlds
Prompt 3
Replace the default character in marble-runner with a Mixamo GLB and wire up idle, walk, run, and jump animations
Prompt 4
Explain how marble-runner uses Rapier3D's kinematic character controller against a flat scaffolded collider
Prompt 5
Show me how Spark 2.0 from World Labs is initialized in marble-runner to render the splat scene with Three.js

Frequently asked questions

wtf is marble-runner?

Browser game that drops a Mixamo character into a Marble Gaussian splat world, with WASD movement, Rapier physics, and a Claude Code onboarding flow for custom worlds.

What language is marble-runner written in?

Mainly TypeScript. The stack also includes TypeScript, Vite, Three.js.

What license does marble-runner use?

MIT lets you use, modify, and share the code freely as long as you keep the copyright notice.

How hard is marble-runner to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is marble-runner for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.