This browser could not start WebGL2, which this game needs to draw the tower.
Try a current Chrome, Firefox, Safari or Edge, with hardware acceleration on.
Tap when the sliding block is over the one below. The overhang is sliced off and falls. Miss completely and the run is over.
A perfect drop costs nothing at all - and 8 perfect drops in a row start growing the block back.
An independent reimplementation of Stack, published by Ketchapp in 2016. Not affiliated with or endorsed by Ketchapp or Ubisoft.
0
longest perfect run 0
Ketchapp published no specification for Stack - no design document, no post-mortem, no rules page, and no Wikipedia article. So this app is honest about a thin sourcing base: 4 documented facts, every one of them store metadata and none of them mechanical; 12 measured off the publisher's own App Store screenshots; 5 derived, 4 calibrated and 8 reconstructed - which is to say invented, with a reason. 12 of the documented-or-measured entries are marked qualified, because the screenshots on the store listing today belong to the 2026 build, not to the February 2016 one.
The tolerance, the combo threshold, the growth, the speed and the slide range are all reconstructions. Nothing here should be read as "this is how Ketchapp did it".
This one is answerable exactly, because Stack has no physics: the block width is a random walk on a lattice, so the whole game is a Markov chain that can be solved rather than simulated. Three results, each checked two independent ways:
So "each imperfect drop narrows the block, therefore death is certain" is the right conclusion for the wrong reason. Narrowing alone would not settle it, because perfects give width back. What settles it is the floor on the cost of a miss and the ceiling on the width - and if the speed ramp is capped, the conclusion is false outright for a player accurate enough.
You can check the middle claim yourself: turn on the experiment below and the cap comes off.
Measured over thousands of simulated runs at a human timing jitter of 50 ms: the fatal drop almost never comes out of nowhere. 100% of deaths happen with the block already under a quarter of its starting width, at a mean width of 0.039 - about one and a quarter perfect tolerances. The run ends by attrition, not by a blow-out.
The elasticities say the same thing. Doubling the timing jitter costs -0.94 in log score; the starting speed and the per-level ramp together come to the same -0.94, because only the product of speed and timing error matters. The speed ceiling is inert - an ordinary run never reaches it. So is the width restoration: at 50 ms of jitter it fires on 0.11% of drops and moves the mean score by less than one block.
| Block side at the start | 1 (the unit of length) |
|---|---|
| Block height | 0.2 of a side |
| Perfect tolerance | 0.03125 of a side |
| Combo threshold | 8 consecutive perfects |
| Width restored per perfect | 0.0625 of a side |
| Growth ceiling | 1 - the starting width |
| Slide range | ± 1.5 sides |
| Speed, first block | 0.85 sides per second |
| Speed added per level | 0.02 |
| Speed ceiling | 3.2 |
| Register entries | 33 in total |
Stack was published by Ketchapp (Ketchapp SARL, Paris) and first released on the App Store on 17 February 2016. Ketchapp was acquired by Ubisoft on 27 September 2016.
This page is an independent reimplementation, written from scratch. It is not affiliated with, authorised by or endorsed by Ketchapp or Ubisoft, and it contains no code, art or assets from the original.
Renderer: hand-written WebGL2, no third-party libraries. Engine: a pure, deterministic module with 503 assertions against it, including an exact Markov solve of the game's own width distribution written independently in Python.
Sources and full licence text ship with the page: CREDITS.txt, LICENSE.txt, llms.txt.