Inspiration
Digital art has one unanswerable question: "Why would I pay when I can just screenshot it?" We wanted a piece where the screenshot is obviously not the thing — where what you pay with can't be copied.
Two artists showed the way. In 1959 Yves Klein sold "Zones of Immaterial Pictorial Sensibility" for gold, and asked buyers to burn the receipt so they owned the immaterial completely. Félix González-Torres made candy piles that visitors carried away until the work was gone. Still Breathing puts both ideas into a website, with an AI voice and PayPal as the cash register.
What it does
A slowly breathing WebGL painting talks to you (Claude). It has a price, $88, and it haggles.
- You pay with yourself. Tell it about your day, your taste, a name you still carry, and it comes down. Lowball it, flatter it, or be rude, and that's recorded too. Every turn becomes a line on an itemized receipt:
the 7:40 bus, crying unseen −$24.00,twelve dollars, no reason given −$6.00. The lines always add up exactly to the final price. - PayPal at the agreed price. When you shake on a deal, PayPal Checkout (sandbox) opens for exactly that amount. The server verifies the captured amount before anything is minted.
- An inscription. A line you choose is cut permanently into the parent painting as a hole. The painting is finite: it shows "N% of me remains" and never refills.
- A living child piece. You get a private link to a small painting born from your conversation. Its palette, texture, motion and title come from your taste. Its outline is the shape of the haggle: price drops become soft curves, price rises become sharp notches. It greets you on return visits.
- Burn the receipt. Like Klein's buyers, you can burn your receipt, which irreversibly deletes your words from the server. The child piece is then gilded, and your hole in the parent gets a gold rim.
- Made to share. One tap exports a 9:16 story card for Instagram or TikTok — a museum wall label whose Medium line lists what you paid with, or a thermal receipt. It also exports a 6-second video of the living piece.
How we built it
- Claude (
claude-opus-5-5) plays the painting. Each turn returns structured JSON through a JSON-schema output format: the reply, a new price, deal state, mood, taste genes (palette, texture, motion, title), and a receipt line with its kind (memory / taste / humor / honesty / attention / lowball / flattery / rudeness). The model never controls money directly. The server clamps prices, computes each receipt amount from the actual price change, and validates everything. - PayPal Orders v2 (sandbox) with the PayPal JS SDK buttons. The server creates an order only for the price agreed in that session. On capture it checks the captured amount, makes capture idempotent, and refuses captures from other sessions. Only then is the child piece minted.
- The painting is a single WebGL fragment shader using domain-warped fBm. Every sold piece is a real hole: a 16×32 edge texture encodes each piece's haggle-shaped outline. Motion is driven by spring dynamics in JS (240 Hz fixed step), so gestures settle like a body rather than following a timeline.
- Server: Python standard library HTTP server plus a JSON store. The only dependency is the
anthropicSDK.render.yamldeploys it to Render. - Story cards are drawn on Canvas 2D. The video is recorded from the live canvas with MediaRecorder.
Challenges we ran into
- Making money trustworthy when an LLM is haggling. We split responsibilities: the model proposes, and the server decides. Receipt amounts come from real price deltas, so the receipt always reconciles to the cent with what PayPal captured. A test enforces this.
- Motion that feels alive, not "animated." Our first gesture reactions felt like keyframes. Rebuilding them as damped springs, with the background inhaling while your words fly into the painting, made it feel like breathing.
- Privacy in a work about personal stories. The public API never exposes receipt lines. Only the buyer's private token can read them, and burning deletes them for good.
Accomplishments that we're proud of
- The full loop works end to end: a real AI haggle, a real PayPal sandbox payment, a hole in the parent, and a living child piece.
- The receipt idea turns a payment into a portrait. People read their receipt and recognize themselves.
- A shareable artifact (the wall-label card) that looks like it belongs in a museum, not an app.
What we learned
PayPal is more than a checkout button here; it is the medium. The moment of payment is what makes the inscription permanent and the child piece yours. Paired with an AI that can actually listen, a price becomes a conversation.
What's next for Still Breathing
- An installation version: the parent painting on a gallery wall, haggled with from visitors' phones.
- Venmo as a payment option for the "pay with yourself" moment between friends.
- Limited editions: when the parent reaches 0% it is sold out forever, and its final state becomes the archive.
Note on the demo video: the haggling is live Claude output. The PayPal sandbox buttons are real; to keep the recording short, the payment step uses the app's localhost-only demo sale. The real sandbox checkout (create order, approve, capture with amount check) is in the repo and tested.