All work

Browser-based arcade head-soccer game · 2026

Big Ugly Head Ball

Arcade head-soccer where the ball is a giant, grotesque, procedurally generated head.

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 free: biguglyheadball.com

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

Overview

Big Ugly Head Ball is a browser-based arcade sports game: two giant boots kick a giant, sickly-green head around a neon-lit pitch in front of a crowd of roughly 700 turnip-like spectators. First to five goals wins a two-minute match; a tie at full time forces sudden-death golden goal. There’s no download and nothing to install, just a keyboard and a two-minute match.

Highlights

  • A head that acts alive. The ball is a procedurally displaced skull mesh that blinks, glares at whoever’s nearest, and grimaces on every impact.
  • Zero art or audio assets. 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 with WebAudio, not sampled.
  • A living crowd mix. Murmur, chatter, and roar layers track the run of play, with anticipation swells, clap-by-clap applause, and stray fan whistles.
  • A full broadcast goal package. Dual-tone air horn, organ “charge!” stab, net swish, formant-synthesized grunts from the head, a speed-tracking ball whoosh, and a golden-goal heartbeat.
  • An original Suno-composed OST, “The Grimpit Sessions,” with title, match, and stinger cues mixed into the same bus graph as the synthesized SFX so music and effects never fight each other.
  • Broadcast-style post-processing. Bloom, vignette, chromatic aberration, and a warm grade, with 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; nothing is loaded from disk beyond the OST tracks. A custom 2.5D physics layer runs at a fixed 120Hz substep, handling ball restitution, crossbar collisions, kick impulses, and boot-vs-boot shoving. The WebAudio engine is a bussed mixer with a mastering compressor and a procedural stadium reverb, driving stereo-positioned, pitch-varied impacts and the dynamic crowd mix. An EffectComposer post chain layers Unreal bloom, vignette, chromatic aberration, and color grading over the render, and a fixed-step game-state machine (title, kickoff, play, goal, full time) drives both the match rules and the camera.

Process

Built solo end to end: the procedural head and arena, the physics and AI opponent, the full WebAudio synthesis and mixing layer, an original Suno-composed soundtrack wired into the same bus graph as the SFX, and the marketing artwork and share assets for launch.