Step by step
Pick a step to see only its part of the scene
Goal The bot is given the ring centres. It does not look for the frames: to it they are just blocks
Try Every 2 ticks it tries about 250 moves: pitch, turn, a rocket now or not. Each is flown 40 ticks (2 s) ahead in the physics model
Drop A try where the 0.6 × 0.6 body touches a block is dropped (coral)
Score Penalties for passing far from the ring centre, for lacking speed or height, and for each rocket. The best try (pink) is flown for 2 ticks, then it all starts over
Count A ring counts when the bot crosses its plane. The miss is how far from the centre it crossed
Grid The hall is cut into 4 × 4 × 4 cells. A cell with any block in it is closed (coral)
Search A* from the start through open cells to the goal, 26 neighbours per cell. Climbing costs more than descending, since height is bought with rockets, and a cell next to a wall costs more, since elytra need room
Chain The cells the search settled on, from the start to the goal
Straighten Only the corners a straight flight cannot cut are kept, at most 28 blocks apart
Fly A flight is searched in the cells around the chain with the same physics: a look held 8 ticks, with or without a rocket, room kept from the walls. The rockets (orange) go where the climb to the high gap needs them
Leader A player flies a track of their own: two long straights, two turns, up and down. The bot knows only where they are and how fast they go
Slot The bot aims at a slot 5 blocks to the side and 6 behind the leader, put where the leader will be in 2 s: the same 40 ticks every try is flown ahead. Its height counts like its distance
Before Until 07.11 the slot was only 1 s ahead and its height counted little. Every fast try overshot it, so the best score went to the ones that lost speed: here the coral bot trails 40 to 50 blocks behind, and in the game it burned the speed off in a climb, up to 70 blocks over the leader
Rockets The leader's rockets set the budget: while the bot has fired fewer, a rocket costs it a tenth of the usual price; once it is two over, the full price
Gap The gap is the straight distance to the leader. The suite's test asks for a median of at most 15 blocks
Back
Next step
Show all
Instruments
Tick 0
Speed, blocks per tick 0
Height 0
Ring 1 of 4
Misses, blocks none yet
Rockets used 0
Tries: all, would hit 0, 0
Chosen: pitch, rocket none yet
On a plot on a live server the bot built a course of nine rings in the sky itself, out along one lane and back along the next, and flew it 3 laps of 3 through all nine, 0.1 to 2.7 blocks off centre, 7 to 8 rockets a lap
Instruments
Cells in the hall 0
Closed 0
Cells the search looked at 0
Route, cells not searched
Corners kept not searched
Flight planned, ticks not searched
Rockets in it not searched
Planned in not searched
The corners alone were not enough: flown as rings, the bot ran out of speed on the climb from the low gap to the high one. On the test bench, ten flights each, a pass being a landing inside the hall: the corners as rings 5 of 10, the planned flight 9 of 10, and 10 of 10 at the survival rocket price
Instruments
Tick 0
Gap now, blocks: now, before 0, 0
Median gap: now, before none yet
Most over the leader: now, before 0, 0
Rockets: leader, now, before 0, 0, 0
In the game, a half-second trace of leader and follower showed the old slot: the bot climbed up to 70 blocks over the leader and kept 35 to 68 behind (median). With the slot at the end of the look ahead and the leader's rockets as the budget, 15 to 18 . Here the bot knows the leader's speed exactly and keeps closer than in the game, where it comes in steps
The physics model
Each tick repeats the game: the glide first, then the rocket's pull. Checked against 848 ticks of real flight, the speed differs from the game by 0.0000 blocks per tick when gliding and 0.0001 under a rocket (median)
Code: the UnionClef fork, branch agent-flight , offered upstream as PR #35 , and the agent in persona-agent