Aim a wheeled cannon by angle and power and pop every balloon with the shots you are given, in endless levels that are always possible.
Shots left 0
Balloons left 0
Levels cleared 0
Pop all the balloons. Move the Angle and Power sliders (arrow keys work when a slider is selected), or tap or drag on the field to aim, then press Fire. The ball breaks the first crate it hits and flies through balloons, popping each one. Break a crate low in a tower and the crates above it drop. Three stars for one shot per balloon. "Show me a shot" picks an angle and power for you, and that level then will not count toward your cleared total.
The ball follows the arc of a thrown object with no air: it moves sideways at a steady speed while gravity pulls it down, so the highest point comes halfway through the flight and 45 degrees goes farthest on flat ground. Power sets the launch speed. The engine checks the ball 240 times a second, and it never moves more than a tenth of a square between checks, so it cannot slip through anything.
Crates stand in columns. A crate rests on the ground or on the crate directly below it; touching a neighbour sideways holds nothing, so when you break one, everything above it in that column drops until it rests again. Every level puts each balloon where at least one shot reaches it without touching a crate, so a one-shot-per-balloon clear is always possible.
As-is, no warranty. These apps are free under their listed license and run entirely in your browser. Use at your own risk — don't blame me if your PC catches fire, your dog runs away, or the math turns out wrong. Verify anything that actually matters. None of this is professional financial, medical, legal, or engineering advice.
Pop every balloon before you run out of shots. Use the Angle and Power sliders, then press Fire!
You earn three stars for popping everything with one shot per balloon, two stars for up to two spare shots, and one star after that. There is no timer and no fail screen: if the shots run out, you simply try again.
| Difficulty | Towers | Tallest tower | Balloons | Shots |
|---|---|---|---|---|
| Easy | 2 | 3 crates | 3 | 8 |
| Medium | 3 | 5 crates | 4 | 7 |
| Hard | 4 | 7 crates | 5 | 7 |
Some towers are two crates wide. The page counts levels cleared for each difficulty, and replaying a level you already cleared in the same visit does not add to the count again.
Keyboard and touch. The sliders work with the arrow keys when selected, and the buttons beside them nudge by one degree or one percent. Press Space or Enter on Fire!. A status line announces each result. Buttons and sliders are at least 44 pixels high. When a level is won or lost, the aiming controls are switched off until you start a new level or try again, and focus moves to the button you are most likely to want.
If your device asks for reduced motion, a shot is worked out at once and shown as a dotted path, with no flight, no sparks and no confetti.
The arc. The ball leaves the muzzle at up to 22 squares a second (the power setting is the percentage of that), with gravity 9.8, and no air drag. Its position is exactly x = x0 + v cos(a) t and y = y0 + v sin(a) t - g t squared over 2. On level ground that gives the familiar range v squared times sin(2a) over g, so 45 degrees goes farthest and complementary angles such as 30 and 60 land together. The tests check the range formula, the 45 degree maximum, the complementary pairs, and that the engine’s landing point agrees with an independent step-by-step integrator to within 0.01 of a square. More power always lands farther.
Not slipping through. The engine looks at the ball 240 times a second. At full power it moves under a tenth of a square between looks, and the ball is 0.6 across, so it cannot pass through a crate or a balloon. The tests also compare the engine with a second collision check that looks 20 times as often, on 540 random shots across levels of every difficulty. Fewer than 1 in 100 differ. The engine also finds the exact moment of contact between two checks, so the crate touched first is the one that breaks and the ball stops on its surface.
Crates. A crate rests on the ground or on the crate directly below it. Touching a neighbour sideways holds nothing. After a crate breaks, the engine goes through the crates from the bottom up and lowers each until it rests, popping balloons in the squares it passes through. The tests cover breaking the bottom, the middle and the top of a column, big gaps, a crate beside a tower, balloons in and out of the path, and random piles, where no crate is lost, duplicated or moved sideways, and a settled pile settles to itself.
Levels. A level is built from a number. First the towers are placed in the columns to the right of the cannon. Then the engine fires about 1,900 test shots, every second angle and every second power, at the towers without any balloons. For each shot that never touches a crate, it records the squares near the arc where a balloon would be popped. Balloons are put only in squares that at least 5 (Easy), 3 (Medium) or 2 (Hard) of those shots pass through, and no two balloons are closer than two squares. So whatever the crates do, there is a shot for each balloon that does not touch a crate, and the shots-given count is more than enough to use them one at a time. The same difficulty and number always give the same level.
The tests check that claim by brute force. For sample levels at every difficulty they try all 7,371 angle and power pairs, and check that every balloon is popped by a shot that touches no crate, with several such shots each, and that at least one of them is confirmed by the independent fine-grained check. A search that fires its own shots one at a time on the real level also clears each sample level inside its shot budget. For 36 generated levels, the tests check that crates are supported and in bounds, balloons are not on crates, balloons are two squares apart, and heights and counts match the table.
Hints. Show me a shot searches all 7,371 pairs and takes the first one that pops a balloon without touching a crate, or the first one that pops a balloon at all if there is no such shot.
Nothing is uploaded. The only stored values are three whole numbers from 0 to 9,999: levels cleared on Easy, Medium and Hard. Clearing site data resets them. The page works if storage is blocked.
For informational purposes only. Not financial, medical, or legal advice. You are solely responsible for how you use these tools.