The drifts did not start as a request for “something cool.” That prompt is too unconstrained: it produces novelty without a standard for keeping or rejecting the result. I wanted a visual system that felt drawn rather than rendered, held together as a family, and could survive being looked at for a long time.

Prompting as specification

I use the model to widen the candidate set, not to make the final aesthetic decision. A useful prompt names the material, the geometry, the motion, the rendering budget, and the things that are forbidden. “Black particles on paper” is a material constraint. “A recognizable silhouette with depth” is an evaluation criterion. “No gradients, no decorative color, no stored meshes” removes easy but uninteresting escapes.

The prompt is closer to a lab protocol than a mood board. I ask for families of mechanisms and parameters, then ask the model to explain what each parameter changes. That explanation matters because it turns an attractive accident into something I can reproduce, perturb, and reject.

The loop

Each pass follows the same sequence: propose a small set of candidate forms, implement the simplest version, render it under the same camera and density limits, then compare it against the brief. The next prompt contains the failure, not just the success: too much symmetry, no readable depth, a silhouette that collapses at small size, or motion that looks like noise.

This is the part of the method that compounds. A rejected candidate becomes a sharper constraint for the next generation. The model is useful for remembering the search space and suggesting variations; the acceptance boundary stays human and explicit.

One executable framework

Every drift is a function evaluated from a point index in the vertex shader. There are no stored meshes. The shared renderer is called by the lab, the hyper review, this note, and the museum, so a study selected in one surface is the same study elsewhere. The renderer supplies a stable coordinate system; prompting supplies candidate equations and families.

That division keeps the method honest. If a form only works because of a special screenshot, it does not belong in the collection. If a parameter cannot be described clearly enough to change, it is not yet part of the framework.

What survives

The retained forms tend to have three properties: a legible silhouette, enough asymmetry to avoid looking like a logo, and a depth cue that remains visible when the field is reduced. Inflating vesicles and dividing amoebas were useful failures because they made the rejection criteria concrete. The archive can be broad; the museum should be selective.

Motion is another constraint

Scroll selects a new study and the shader blends the old and new positions instead of cutting between them. Pointer input adds a local tangential force inside the canvas bounds. The renderer pauses when the page is hidden, limits pixel density, and respects reduced-motion preferences. These are not polish added after the fact; they determine which forms are acceptable in the first place.

Where it started

The visual reference was a July 25, 2026 post by @yuruyurau ↗. It is a compact p5.js sketch: trigonometric functions map 10,000 indexed points into an organic, squid-like form that pulses and folds as time advances. A related @crabhive thread ↗ made the same connection between short equations and life-like motion. I took the reference as a question, not a template: how much structure can be recovered from a point index, a few equations, and a strict visual language?

The first portfolio prompt asked for that kind of mathematical animation while keeping the field monochrome, sparse, and quiet. On July 26, the search moved from a single organic reference to explicit hyperdimensional forms: a projected 4D shape, manifold families, larger batches of variants, and a review surface for comparing them. The retained collection came from that sequence, not from a pre-existing asset library.

Provenance

The local OMP record places the reference prompt at 2026-07-25T23:26:53.921Z, the first hyperdimensional revision brief at 2026-07-26T02:27:22.399Z, and the nested-shell implementation handoff at 2026-07-26T02:51:01.349Z. The 24-study comparison lab began at 2026-07-26T05:00:23.949Z; later prompts added 48 studies, then a 100-study hyperdimensional bank and a dedicated review surface. On July 28, the animation note was renamed from “forms” to “drifts” and given timed transitions. The August pass made the prompting method explicit. Those dates describe the actual working sequence rather than an inferred story assembled from the finished files.

The final drift is therefore a result of visual prompting, executable constraints, and repeated human rejection. The model widened the search; the renderer made each candidate inspectable; the collection kept only what survived comparison.