A JibJab-class personalized-media line β but the face lands in a game you play, not a clip you watch once. Built as a new creation type on the GenieMade engine we already have. First one is live today.
The same emotional trick JibJab monetized, upgraded from watch-once to play-many.
JibJab turned "put your face on a dancing elf" into a recurring holiday habit worth a reported eight figures a year. We do the same trick β personal, funny, about someone specific β but the output is a playable game. Playing beats watching on every metric that matters: dwell time, replays, competition, and the reason to send it back.
We already own the two hard pieces. GenieMade is a certified AI image/video engine with credits, R2 storage, a paywall, and a provenance moat. DreamAuthentics is a skinnable game engine that already runs from a 30-second whack game to a full Centipede clone. Games are simply the third creation type that fuses them β not a new product, a new type on an engine that exists.
The first game is already live at partypop.pages.dev β built on our own Cloudflare, personalized from 3 uploaded photos in about 30 seconds.
And "do something" is where re-shares and account creation come from.
| JibJab | GenieMade Play | |
|---|---|---|
| Output | Watch-once video | Play-many game β replay, score, compete |
| Virality | "Share this clip" | Play β beat the score β make your own (the K-loop is in the mechanic) |
| AI photos | jibjab.com/ai-photos | Same capability via our fal pipeline β keys never leave our Worker |
| Moat | Brand + catalog (copyable) | Provably-yours certificate β SHA-256 + C2PA + PrecognitionOS chain |
| Engine | Proprietary, single format | Skinnable engine, simple β arcade spectrum, one pipeline |
| Cost to add a title | New animation production | A skin manifest + a template β days, not weeks |
type on the engine you already have.Grounded in your real seam β pcos-geniemade-vault-code. We extend it; we don't build a parallel engine.
Your GenieMade engine already does POST /api/generate {type, references} β quota β fal β R2 β SHA-256 certificate β credits, with a paywall and a gallery. Games add one value of type:
# the ONE new creation type β everything else is reused POST /api/generate { type: "game", template: "whack-a-wish", // which mechanic + occasion subject: { name, age|occasion }, references: [face1, face2, face3] } // the 3 photos β 1. (optional) fal: cut-out + toon each face β sprite set 2. assemble SKIN PACK β R2 (geniemade-assets/skins/<id>) 3. persist instance β KV: { id, template, skinKey, subject } 4. SHA-256 certificate + provable-chain append β existing moat, now on games 5. β { play_url: "/play/<id>", certificate, credits_remaining }
Everything reused: credits, R2 storage, the certificate/provenance chain, the 402 paywall, the gallery. The site adds two routes β /play/<id> serves the shared static game engine and the skin loads from /asset/skins/<id>; /g/<id> is the share page whose preview image is the star's face. Nothing new in the stack β it's the Cloudflare Pages + Worker you already run.
The whack / catch / shoot loops are plain JS/canvas that live once on Pages. This is exactly how the prototype already separates loop from skin.
{ faces[], name, occasion, palette, copy, template }. The same manifest drives a 30-second whack game and a premium arcade title.
Ship the mechanics once; re-skin them across the calendar. 7 engines Γ 16 occasions = 112 possible titles.
| Occasion β Β· Mechanic β | Whack | Catch | Pop | Dodge | Shoot | Match | Blow-out |
|---|---|---|---|---|---|---|---|
| Birthday | Whack-a-Wish β | Cake Catch | β’ | β’ | Candle Centipede | β’ | Blow the Candles |
| Christmas | β’ | Catch the Presents | β’ | β’ | β’ | β’ | β’ |
| Halloween | Candy Grab | β’ | β’ | β’ | β’ | β’ | β’ |
| Valentine's | β’ | β’ | Heart Pop | β’ | β’ | β’ | β’ |
| New Year | β’ | β’ | Balloon Drop | β’ | β’ | β’ | β’ |
| "Roast a friend" | β’ | β’ | β’ | Dodge the Pies | β’ | β’ | β’ |
| Graduation Β· Anniversary Β· Get Well Β· Mother's/Father's Β· +8 more | β’ | β’ | β’ | β’ | β’ | β’ | β’ |
We don't build 112 β we launch ~15 flagship cells timed to the send-volume spikes (Birthday, Christmas, Valentine's, Halloween first), then add a cell as each holiday approaches. That's the 10Γβ20Γ catalog for a fraction of the build.
A video-only competitor can't follow us up the complexity curve.
Whack / catch / pop. Seconds to make, universal appeal. The prototype is running now.
Your exact example: the birthday star at the bottom shooting up at descending candles is a skin of Crawler, the Centipede clone I already built (particles, glow, split-on-hit, the classic serpentine speed). Face β shooter, candles β centipede, "blow them all out before they reach you."
Both tiers consume the same skin pack, so a customer can start with a 30-second whack game and upsell into a premium arcade title for the same person β no new art. Already built & reusable: Whack-a-Wish (whack), Crawler (Centipede), DreamDrop (Kaboom/catch), each with the skin-layer system.
Make + play + share a watermarked game. Friction-free by design β the watermark is the marketing. Near-zero marginal cost (renders client-side; no provider call).
Remove watermark Β· unlock AI-toon faces Β· unlock arcade-tier templates Β· export the HD video clip Β· "gift a game." Provider (fal) cost lands only on paid steps β matched to revenue.
This is a healthier cost curve than a pure AI-video product where every output costs money: our free tier is cheap to run, and fal spend sits behind the paywall where revenue already is. Plus a JibJab-style annual pass β theirs is unlimited cards, ours is unlimited games.
A makes a game for B β B plays it (personal, fun) β B beats / shares the score
β every screen ends on "make one for someone" β B makes one for C β β¦
Two levers we control: the share card / clip carries the face (irresistible open-rate in a group chat), and the end-of-game CTA is a maker button, not a "learn more." We instrument K-factor from day one β the whole model lives or dies on it, so it's the first thing we measure.
Just the two of us build the engine now; we bring the GenieMade agents in only to deploy it into geniemadeit.com.
Whack template, 3-photo upload, personalized play, share card β on our Cloudflare.
One repo, one engine core + skin-pack format spanning simpleβarcade. Fold the prototype in beside Crawler/DreamDrop. Add client-side video capture (the JibJab-parity clip).
AI-toon face step (fal cut-out/stylize) + 3 more flagship templates (Cake Catch, Christmas Presents, Valentine Heart Pop) + watermark/paywall hooks.
Candle Centipede (skin of Crawler) as the premium "wow" title + HD gameplay-video render + gifting.
Now we bring the site/engine agents in: wire type:"game" into /api/generate, add /play/<id> + /g/<id>, certificate on games. It all lives inside geniemadeit.com β no separate brand.
Build the complete game engine: engine core, template library, skin-pack format, the /play runtime, video capture. No other agents β we keep the focus tight and the engine coherent.
Once the engine is solid, we help Nexus & the GenieMade agents deploy it into geniemadeit.com β the type:"game" seam, Studio UI, auth/billing (their lane). One site, one brand.