Ulric
Book a call
Classic

Case study

The studio tool bench

A private bench of ten small apps that make the client work faster: a proofing bench for social slides, eight brand-wired design apps, and a 3D scrub builder. None of it deploys anywhere. The files it produces are what ship.

ClientUlric · built for the work
Year2026
ScopeLocal tooling · three.js · WebCodecs · ffmpeg
The studio tool bench
Ten appson one local bench
8Ktop export size
Zeroof it ships to a client

Most weeks the client work asks for something no product quite does: prove a slide will survive Instagram's crop before it posts, or stage a 3D model for a scroll hero. When the same fussy step comes up three times, I build a small tool for it. Ten of them now live on a private bench on my desk machine, served by the same local stack I develop on. Nothing on the bench deploys anywhere. The finished files it produces are what ship.

A bench that explains itself

The front door is one page that describes every tool in plain words, per brand: which scrim MindMorph slides take, why Lauren Rose gets guides only until her deck type locks, what the export spec wants for each platform. It checks which tools are actually running before it offers them, so it never hands me a dead link.

Slide Proof

The last check before a slide leaves Photoshop. Drop a render on it and it draws exactly where each platform will crop or cover the image: the 4:5 feed safe zone, the story UI bands, and for Google Business posts a five-by-five grid that enforces the 20 percent text rule. It can lay a brand's locked production scrim over the art to preview how the copy will read, and it exports the proofed version at 2K, 4K, or 8K. The screenshot in the gallery shows it checking a slide that actually shipped.

The design lab

Eight small apps, one effect each, wired to the four brands I work in daily (Ulric, MindMorph, MycoMuse, Lauren Rose). They share one shape: pick a brand, turn a few knobs, export a real PNG or JPG at up to 8K. Studio photos are bundled in, so there is always a one-click source image.

  • Liquid Metal sets a wordmark as true 3D chrome: extruded, beveled type in a mirror studio built from softbox strips, with procedural scratches in the finish and a lighting rig you drag around the model.
  • Orbit is the model stager. Load a library model or drop your own file, swap its materials for studio metal or clay, place each lamp on a ring around it, and export the exact on-screen pose.
  • Post Maker holds one-click campaign presets: a bundled photo, the locked deck scrim, and finished copy land together, and custom mode frees every field.
  • ASCII turns a photo into a halftone dot matrix in brand color pairs, from Bayer dither to scan lines.
  • Bricks rebuilds a photo as a running-bond mosaic with adjustable bevel and shine, plus a switch that snaps every brick to brand colors.
  • Glass lays reeded refraction over a photo, with a frost slider and a brand tint. Leave the pane empty and it refracts the brand's gradient instead.
  • Gradient pours brand backdrops in four moods per brand, with grain to kill banding.
  • Watercolor paints brand pigments on paper grain, and the strokes pool and layer like real washes. It is the one tool missing from the gallery: a wash only reads once a person has painted it, and my robot strokes did not deserve the wall.

Scrubforge

The motion half of the 3D pair. It authors a camera move over any model on a keyframe timeline, six preset moves included and every edit undoable, then exports the move four ways: an MP4 where every frame is a keyframe (which is what scroll scrubbing demands), a PNG sequence, a live three.js embed that scrubs from scroll position, and the move as plain JSON. For model-based scrubs it replaced a whole ffmpeg re-encoding step. It reads lights and cameras straight out of a Blender GLB, so a scene arrives lit the way it was built.

Why they stay local

These are not products. No accounts, no hosting, no updates to babysit, no client ever touches them. A tool that takes an evening to build starts paying for itself the same week, and because each one runs in the browser on my own machine, I can rebuild any of them around the work instead of the other way round. Screenframe, the recorder that framed half the demo clips on this site, sits beside them in the same local stack.

The bench page: every tool explained in plain words, with per-brand guidance and a live check of what is running.
The bench page: every tool explained in plain words, with per-brand guidance and a live check of what is running.
Slide Proof checking a shipped campaign slide: the platform safe zone and the five-by-five text grid over the real render.
Slide Proof checking a shipped campaign slide: the platform safe zone and the five-by-five text grid over the real render.
Post Maker, one click after choosing the MindMorph launch preset: photo, locked scrim, and finished copy land together.
Post Maker, one click after choosing the MindMorph launch preset: photo, locked scrim, and finished copy land together.
Liquid Metal setting the wordmark as beveled 3D chrome. The dashed ring is the lighting rig; drag any lamp around the model.
Liquid Metal setting the wordmark as beveled 3D chrome. The dashed ring is the lighting rig; drag any lamp around the model.
Orbit with the fox from the model library. Every handle on the dashed ring is a lamp; drag one and the pose relights live.
Orbit with the fox from the model library. Every handle on the dashed ring is a lamp; drag one and the pose relights live.
Scrubforge with a Blender-built office open, lights read from the file, camera keyframes on the timeline below.
Scrubforge with a Blender-built office open, lights read from the file, camera keyframes on the timeline below.
ASCII turning the studio portrait into a halftone dot matrix in a brand color pair.
ASCII turning the studio portrait into a halftone dot matrix in a brand color pair.
Bricks rebuilding an image as a running-bond mosaic, every brick snapped to brand colors.
Bricks rebuilding an image as a running-bond mosaic, every brick snapped to brand colors.
Glass bending a shoreline photo through reeded panes, the way it reads through a studio door.
Glass bending a shoreline photo through reeded panes, the way it reads through a studio door.
Gradient pouring the accent across a 4:5 canvas, grain on so the ramp never bands.
Gradient pouring the accent across a 4:5 canvas, grain on so the ramp never bands.

← All work