INKWAVE Technical Overview

INKWAVE is a client-side Three.js game distributed as static files. Everything in it — characters, animation, weapons, textures, props, sound effects and music — is generated in code; the only downloaded assets are two fonts.

Key facts

  • Renders with three.js r186, vendored and loaded as plain ES modules
  • No build step to run the game; any static file server works
  • Custom render pipeline: MSAA HDR, GTAO, bloom and a grade pass
  • Ink is painted into a 4K texture atlas while a CPU grid tracks turf and gameplay queries
  • Hosted as a static site; the game and website run without server-side code
  • Released under the MIT license

Rendering

INKWAVE renders through a custom pipeline built on three.js: an MSAA HDR target, optional ground-truth ambient occlusion (GTAO), UnrealBloom, and a grade pass that applies vibrance, log-space contrast, split-toning and a vignette before output. Quality presets run from Low to Ultra, so the game scales to the available GPU.

Ink simulation

Ink is painted in texture space. Every paintable face owns a region of one 4K atlas, and splats are drawn into it on the GPU while a coarse CPU grid keeps the turf score and gameplay queries in sync. The level shader layers the ink over the surface with its own height, gloss and wetness, which is why fresh ink shines, dries over time and drips down walls.

Stages and characters as data and code

A stage layout is a list of boxes and ramps for one half of the arena; the other half is the same geometry rotated 180 degrees, so both teams always play an identical field. Ambient occlusion is baked offline.

Characters are fully procedural: geometry, materials, a 60-bone rig and every animation are code, driven by a spring-based pose system.

Systems and events

Weapons, actors and the match emit typed events; effects, HUD and audio subscribe. The game also exposes a freeze/step debug interface, so filmstrips, handling measurements and bot simulations are reproducible frame by frame.

This website

The official site is a static Astro build served as Cloudflare Workers Static Assets. Every page you are reading is pre-rendered HTML; the game itself is a separate static application served under /play/. The website source is at github.com/rayGoMoon/ink-wave-game.

Browser support

Chrome and Edge are the target browsers, Firefox works, and Safari runs but is slower. A discrete or recent integrated GPU is recommended for the High preset. Gamepads work on the HTTPS site.

Source and license

The game source is at github.com/jaydendavisnc/inkwave under the MIT license. INKWAVE is an independent project and is not affiliated with Nintendo.

No install · no account

Ready to paint?

INKWAVE loads in your browser in seconds. Open the game to pick your squidkid, or jump straight into a three-minute match against bots.