What shipped
The About page now draws Caleb and Ryan out of particles. Not a photo with dots over it: the portraits are the same field that pours into the mark on the home page, gathered into two faces, and they come apart into it again when you move your cursor across them.
It went live on 2026-08-28 with the merge of the site's fourth pull request.
What it took
Nine rounds in a single day, five different reveal models, and most of them rejected. The record, in order:
- A likeness that was only just a likeness. The first pass rendered the faces at one dot density, and at that density you could tell they were faces without being sure whose. The fix was auto-exposure: the field decides its own density from the brightness of the source, so dark eyes and bright cheeks get different treatment.
- The cursor lens. A magnifier that resolved the dots under the pointer into the photo. Rejected the same afternoon: it made the portrait a trick rather than a person. A softer version, the whisper lens, lasted one round longer and went the same way.
- The wake, the shake, the name. Three ideas for what the pointer should do. The wake survived as a principle (the pointer disturbs, it does not reveal), the shake did not, and the name appearing on hover became the caption that was already there.
- The crossing weave. Two portraits, one field: when the pointer leaves one face the particles cross over and weave into the other. This is the interaction that stayed.
- Instant in, weave out. The last change to the motion itself. Arriving on a face should be immediate; leaving it should be the slow, visible part.
- The blue ink. In light mode the particles rendered blue instead of the brand's deep teal. The root cause was a theme check that consulted the operating system instead of the page: the site's theme is one attribute on the document, and anything that asks the OS will be wrong for the visitor who chose otherwise. Every particle system on the site now reads only the attribute.
What we would tell a client
Three things from the log, none of them about faces.
- The rejected versions were the work. Five reveal models were built properly enough to judge, and four were thrown away. That is not waste; the survivor is only recognisable because the others exist.
- The cheapest bug was the most important. The blue ink fix was a few lines. It was also a class of bug (asking the wrong source of truth) that the same day's audit found in a second component. Fix the class, not the instance.
- Motion has to mean something. Every effect that made the portrait a gimmick was cut. What stayed is the one that says the thing the page is about: two people, one field, the same dots.
The portraits are on the About page. The field they come from is the one that runs the front page.