Sky Hop

One button, one arc. Gravity pulls a courier drone down and a tap sets it climbing; the sky scrolls past and floating energy rings come at you. Every ring is proved reachable before you ever see it — and the part of the drone that actually hits things is deliberately smaller than the part you can see.

Spinning up the drone…

The hitbox is kinder than the drone, on purpose

Every other interactive on this site draws its objects from their colliders, because a picture that disagrees with the rules is a defect. This one is the exception, and the brief asks for it: the collider is 75% of the shell and strictly inside it, overhanging by 9 thousandths of the sky.

In a one-button game you are flying at the edge of your timing the whole time, and a clip that costs a run when the drone visibly grazed a ring reads as the game being fussy rather than as a mistake. The direction never reverses — nothing can hit you that is not drawn — and the amount is published rather than tuned by feel and forgotten. You can turn the collider on in settings and watch it.

The score does not forgive. A ring taken within 30% of its centre is threaded and worth 150 on top. So forgiveness keeps you in the run and precision is what the run is worth.

A climb is a sawtooth, not a line

A tap sets the drone’s vertical speed rather than adding to it, so every tap is identical and one from level flight lifts about 10% of the sky. Tapping flat out climbs at 0.53 skies a second — noticeably less than the 0.63 the impulse suggests, because between two taps gravity is still pulling.

That gap mattered more than it sounds. The first version of the reachable envelope tapped on every simulation step, which pins the drone at the impulse and climbs in a perfectly straight line — it came back reporting a climb rate of exactly the impulse, to the last decimal, for a drone that is supposed to be fighting gravity. It was assuming a hundred and eighty taps a second, and declaring nearly the whole sky reachable between any two rings. The envelope now taps 9 times a second, which is faster than anyone sustains.

Nothing is placed where you could not reach it

Each stretch of sky is generated and then searched: a sweep over height and vertical speed, tap or do not, asking whether any run of taps gets through every opening within the time the scroll allows. A stretch that fails is thrown away and rolled again, and the search flies the same drone you do — through the same integrator, from the height and speed you will actually arrive with rather than from a nominal start.

It rounds against itself. Heights and speeds are bucketed, and a state only survives a ring if every drone that bucket could represent is through the opening. A solver that rounded in its own favour would occasionally certify a stretch that cannot quite be flown — a proof sitting next to an impossible course, which is worse than not checking at all.

Measurement says what the search is actually for. A still course that passes the cheap local envelope check very nearly always flies. What the search catches is the drifting rings, where the opening has moved by the time the drone gets there.

An opening holds the drone and the fall

Passing a ring takes time, and the drone drops while it is doing it. An opening only has to clear the drone at the instant it enters; by the instant it leaves, the drone is lower. At the slowest scroll that sink is 8% of the sky on its own, so nothing is ever narrower than 19% — the drone, plus the sink, plus a margin. The easiest rings are 34%.

Local play

Everything runs in this browser. There is no sign-in, no leaderboard and no account: your settings, your bests and which Daily skies you have flown live in local storage under this route’s own keys, and clearing this game’s data leaves every other Zerdly tool alone. Scoring is 100 a ring, plus 12 for every ring in the current flight up to 40 deep, plus 150 for each one threaded — and the bell you hear climbs with the streak, so a long flight audibly ascends.

Questions

Is the hitbox really smaller than the drone?
Yes, deliberately, and the brief asks for it: the collider is 75% of the shell you can see and strictly inside it. In a one-button game you are flying at the edge of your timing constantly, and losing a run to a graze that visibly missed reads as the game being fussy rather than as a mistake you made. The direction never reverses — nothing can hit you that is not drawn, which is the one thing a twitch route may never do. You can switch the collider on in settings and look at it.
So does precision not matter?
It matters for the score rather than for survival, which is the point. A ring taken within 30% of its centre is threaded and pays 150 on top of the 100 for passing it. Forgiveness keeps you in the run; precision is what the run is worth. If the route paid the same for a graze as for a clean line there would be nothing above "stay alive" to aim at.
What does one tap actually do?
It SETS the drone's vertical speed rather than adding to it, so every tap is identical whatever the drone was doing a moment earlier — which is the whole promise of a one-button game and what makes the reachable envelope computable at all. From level flight one tap lifts you about 10% of the sky.
How fast can the drone climb?
0.53 skies a second — measurably less than the 0.63 the impulse suggests, because between two taps gravity is still pulling and a climb is really a sawtooth. That gap is not academic: the first version of the reachable envelope tapped on every simulation step, which pinned the drone at the impulse, climbed in a perfectly straight line and declared nearly the whole sky reachable between any two rings. It was assuming a hundred and eighty taps a second. The figure above assumes 9.
Can a ring be placed where I cannot reach it?
No, and the generator is asked rather than trusted. Each stretch of sky is searched before it is used: a sweep over height and vertical speed — 72 heights, 29 speeds, tap or do not, 9 times a second — asking whether any run of taps gets through every opening. A stretch that fails is thrown away and rolled again. The search flies the same drone you do, through the same integrator, from the height and speed you will actually arrive with.
Is the envelope check not enough on its own?
For still rings it very nearly is — measured, a hundred and twenty static courses out of a hundred and twenty that pass the cheap local check also fly. What the trajectory search catches is the DRIFTING rings: the generator places a centre, the ring moves, and the opening that was inside the envelope when it was rolled is outside it by the time the drone arrives. That is a small share and exactly the class of unfairness nobody could diagnose from the inside.
Why are the openings so generous?
Because passing a ring takes time and the drone falls while it is doing it. An opening only has to clear the drone at the instant it enters; by the instant it leaves, the drone is lower. At the slowest scroll that sink is 8% of the sky on its own, so no opening is ever narrower than 19% — the drone plus the sink plus a margin. Sizing them for the drone alone would make every ring a coin flip that looked generous.
Does touching the top of the screen end the run?
No — only the ground does. Falling out of the sky is a mistake you had a whole descent to correct; touching the ceiling is one tap too many half a second ago, and ending a run for it punishes the only input the game has. The drone simply stops there, and stopping costs it all its height the moment the next ring needs it lower. The first draft made both lethal, and a test bot that simply tapped as fast as it could died against the roof in nine tenths of a second, before the first ring was even on screen.
What happens before the first ring?
You get 2.9 seconds of empty sky. The drone starts at rest and you have not touched anything yet, so the first ring stands further off than the screen is wide — long enough to work out that tapping is the control before anything can end the run. Placing it at the ordinary spacing is the thing this genre gets wrong most often.
Do the modes actually differ?
Endless, Ring Run, Drift Run, Daily Flight. Endless has no finish and keeps tightening; Ring Run is 40 rings with an end you can reach; Drift Run makes every ring move, which changes the skill from aiming at a fixed point to timing a moving one; and the Daily is 30 rings seeded by the UTC date, so it is the same sky for everybody that day.
Does a held button lift me continuously?
No. A tap is an edge, not a state: the input carries one pending tap and the simulation consumes it, and keyboard autorepeat is ignored outright. One press is one lift. A held button that lifted continuously would make a one-button game a hover control, and the commitment would disappear.
Is the flight the same on every screen?
Yes. The simulation runs at a fixed 180 steps a second whatever the display does, with the leftover fraction of every frame carried rather than discarded, and a tab left in the background cannot come back having flown any distance. Rings are 5% of the sky thick and scroll between 0.46 and 0.78 skies a second.
What is stored about me?
Nothing that leaves this browser. Your settings, your best for each mode and which Daily skies you have flown are kept in local storage under this route's own keys, and clearing this game's data leaves every other Zerdly tool alone. No flight in progress is ever saved — the seed is stored and the sky is rebuilt from it, so a drone can never resume into a stretch nobody proved. There is no sign-in and no leaderboard, because there is no server to hold one.

Related interactives

  • Crossing Dash The other route where nothing is generated that cannot be survived.
  • Space Defender One more route built on a move you cannot take back.
  • Endless Highway Racer A scrolling world that never ends, steered instead of tapped.
  • Reflex Grid The route that measures the reaction time this one designs around.