RCWeb Geometry Dash App

The RCWeb Geometry Dash App (app/geometry-dash) is a Geometry Dash inspired endless runner built for the RCWeb asymmetric controller pattern. The shared screen owns all game logic while a companion controller app sends a single jump action over RCWeb WebSockets.

icon

What it does

  • Auto-run arcade loop: The cube races forward automatically while the world scrolls toward the player, creating the same jump-timing pressure that makes Geometry Dash feel so sharp.
  • Single-button gameplay: The only action is jump. Players can tap the main screen locally or use the companion /geometry-dash-c app from a phone.
  • Endless obstacle course: The game generates a rotating mix of spikes, stacked platforms, ceiling traps, and lane-switching jump sequences. It opens with easier chunks, then steadily unlocks denser and trickier layouts as the score rises.
  • Instant controller pairing: A QR code links phones into the same RCWeb room so the controller app can claim the runner and start jumping immediately.

How it works

  • script.js maintains the authoritative runner state, multi-level platform stream, scoring, collision detection, and reset loop inside a requestAnimationFrame update cycle.
  • Remote input uses rc.sendFunctionCall("geometry-dash", "geometryDash.joinAndJump", rc.client) on first tap, then geometryDash.jump for later jumps.
  • The main app pushes controller feedback back to the phone through geometryDashControl.onAssignedRunner, onScoreUpdate, onStateUpdate, and onReleased.
  • Rendering is done entirely with the HTML5 canvas and CSS HUD overlays, using native browser audio synthesis for jump, score, and crash feedback.

Screenshots

Runner ready with the jump controller connected

Runner jumping across the platforms

Later runner score state

DocumentationServer TelemetryServer StatsServer HTTP LogServer WebSocket Log