Brett Swindells I build software end to end. Games, agentic tools, independent products and a decade of client delivery.
Agentic systems An orchestrator handing work to specialists, contexts kept narrow, destructive actions guardrailed away from the model. Product and platform Games and tools of my own: a ship-system space shooter, a note-structuring assistant, a research-led purchase tool and WordPress drafting agents. Client delivery High-traffic platforms for tourism operators, an international airport and a botanical garden. Agentic systems An orchestrator handing work to specialists, contexts kept narrow, destructive actions guardrailed away from the model. Product and platform Games and tools of my own: a ship-system space shooter, a note-structuring assistant, a research-led purchase tool and WordPress drafting agents. Client delivery High-traffic platforms for tourism operators, an international airport and a botanical garden. Three layers of the practice Agentic systems Product and platform Client delivery From the studio
One drawing. One source of geometry. lib/assembly/geometry.ts
export function layoutAssembly(
layers: readonly AssemblyLayer[],
progress: number,
options: DraftingOptions = COLUMNS_DEFAULTS,
): AssemblyGeometry {Practice layers drawn by layoutAssembly From this portfolio’s source: layoutAssembly takes layers and an explosion progress value, then returns the coordinates used by the drawing beside it. These annotations are a present-day explanation of the code. Geometry is calculated once in pure functions. The static drawing and its animated counterpart use the same coordinates.