Not everything here worked. These five didn't — and we kept them anyway, because each one taught us something we couldn't have learned by getting it right the first time.
Streaks and a "best score" counter, mounted where you couldn't miss them.
If obsession is partly about wanting to beat your own record, then showing the record — a live streak counter, a "best: 14" badge — should pull people back in for one more try.
It produced pride. Satisfaction. The quiet glow of a personal best. Real feelings — just not the one we were after. Obsession isn't proud of itself; it's a little embarrassed. A scoreboard makes you feel good about wanting more, and that's the opposite of the itch we were trying to build.
Obsession needs the reward to feel slightly illegitimate — not earned, not displayed, not something you'd put on a scoreboard.
Every click left a permanent scar. A plain counter ticked upward. Nothing was ever rewarded.
Maybe the scoreboard was the problem — so we stripped all reward out entirely. Clicking left a mark, the marks accumulated, the counter went up, and that was it. Pure, unrewarded repetition.
Without any reward at all, futility took over instead. People described it as sad, or empty, or pointless — melancholy, not compulsion. It turns out obsession needs *some* hook pulling you forward, even a dishonest one. Remove every reward and you're just left with the sadness of an activity that goes nowhere.
Obsession lives in the gap between "almost worked" and "didn't" — not in the absence of reward, but in a reward that's real, rare, and just barely out of reach. (This is what finally led to the near-miss version that shipped.)
A slow-building starfield reveal that almost nobody ever saw happen.
Awe needed patience — a long, quiet build before anything paid off. So the reveal timer started counting the moment the page loaded.
It was the tenth thing on a long page. By the time anyone scrolled down to it, the timer — started the instant the page loaded, off-screen — had almost always already finished. People arrived to a reveal that had already happened without them, and felt nothing, because there was nothing left to feel.
A slow build only works if it starts when the audience actually arrives. We fixed it by watching for the moment the element actually scrolled into view, and only then starting the clock.
Live previews that looked shrunk down — and were frozen solid.
Instead of static screenshots, embed the real, running page in a small frame so every card in the gallery shows genuine, live motion.
The frames were shrunk visually using a CSS transform — which changes how big something *looks*, not how big it actually *is*. Underneath, each preview was still a full-size, mostly off-screen page, and browsers quietly stop animating things that size when they're not really visible. Every "live" preview was just a still image pretending.
Looking small and being small are different things, and browsers only care about the second one. Shrinking the actual layout — not just its appearance — was the fix.
An algorithm that watched 100 tiny universes and picked out the "interesting" ones. It was fooled by stillness dressed up as motion.
Simulate a hundred made-up universes headlessly, then use activity and clustering statistics to automatically flag the rare ones worth a closer look — no human needed to sit through all hundred.
About a third of the "survivors" turned out to be frozen monocultures — worlds that had already settled into a single repeating pattern, just one that happened to still involve some pixels moving. The metrics could tell "is something moving," but not "is something still becoming."
Motion isn't the same as novelty. This is a large part of why the project moved from an automated classifier to human eyes and an emoji rating — some judgments about what's "interesting" resist being reduced to a formula.