The Contract That Keeps Signing
Brian Stever
End User Agreement · 2026 · p5.js, interaction design, generative text
Abstract. End User Agreement begins with almost nothing: a white page, a line, and the tiny social pressure of a place to sign. Once the viewer does, the blank page becomes a polished signing interface that starts reproducing the signature across a dense contract. Moving the mouse pauses the machine. Doing nothing lets it continue. The unsettling part is not that the interface looks evil. It looks completely normal, which is how it gets you.
1.The Piece
Interactive sketch
End User Agreement
Sign in the canvas to start. The portfolio version is sandboxed and does not request account information or store signatures.
2.Consent as Interface
The first screen is deliberately plain: a white page, a small X, a line, and the words "sign here." It borrows the emotional language of real signing tools, where friction has been sanded down until agreement feels like the polite thing to do.
After the signature, the document interface takes over. It has all the comforting furniture of enterprise software: top bar, document sidebar, yellow signature tags, disabled buttons, and a contract with the emotional warmth of a printer lease. The clauses get stranger as they go, granting the system access to creative output, future labor, silence, and inaction. The form is ordinary; the terms are not.
3.Interaction Rules
The viewer's body becomes the input. If they keep moving, the system pauses. If they stop, it interprets stillness as permission to continue. Already-copied signatures remain, so the viewer can interrupt the process but cannot fully undo what already happened.
That mechanic is the argument. A lot of modern consent is technically present and practically exhausted. The system asks, the user wants to move on, and the design makes the path of least resistance feel like agreement. It is less "you chose this" and more "you failed to keep resisting this." Very different paperwork, same button.
4.Implementation
The sketch is drawn entirely in p5.js. It records the signature strokes, builds a multi-page contract interface, manages scroll targets, stamps copied signatures into required fields, and ends with a filing modal and receipt sequence.
The portfolio version is intentionally contained. It runs as a sandboxed local sketch, does not request account information, and does not store signatures. A piece about murky consent should probably avoid doing murky consent for real. Low bar, apparently still worth clearing.
5.Reflection
The piece does not need to look futuristic. It feels worse because it does not. The document is crisp, familiar, bureaucratic, and believable. The horror is not a robot voice announcing domination. The horror is a submit button doing exactly what the interface trained everyone to expect.
The whole thing turns on one sentence: if the viewer does nothing, the future still signs itself. Melodramatic, yes. But the interface has a navy header and a progress bar, so legally it is fine.