MONOCHROME™
initialising webgpu backend 0%
© 2026 — 1-BIT INTERFACE LAYER
[ 001 ] — INTERFACE LAYER WEBGPU · TSL · GSAP · LENIS EST. 2026 / v0.186

MONO CHROME

A 1-bit interface layer for products that refuse to blend in. Ordered dithering on the GPU, inertial scroll, aggressive motion — two colours, infinite signal.

SCROLL ↓
ONE BIT✦ WEBGPU✦ ZERO NOISE✦ PURE SIGNAL✦ ORDERED DITHER✦ TWO COLOURS✦
[ 002 ] — MANIFESTO

We deleted 16,777,214 colours. What remained was the interface.

spec.txt — Notepad

Noise is a design failure.

Every gradient, every shadow, every 8-bit gradient band is a decision you delegated to a renderer. We took the decision back. One threshold, evaluated per pixel, per frame.

FILE: /core/dither.tsl · 512 BYTES
render.log
// ordered 8×8 bayer, per fragment
const cell = px.mod(vec2(8)).floor();
const th = texture(bayer, cell).r;
const lum = dot(rgb, LUMA);
return vec4(vec3(step(th, lum)), 1.0);
OUTPUT: 1 BIT PER CHANNEL · 0 BYTES OF TEXTURE
[ 003 ] — CAPABILITIES
dither.tsl
01 / SHADING

GPU dithering, zero post-stack.

Ordered 8×8 Bayer evaluated per fragment inside the node graph. Every frame is quantised to pure black and pure white before it reaches the display.

60 FPS TARGET · 0 MS CPU READBACK
motion.gsap
02 / MOTION

Aggressive. Never abrupt.

Scroll-linked timelines with frame-perfect easing curves. Motion that hits hard on entry and settles like it was always there.

SCROLLTRIGGER · SCRUB 1.0 · EXPO.OUT
scroll.lenis
03 / INPUT

One breath, top to bottom.

Inertial smooth scrolling that never fights the browser and never fights the timeline. Damped, synced, predictable.

LERP 0.1 · SYNCED TO GSAP TICKER
scene.theatre
04 / AUTHORING

Direct the scene, don't code it.

Animation state authored on a timeline, then driven from a single scroll value. One source of truth for every moving part.

STATE → UNIFORM → FRAME
mesh.opt
05 / GEOMETRY

A million triangles, no loader.

Production geometry streamed and decoded at runtime. The heavy stuff never touches the critical path.

RUNTIME DECODE · 0 BLOCKING BYTES
ship.exe
→ NEXT

Ready to go mono?

Take the layer and ship something people remember. Two colours is all you need.

Get the layer
[ 004 ] — NUMBERS
0
Colours in the system
0M
Colours deleted
0FPS
Sustained frame rate
0KB
Image assets shipped
[ 005 ] — LICENSING
pixel.lic
$0 / forever
  • Full dither node source
  • Single commercial project
  • Community support
  • MIT-ish, honestly
Download
dither.lic — RECOMMENDED
$48 / month
  • Everything in PIXEL
  • Unlimited commercial projects
  • Motion & scroll timeline presets
  • Theatre state files
  • Priority render support
Start building
void.lic
Custom / OEM
  • Everything in DITHER
  • White-label & redistribution
  • Bespoke shader work
  • Named engineer on Slack
Talk to us
M
MONOCHROME™
00:00
Hosted & Compiled with HtmlRunner.com