All work

Arcade Head-Soccer · 2026

Big Ugly Head Ball

Arcade head-soccer, except the ball is a giant, grotesque head that blinks, glares, and grimaces every time you boot it.

Big Ugly Head Ball

Big Ugly Head Ball

Arcade head-soccer under the floodlights of The Grimpit. The ball is a giant, grotesque, procedurally generated head. First to 5 goals wins.

Play Now

Built with: three.js · Vite · Web Audio API · custom 2.5D physics · Custom OST.

Overview

Big Ugly Head Ball is an arcade sports game: two giant boots kick a sickly-green head around a neon-lit pitch while roughly 700 turnip-shaped spectators watch from the stands. First to five goals wins a two-minute match. Tie at full time and it goes to sudden-death golden goal. Nothing to download, nothing to install, just a keyboard and two minutes.

Highlights

  • A head that acts alive. The ball is a procedurally displaced skull that blinks, glares at whoever’s closest, and grimaces every time you boot it.
  • No art or audio files. Every mesh, texture, and material is generated in code, down to the canvas-drawn pitch and the instanced crowd. Every sound effect is synthesized live rather than sampled.
  • A crowd that follows the match. Murmur, chatter, and roar layers track the run of play, with anticipation swells, clap-by-clap applause, and the odd fan whistle.
  • The full broadcast treatment. Dual-tone air horn, an organ “charge!” stab, net swish, formant-synthesized grunts from the head, a ball whoosh that tracks its speed, and a golden-goal heartbeat.
  • An original soundtrack. “The Grimpit Sessions,” composed in Suno, with title, match, and stinger cues mixed through the same bus graph as the effects so music and SFX never fight each other.
  • Broadcast-style polish. Bloom, vignette, chromatic aberration, and a warm grade, plus hit-stop, screen shake, slow-mo goal celebrations, and an FOV punch on every kick.

Tech and Architecture

three.js is the only runtime dependency, and nothing loads from disk beyond the soundtrack. A custom 2.5D physics layer runs at a fixed 120Hz substep and handles ball restitution, crossbar collisions, kick impulses, and boot-versus-boot shoving. The audio engine is a bussed Web Audio mixer with a mastering compressor and a procedural stadium reverb, driving stereo-positioned, pitch-varied impacts and the dynamic crowd mix. A post chain layers bloom, vignette, chromatic aberration, and color grading over the render, and a fixed-step state machine (title, kickoff, play, goal, full time) drives both the match rules and the camera.

Process

Built solo, start to finish: the procedural head and arena, the physics and AI opponent, the whole Web Audio synthesis and mixing layer, an original soundtrack wired into the same bus graph as the effects, and the marketing artwork and share assets for launch.