0.03FF0001 / LAT 36.1684 / LON −86.7816
BUILD 39e7b1a / 2026-08-03 / NASHVILLE, TN
visualfinesse
email github linkedin
§ Work / Foster Design SystemIn progress

Foster Design System

2026-01 → ongoing · 22 commits · TypeScript · SVG · Astro · property-based testing

Two iterations of one idea: that visual design can be generated rather than drawn, and that generated design is only usable if it is perfectly reproducible.

The problem

Generative art for a brand has an obvious failure mode. If the same inputs can produce different output on a different machine, in a different runtime, or after an unrelated change, then it cannot be used for anything that has to stay the same twice. A logo that shifts between builds is not a logo.

"Seed the random number generator" is the answer everyone reaches for first, and it is not enough.

Iteration one: the shape library

A TypeScript monorepo turning a seed plus a config object into SVG. The promise on the tin: same seed plus same config equals same output, always, on any machine.

Reproducibility was treated as three separate problems, because it is three separate problems:

  • The generator itself. mulberry32 implemented entirely in int32 space, using integer multiplication and explicit coercion so state transitions never touch floating point at all. A PRNG that drifts through a float is a PRNG that can differ across runtimes.
  • Stream independence. Each shape derives its own sub-seed from a distinct prime constant, so shapes draw from independent streams. Without this, adding a shape shifts every later shape. The output changes because of something that should not have affected it.
  • Emission. Every coordinate is pinned to six decimal places before it becomes a string, so float formatting differences cannot leak into the markup.

The tests assert the property those sub-seeds buy, not merely that output repeats: changing one shape's configuration leaves a sibling shape's output byte-identical. That is the claim worth proving, and it is a stronger one than "deterministic".

465 tests, written in three days.

Iteration two: applying it to a page

The same thesis moved up a layer: a blog where presentation is generated per post rather than themed. A single integer seed derived from the post's slug and publication date drives a deterministic walk that makes every visual decision on the page.

Two posts are never styled the same. The same post is always styled identically. Both properties come from the same machinery as the shape library. The difference is scope, not approach.

292 tests and a set of pinned output snapshots.

Where it stands

In progress, and honestly: the determinism guarantee is fully engineered in one package of the shape library rather than uniformly across all of them, and the blog's generator is finished while its asset library is still empty. The hard part, proving reproducibility rather than assuming it, is done. The breadth is not.