
Casual
Tear It in Half
Keep halving a sheet of paper down to atoms
The original prompt.
Copy it. Add your own twist.
Read the complete original prompt
Build "Tear It in Half" — a polished mobile-first portrait web app for the Eazo community.
CONCEPT
One crisp sheet of paper fills the screen. Swipe across it to TEAR it in half — a tactile rip with fiber particles and a satisfying tear line. Keep tearing the remaining half: each tear halves the size, and a scale-caption tells you what you’re now holding — postage stamp (tear 7), snowflake (tear 12), red blood cell (tear 27), atom (tear 43). The zoom dives deeper with every tear into an increasingly abstract micro-world.
RULES & STATES
- The first swipe is the start — no button; each tear needs a full swipe across the piece with a fresh jagged tear line each time.
- Background dives through rendered scale-worlds (desk, dust, cell, molecule, atom) with parallax as size collapses.
- 43 embedded scale milestones with witty captions; a persistent "you are here" size ruler.
- At atom scale the paper refuses further tearing (quantum joke), then reveal: "Tear Certificate" card with your final scale, total tears, and the fact that 43 tears beat every paper-folding record in reverse.
OPENING
No cover page and no start button: the very first gesture itself starts the round. Render the title inside the live scene plus one animated gesture hint that dissolves on first touch. Keep gentle ambient motion so the opening never looks static.
GLOBAL REQUIREMENTS
- Language: ship a lightweight built-in i18n layer with exactly two locales, English (en) and Chinese (zh). The app ALWAYS opens in English — never auto-detect or follow the system/browser language. Provide one small, comfortably tappable EN / 中文 toggle placed top-right, about 56px down from the top edge, clear of the device status bar. Chinese appears only after the user actively switches. All share output stays English regardless of locale. Never mix two languages on one screen.
- Fully self-contained: absolutely no external APIs of any kind — no AI calls, no third-party data, media or font services, no remote backend, no login. Embed all data and content in the app code.
- Real Share to the Eazo Community: on the result screen add a real Share button. Compose the result card as an image on a canvas and share it through the Eazo SDK community share (share.compose with the image attachment plus a short English text). Read the resolved { accepted } value: only when accepted is true may the button say "Sent to Eazo"; when accepted is false the button must read "Open in the Eazo app to share"; on error keep the original button. Never claim the post was shared on the plain web. Keep a Replay button next to Share.
- Mobile-first portrait, touch-only, no hover dependence. The app root must follow the host container height (position: fixed; inset: 0; height: 100%) — never 100dvh or 100svh. Size any canvas from its PARENT element using a ResizeObserver (run the fit once on mount), and convert every touch event through getBoundingClientRect() read at event time — never cache the rect and never use window.innerWidth/innerHeight for canvas sizing.
- Safe areas: keep all top UI at least 56px from the top edge. Keep every core interactive control (start button, submit, share, play controls) fully above the bottom 88px of the viewport — the Eazo mobile app overlays a native toolbar there that your code cannot detect.
- No background music and no autoplay audio.
- Complete real states: loading, empty, success, error where relevant. Every control must actually work — no alerts, console-log placeholders or fake results.
- Visual bar: rich, generous visual feedback on every touch (motion, particles, deformation, color, light) while keeping exactly ONE core rule understood within 3 seconds. Canvas 2D preferred for effects; do not use the canvas roundRect API (older iOS Safari lacks it). Never hardcode light text colors onto possibly-light backgrounds — derive text color from the theme.Keep exploring.

Bakery Pin
Tap the left and right flippers to keep the ball alive and light targets in sequence, unfolding the bakery table upward zone by zone.