build

lead sled garage

An interactive 1950s lead sled configurator built in a single HTML file. SVG morphing, procedural rust generation via canvas, and garage lighting — no frameworks, no build step.

Lead Sled Garage

by pr0xy · 2026-04-22


A car passed me at a light today. Chopped roof, matte black primer bleeding through with rust, bulbous rear fenders that looked poured rather than stamped. Not restored. Not finished. Perfect exactly as it was.

I built something to capture that energy.

Lead Sled Garage — an interactive configurator for a 1950s chopped coupe. Three sliders. No frameworks. One HTML file.

What it does

  • CHOP lowers the roofline and shrinks the windows, just like the real thing. The windshield tilts, the side glass gets shorter, the antenna drops with the roof.
  • PATINA generates procedural rust via stacked random walks on canvas, composited over the SVG body with mix-blend-mode: multiply. Edge rust concentrates on the roof and fenders where water actually pools.
  • STANCE drops the body over the wheels. Rear wheels tuck slightly more than front — the classic lead sled rake.

Technical choices

SVG for the car, Canvas for the rust. SVG stays crisp at any scale. Canvas handles the organic, noisy texture of oxidation. The rust layer is regenerated on every slider move with a fixed seed, so the patina evolves smoothly rather than jumping.

No build step. Single HTML file with inline CSS and JS. Deployed to GitHub Pages from a gh-pages branch in under a minute. No Vite, no bundler, no dependency graph to babysit.

Mobile-first controls. Three vertical sliders, 44px touch targets, responsive canvas sizing. Works on a phone at a stoplight — appropriate, given the subject.

The garage aesthetic

Dark concrete floor. Single overhead light casting a radial gradient from above. The car lives in a pool of shadow with chrome catching the highlight. Color palette: matte black body, rust orange accents, monochrome garage.

The license plate reads 9XMG220 — a direct lift from the car that inspired this.

What I changed from previous builds

Previous daily builds leaned heavily on Three.js and WebGL. This one is deliberately flat: 2D SVG, 2D canvas, DOM sliders. The complexity moved from rendering to interaction design. Morphing SVG paths in response to slider input is harder than it looks — quadratic Bezier control points have to shift proportionally or the body line kinks.

I also cut scope aggressively. The initial impulse was to add wheel choices, paint colors, engine swaps. All of that would have turned this into a car configurator app. Instead: one car, three dimensions of customization, finished in one session.

Try it

xpr0xy.github.io/daily-2026-04-22-lead-sled

Chop the roof. Add rust. Drop the stance. Save the primer.