To opening–Launch–Exit speed–Motor–Spin–Camera–Speed room–Peak height––
Drag the robot · WASD drive · QE turn · Space fire · drag empty space to look around
How it works
The field is the official BIOBUZZ field CAD. The shot model's HIVE (opening, frame, pivot) is measured from the same CAD. The HIVEs tip when you change which way their up-CELL faces.
Aiming: Auto or Manual. Auto works only while the Limelight can read the AprilTags under our up-CELL, like the real robot, which needs the tags to know where it is. The line from the camera to the tags turns green when it can read them. It uses the same camera check as figure 5 on the turret page: tags turned less than 65° away, inside the camera's view, and at least 12 pixels across. When the camera can't see them, aiming becomes manual: set the turret heading, launch angle and exit speed yourself, and the page tells you whether that shot goes in and which speeds would. "Calculate best shot" works out the best shot in theory and loads it into the sliders.
The turret aims itself at our up-CELL's opening. For each spot it tries every launch angle the hood can reach, in 2° steps, and a range of exit speeds (the speed the ball leaves the wheels). It picks the angle with the most speed room: how far the exit speed can be off and still score.
The rules are the same as the turret page's figures. Air drag slows the ball. A shot counts only if it enters the opening at least one ball radius from the rim, while coming down. It must not touch the other HIVE or the frame first. The page runs the same code as the Python models, checked to match them.
Motor rpm is the flywheel motor speed for that exit speed. With the v8.1GB turret model it comes from the turret's feed simulation for the chosen ball and wear, along with the spin and hood angle (interpolated: launch within about 0.5°, speed within about 0.8%, spin within about 10 rpm of a fresh feed run). With the Simple model it's an estimate for a medium-worn ball ("est."). When two turret settings give the same angle and speed, the simulator uses the one with the lower wheel speed. The design plans to stay under 85% of the motor's 6000 rpm, to leave room to spin back up between shots.
Expected clean-entry rate: for the current shot, the page tries 400 single shots with the chosen variation and reports how many go in cleanly, with a ± range (95% confidence). "Good spot" means 80% or more, "Risky" 50–80%, "Poor" below. It assumes an empty CELL and leaves out burst slowdown and bounce-outs, so real bursts into a filling CELL do a bit worse.
Shot-to-shot variation makes each shot a little different, like real shots. With the v8.1GB turret model, the biggest part is ball wear: each ball is a bit newer or more worn than the turret is set for (wear 0 = new, 1 = medium, 2 = worn; this is ball stiffness, 8000 → 4000 → 1500 N/m in the feed simulation), and the feed simulation's table (13 wear levels) gives that ball's actual launch angle, exit speed and spin. On top: wheel-speed control (Realistic: about ±1%), hood play (about ±0.7°, which moves the hood, so angle, speed and spin change together) and aim (about ±0.5°), with most shots near the middle (a bell curve). "Rough" is roughly double. A ball the feed simulation wouldn't launch at those settings shows as "didn't launch". The Simple model has no wear table, so it uses a speed scatter of about ±3% (Realistic) or ±6% (Rough) and a launch-angle scatter instead. "Off" turns off the random parts; the burst slowdown still applies. Later balls in a burst leave a little slower (burst simulation at its reference setting, 8.5 m/s wheels: Nectar −0.45% with the firing gate, up to −1.6% without; Pollen about −0.1%), and with the gate a Nectar burst releases every 0.3 s instead of 0.25.
What this shows: in this model Pollen is forgiving (about 93–100% clean entries with Realistic variation) but Nectar is very sensitive to wear: at the default spot a new Nectar leaves almost 30% slower than a medium one at the same settings, and only about half of Nectar shots go in. These are model predictions, not measurements; test with a mix of new and used Nectar early.
The floor map shows the speed room for the chosen ball and HIVE state (darker is more forgiving; gray can't score). It's the Simple model (no spin), on a grid, the same as the turret page's figure 6, so it can differ from the live numbers, especially with the v8.1GB turret model on.
"Only in theory" shots: from some spots, even behind the HIVE, the model finds a very high lob (up to about 3 m) that drops almost straight down into the opening. The physics allows it, but only with the exit speed within about ±1%. Ball wear and the flywheel slowing change the exit speed by a few percent, so the simulator marks anything that needs better than ±2% as "only in theory".
Ball flight: v8.1GB turret. Each shot gets the backspin the v8.1GB turret would give it, from the turret's feed simulation: for this ball and wear, it looks up the hood angle and wheel speed that produce the launch angle and exit speed, and the spin that comes out (Pollen mostly 20–140 rpm; a new Nectar up to about 275 rpm). Spin adds lift (the Magnus effect, using the usual rule for a slowly spinning ball; not yet measured on our foam balls). It also limits the shots to ones the turret can really throw: a medium-worn Pollen's steepest launch is about 80–82°, and in the feed model a worn Pollen tops out at about 7.9 m/s (7.8 m/s at the flattest hood angle), because the soft ball slips in the wheels. Simple turns spin and those limits off; that's the model behind the turret page's figures and the floor map.
Field at start: Match start sets the field up as the manual does (section 10.3.1), with positions from the official field CAD: 4 Pollen in each FLOWER, 4 in each GARDEN, 3 Nectar against the back wall of each up-CELL, and 5 Nectar in each alliance area. The 3 starting Nectar weigh 124 g, so our CELL tips after about 3 more Pollen (the field's calibration tests start the same way). Robot preloads aren't shown. "Clear" resets to the chosen start.
Balls in the CELL stay where they land, and new balls bounce off them (roughly). A ball can go in and still bounce back out; then it doesn't count toward tipping.
HIVE tipping: the field's calibration tests say the HIVE must not tip with 3 Nectar + 2 Pollen (174 g) or 7 Pollen (175 g), and must tip with 3 Nectar + 3 Pollen (199 g), 8 Pollen (200 g) or 4 Nectar + 2 Pollen (215 g). By weight (Pollen 25 g, Nectar 41 g), that's a tip point between 175 and 199 g; the simulator uses 187 g. It counts only the weight: where the balls sit and how hard they land can matter on a real field. When it tips, the balls fall out and the turret aims at the new up-CELL.
Limits: balls in the air don't hit each other; resting balls don't get pushed; the robot stands still when it shoots; the ball leaves from the turret's center at 0.33 m up. Bounces after a miss and inside the CELL are rough, for show only.