Work
Projects
Garment Construction Decoder
Structured technical breakdown for garment construction
A tool that takes a garment description and returns a structured technical breakdown a sample maker can actually use.
Generative Textile Pattern Tool
Living patterns generated from collection concepts
Enter a collection concept and generate a living textile pattern. Palette and structure are AI-suggested, then fully adjustable. Exports as SVG.
Museum Label Generator
AI-powered interpretive text for cultural institutions
A tool that generates six interpretive text formats from a single artwork description. Built to support human editorial control, not replace it.
Experiments
Unfinished on purpose. Each one exists to work out a single technique in isolation, which is usually where the interesting problems turn up first. They run in the browser, here on the page.
One canvas, no DOM elements. The shirt is a Path2D, so isPointInPath decides whether a stroke lands on the garment and clip keeps the thread inside the silhouette. The drawable area is the shape itself, not a rectangle standing in for it. Points are only recorded past a minimum distance, so a slow drag doesn't pile up hundreds of coordinates in one spot, and the whole layout, swatches included, is recomputed from the canvas size on resize.
One buffer holds both states. With no face it's a slow ring, and when tracking starts each point is handed a new target and interpolates toward it, so the idle animation becomes a face instead of being replaced by one. Detection and rendering are separate loops, so the render keeps interpolating at full frame rate while the detector only runs on new video frames. The camera stays off until you press the button, and if it's refused, WebGL is missing, or reduced motion is on, it falls back to the idle cloud rather than breaking.
Experience
Design and front-end work, and the four years of developer advocacy in the middle of it. Where the evidence survives, it's here.
Ran a tournament to stop teams rebuilding the same tools
150 engineers took part; 40% of internal tools reached the top standard
Read the full case InternalBuilt the demo for Wix's first DevCon, then keynoted it
77% of the conference built an avatar with it
Read the full caseRebuilt a travel system nobody could maintain
The legacy system was retired
Read the full case InternalPrint campaigns, and the site they pointed at
Ran in Variety, Cinefex and Blickpunkt; visits up 10%
Read the full caseChanged the survey, not the sample
One week outdrew five weeks of the original
Read the full case