lurch.dev

building things that lurch forward

The Lurch Manifesto

We don't walk in straight lines. We lurch — pitching forward with reckless momentum, catching ourselves just before the fall, turning stumbles into strides. Every great piece of software started as someone's unsteady step into the unknown.

Latest Experiment

const lurch = (direction) => {
  const angle = Math.random() * 360;
  const force = chaos(direction);
  return stumble(angle, force)
    .then(recover)
    .then(build);
};

Build Weird Things

The best tools emerge from the margins. From the glorious mess of experimentation. From the 3AM conviction that this absurd idea might actually work.

Toolbox

Rust TypeScript WebAssembly Node.js Python Go SVG WebGL
The only way to do great work is to love what you do — even when it lurches sideways.

Project: Stumble

A Generative Art Engine

Procedural geometry meets controlled chaos. Feed it constraints, watch it create patterns that no human would design — but every human can feel. Built with Rust and WebAssembly.

Embrace the Stumble

Every bug is a lesson. Every failed deploy is a story. Every refactor is a chance to find elegance in the wreckage. We don't polish until it's perfect — we ship until it's honest.

Let's Build

Got an idea that's too weird for the boardroom? An experiment that needs a co-conspirator? A project that lurches in unexpected directions?

Project: Shamble

Real-Time Collaboration

A CRDT-based editor that embraces conflict instead of resolving it. When two people edit the same line, the result is a creative collision — not a merge conflict.

shamble.on('conflict', (a, b) => {
  return compose(a, b);
});

Curiosity First

Follow the thread, even when it leads somewhere strange.

Ship Honestly

Imperfect and real beats polished and hollow.

Embrace Chaos

The best patterns emerge from beautiful disorder.

Open Source

// lurch-core v0.4.2
pub fn momentum(state: &State) -> Vec<Action> {
    state.impulses
        .iter()
        .filter(|i| i.energy > THRESHOLD)
        .map(|i| i.into_action())
        .collect()
}

Currently Lurching Toward

WebGPU Experiments

Compute shaders that generate impossible geometries. Because the GPU shouldn't have all the fun without us watching.