01Overview
One good pup, six ways to play.
Three games to bounce and three to think, each with a world, power-ups and a song of its own. All six pay into one purse, and the purse dresses the pup.
Three to bounce
SKY HIGH climbs to space, SHRINE HOP threads shrine gates, BATH TIME crosses a toy town ahead of the bath. A tap or a drag plays every one of them.
Three to think
PUP QUIZ counts a crowd, PAW PAIRS remembers a board, ODD PUP OUT spots the one pup not like the others. Each gets harder the longer your streak runs.
One wardrobe
Every game pays bones. Ten bones open a Mystery Bone, and the cards fill a wardrobe of 150 things to wear, one rack for every part of the pup.
02Ten screens










Or just scroll down. The game is right there.
01SKY HIGH
The climb with no top.
The pup bounces on its own. You drag to steer and tap once for a jump in the air.
Nothing can be fought, so every ledge is a choice: read it, pick the safe end, commit. The climb runs from a sunny meadow through deep space and red Mars to a rainbow summit, past giant turds, mailmen, squirrels, UFOs, balloon Martians and lucky cats, on ledges that fly, stretch, blink out and color themselves in.
- PlayDrag to steer, tap for the air jump.
- Power-upsThe Bubble saves the pup once. Tiny, Slow-mo and the Magnet. Five bones carried make a balloon ride.
- Score and payMeters climbed. The bones on the ledges.


Saves the pup once, from a fall or a bump.

Swings a paw through an arc. Land when it is down.

Solid once. Land on it and the wax runs out.
02SHRINE HOP
One tap, one gap at a time.
One tap bounces the pup up and gravity brings it back down. A pillar or the raked floor ends the run.
Pairs of vermilion shrine pillars slide in at one steady speed, a gap in each: hard from the first gate, and fair at every one. Every twenty gates the light moves on, from dawn over Mt Fuji to a moonlit night, and the song is the clock: it quickens a lap at a time, and the band gains a player at 10, 25 and 50 gates.
- PlayTap to bounce.
- Power-upsGHOST flies through anything. The LUCKY CAT opens the next six gates wide.
- Score and payGates. A bone every three.


Six seconds see-through. Nothing can touch the pup.

The next six gates open wide.

The gate that beats your record wears a plaque.
03BATH TIME
Beat the bubbles.
Bath day, and the pup has bolted. Hop across a toy town one row at a time, before the bath catches up.
Lawns, roads, railways and canals, through spring, summer, autumn and winter, with the bath's foam creeping up behind. Ride logs, rubber ducks, lily pads and ice across the water, and mind the taxis, the pet store van and the train. Swipe to step sideways or back.
- PlayTap to hop. Swipe sideways or back.
- Power-upsZOOMIES sends the pup tearing up the street. The CROSSING CAT stops the whole town. The MAGNET pulls the bones in.
- Score and paySteps. The bones on the street.


Logs, ducks, lily pads, ice. The water is a splash.

The pup races ahead on its own.

Four seconds: the whole town stops.
04PUP QUIZ
Count the crowd.
A crowd of the game's own things fills a bowl for ten seconds. Then you are asked about one kind.
Bones, squirrels, turds, Martians, newspapers: you find out which kind you will be asked about only after the crowd is gone, so you count them all. Nothing ever hides behind anything else, which is what makes the count fair. Then a keypad, and eight seconds to type the number.
- PlayWatch, then type how many.
- Harder as you goEvery three wins in a row: less time to count, a bigger crowd, piles closer in size.
- Score and payWins in a row. Five bones a win.


Four kinds. Count them all.

You find out which after.

Eight seconds to answer.
05PAW PAIRS
Remember where they hide.
Twelve cards, six pairs of the game's own things, face up for a five-second peek.
Then the board turns over and you turn two at a time. A pair stays face up and flashes gold; a miss costs one of three paws. The cards come dealt in the Mystery Bone's own art, and finding the last pair sets the whole board hopping.
- PlayTap two cards to turn them.
- Harder as you goEvery three wins in a row, a shorter peek, then two paws instead of three.
- Score and payWins in a row. Five bones a win.


Then the board turns over.

A pair stays face up.

Three paws. Lose them all and it is over.
06ODD PUP OUT
Spot the odd pup.
A line-up of pups on a theater stage, every one dressed alike but one. Tap the odd pup before the clock runs out.
A find brings the next line-up at once, and a calico cat judges from its box, flipping up a score card for a quick find. Miss, and the house lights go down on a spotlight that shows you which pup it was. Every difference is one you can see with the sound off.
- PlayTap the pup that is different.
- Harder as you goLine-ups grow from four pups to twelve, the clock from five seconds to three, and the differences from a whole hat to a coat a shade off.
- Score and payPups found. A bone every two.


A missing scarf. Shades in another color.

One pup may face the other way.

At the top, one coat is a shade off the rest.
Pick one. They all pay bones.
01The wardrobe
150 things to wear.
Six racks, named for the part of the pup they dress: thirty coats, thirty pieces for the head, twenty each for the eyes, the neck and the paws, and thirty for the aura that floats around the pup, with a Christmas set and a Halloween set among them. Wear one piece from every rack at once, and try anything on before you own it.
Every rack carries every rarity: common, rare, epic and legendary, and one prism piece that never comes out of a Mystery Bone. Finish the rest of a rack and its prism is yours, cycling through every hue.
The names are half the fun: Bubblegum, Spilled Paint, Oinkers, Paper Crown, Good Pup Halo, Tinfoil Hat, Boing Boots, Rocket Pal, Tiny Planet and the Goodest Pup Medal.

02Mystery Bones
Ten bones, one card.
All six games pay into one purse, and ten bones open a Mystery Bone: a card flips face up with a piece of the wardrobe on it. Every new pup starts with a hundred bones, so the first thing you can do is open ten.
The odds are printed on the screen: common 44%, rare 32%, epic 16%, legendary 8%, and any one piece of a rarer kind is rarer than any one piece of the kind below it. A duplicate rerolls once, within its rarity. No bone holds a prism.

03Collecting it all
Coupon collecting, solved.
Finishing all 150 is a coupon-collector problem: the last few pieces are the slow ones, because by then most crates turn up something you own. The odds were solved so that every item in a rarer tier stays rarer than every item below it, and the six prism pieces are not in the draw at all: each is earned by finishing its rack. 4,000 simulated collectors measured how long the whole set takes. One crate below is one Mystery Bone, at ten bones a go.
Half the wardrobe arrives in the first 75 crates. The typical collector owns all 150 items after 466 crates, or 4,660 bones, because a duplicate is rerolled once instead of refunded.
Earn a few bones.
01How it is made
A hand-drawn game that learned to wear 3D.
Characters modeled and lit in Blender, baked to sprites, dropped onto the original 2D canvas. A renderer swap, done as a pipeline.
Model and light
Each character is a soft matte-clay toy: big head, floppy ear, chunky legs. One scene, one camera, one lighting rig.
Bake to sprites
Every part renders as its own layer with a recorded anchor. Ears rotate and tails wag by moving layers.
Composite on canvas
Baked layers draw straight into the hand-drawn world. Anything that animates on time stays hand-drawn on top.
Build one file
Sprites are trimmed to their ink, encoded as WebP and inlined. Out comes one self-contained page.
02The dog
Built on the drawing's own coordinates.
The drawing sets the pose, the footprint and the colors; the toy has to be cute and stay within a few percent of that silhouette.
Because the toy sits on the drawing's own coordinates, every hat still knows where the head is, the collision size never moved, and every plain coat is one white bake tinted at runtime.

03Three styles, mixed on purpose
Toons in a solid world.
Every object wears whichever style reads best at phone size.
Fluffy tail, fat body, glossy eye. Baked and lit like the dog, because the shape is the joke.
Three flat shapes under a glass dome. Flat on purpose, and it holds its own beside the bakes.
A boiling wobbly line, grainy fill, color off register. The silliest thing in the cast should look drawn by a child.
04One file, two storefronts
One file ships to both stores.
The whole game is one HTML page of about 1.4 MB, sprites included. This site embeds that page and the iOS app wraps the very same file, so the browser and the iPhone run a byte-identical build. The only thing fetched at runtime is a font. Nothing is collected.
05The music
Written as a score, played by a synth.
"Doggo's Climb" is an original song in C major, written for this game: drums and a syncopated bass under a pentatonic hook, in six phrases that answer each other. One score file outputs both a listenable MIDI and the patterns the game's own synthesizer plays live. Every other game has a tune of its own from the same file, and a lead voice of its own: a five-note hop on a plucked string for SHRINE HOP, a whistled stroll for BATH TIME, a count on a mallet for PUP QUIZ, a music box for PAW PAIRS and a show tune on brass for ODD PUP OUT. On every menu the climb's own tune plays slower, with no drums at all, so pressing Play is the same song speeding up.
The climb's song speeds up as you do, and the band grows with it. The tempo is keyed to the zone rather than to the clock, from 104 beats per minute in the meadow to 162 at the top, and each zone brings a voice in with it: busier hats in space, a counter melody on Mars, a shuffle and an arpeggio at the rainbow. Tempo and layers only ever change on a bar line, so the climb accelerates without ever stumbling.
In SHRINE HOP the song is the clock. It starts at 120 beats per minute and gains four every lap of the tune, up to 148, and every bounce is timed against it.
The harmony is rule-checked at build time, so every song can restart anywhere and never clash.
06Fairness & testing
Cute on the surface, measured underneath.
Every claim on this page is checked by a tool that blocks the release if it turns out to be wrong.
Every ledge is a bounce away
SKY HIGH places its ledges inside its own jump equations, so every gap clears on the bounce alone, at any height. The air jump is margin, never a requirement.
Every gate can be made
A bot flies SHRINE HOP to the cap, and every crest that turns up in a gap is checked to sit clear of the pillars.
Every town can be crossed
Every BATH TIME town is searched, second by second, for a way forward a person can take ahead of the bath, and the zoomies always stop on a lawn.
Every answer is true
Every PUP QUIZ count is the real count, every PAW PAIRS board is fair, and every ODD PUP OUT line-up has exactly one odd pup, its difference big enough to see on the smallest phone.
07One game, measured
Six hundred robot dogs went first.
Bots play SKY HIGH on the real build, with the real controls, before anybody else does. Pick a skill level and both charts follow.
How long a run lasts
Most runs are short. The tail is long, and it belongs to whoever keeps reading the ledges.
Average bot, 200 runs. A quarter end by 9.4s, half by 21s, three quarters by 38.8s. The best one in twenty reaches 91.9s.
Where runs end
Healthy output has no single villain. Every mob takes a share, and falling takes its own.
08What the gate asks
Forty-three questions, one command.
One command runs everything and exits non-zero on any failure. Filter it by what each check is guarding.
All forty-three, listed
- Jumps are possible. Zero unreachable gaps, any altitude.
- The air jump is a bonus. Measured with no player at all: always a move, never a coin flip, and no ledge that needs the extra jump.
- Dodge and land. Time to see a mob and change your landing.
- Deep climb winnable. Past the main curve, a clean ledge stays available.
- Difficulty ladder. Monotonic, no cliffs, and it keeps stretching.
- Things actually move. Every mover measured for real travel.
- Hitboxes match art. Collision size tracks the drawn size.
- The cat leaves a landing. Its paw is swept through every angle against every ledge width: the ledge is never closed.
- Bath Time is fair. Every town is searched, second by second, for a way forward a person can take ahead of the bath, and the zoomies always stop on a lawn.
- Odd Pup Out is fair. Tens of thousands of line-ups dealt: exactly one odd pup in each, and every difference big enough to see on the smallest phone.
- Generation variety. No runs of identical floors, no ladders down one third.
- Spawn mix. Every floor and mob appears; none dominates.
- Gradients and spread. Sky and difficulty ramp smoothly; items spread out.
- Crate economy. Odds are true, every piece is reachable, no bone ever holds a prism, and finishing a rack always pays one.
- Pup Quiz and Paw Pairs rules. Every count is the true count, every board is fair, and the payout is what the sign says.
- Wardrobe rules. One piece per rack, and a second replaces rather than stacks.
- Roster fully wired. Everything has spawn, draw, collect and timer branches.
- Bath Time plays and pays. Bots walk real towns, and it pays like the other modes.
- Every feature draws. Every coat, floor, goodie and mob renders.
- Screens render. Every screen and every How-To page.
- Sprites and manifests. Every baked layer present, with a valid anchor.
- 3D path live. The sprite renderer is on, the fallback pixel-identical.
- Accessories fit. Hats sit on the skull, not in the brow.
- Icons fit and centered. Every wardrobe and How-To icon centered in its box.
- Dog reads on stage. The pup contrasts with the wardrobe backdrop in every coat.
- Frames 2D vs 3D. Real frames rendered both ways and compared.
- How-To text fits. Every label fits its card.
- High altitude. Extreme heights render without numeric trouble.
- Real devices. Eight shapes, iPhone SE to iPad, plus this site's game window, with every control at least 44 points across.
- Real browser and page. Chromium on the page that serves the game: fullscreen, focus, cache-buster.
- No-input soak. Ninety seconds untouched: no hang, no throw, no NaN.
- Audio soak. Minutes of play, no non-finite audio value, and no drum on a quiet menu.
- Canvas soak. Sixty seconds on a real canvas with sprites decoded.
- Old saves upgrade. A save from a removed item self-heals.
- Modes answer touch. Taps, swipes, holds, keys, pause and the 3-2-1 reach every mode.
- Build the game. Assemble, inline, smoke-test.
- Three copies in sync. One checksum across master, website and iOS.
- Every mode wired. Each mode has its tile, How-To chapter, colors, results card, song, Game Center board, audit and planted bug.
- No crumbs. No orphaned functions and nothing left over from a cut feature.
- No dead overrides. Every 3D helper is called, every baked sprite is drawn, and no drawing is left without a fallback.
- The suite bites. All 72 planted defects are caught.
- The 3D harness bites. All 17 sprite-era defects are caught.
- Real browser, 3D. Sprites decode and go live at a phone shape.
Enough reading. Go bounce.
