Finals Deadlines: Attendance Form - Feb 11, 11:59 PM EST | Final Code + Alliance Name/Description - Feb 13, 11:59 PM EST | Presentation Materials - Feb 18, 11:59 PM EST
Version 1.1

Zero Robotics 2026

High School Game Manual

Galactic Gardenzerorobotics@mit.eduzerorobotics.mit.edu

1 Game Letter

To: Zero Robotics Competitors

Greetings, Space Engineers! As part of an extended research campaign on the International Space Station (ISS), NASA and the Zero Robotics team are calling on your advanced coding and robotics skills. The ISS crew relies on Astrobee—an autonomous, free-flying robotic platform—to support critical operations in microgravity. This year, your challenge is to program Astrobee to manage a sustainable vegetable-growth system aboard the station.

Your robot must navigate in microgravity, execute precise maneuvering, and coordinate a full agricultural workflow: planting seeds, watering them on schedule, harvesting mature crops, and clearing failed plants. Astrobee must also allocate time efficiently, prioritize tasks dynamically, and respond to real-time mission updates from the crew.

Astronauts will specify which crop type they need using hand gestures. Your robot may visit the Astronaut Zone to detect this gesture—however, only one robot may enter the zone at any given time. Successfully identifying and fulfilling these requests can earn valuable bonus points.

Key Mission Considerations

Head-to-Head Challenge

Compete directly against another team. Strategy, efficiency, and autonomous decision-making are essential.

Shared Operational Zones

Watering Zone and Astronaut Zone are exclusive-use—only one robot at a time.

Six Garden Plots

Manage space, handle failed crops quickly, and adapt to changing priorities.

Active Robot Rewards

Earn bonus points for distance traveled and plots visited!

Mission Time: 240 seconds

High-performing programs optimize every movement, minimize idle time, and pursue the highest-value tasks.

The team that earns the most points wins. This is your opportunity to prove your engineering skills and claim the title of Best Space Robotics Team!

2 Background

Welcome to the Zero Robotics Game Manual for the 2026 High School Tournament: Galactic Garden! This guide will equip you with the essential knowledge and rules to participate. 

As a participant, you're joining a community that directly contributes to research conducted on the International Space Station (ISS). Your involvement not only enhances your programming and robotics skills but also supports real-world space science initiatives. To provide you with a solid foundation, this manual includes background information on the history and current advancements in key topics relevant to the Galactic Garden challenge.

We encourage you to delve into this manual thoroughly to maximize your understanding and performance in the competition. Your journey in Zero Robotics is not just about coding; it's about pushing the boundaries of what's possible in space exploration.

Human Space Exploration

With the development of space technology in the 20th century, we had the opportunity to send machines, animals, and humans to outer space and explore the universe. The first human in space was Yuri Gagarin from the Soviet Union in 1961. Since then, over 600 people from 43 nations have traveled to space. As of December 2025, 10 people are currently living and working in space. Human space exploration helps us understand the universe's history and provides a platform for us to grow, experiment, and improve our lives.

The International Space Station (ISS) is the largest human-made object that orbits Earth. Since 2000, it has evolved from an outpost into a competent microgravity laboratory that hosts scientific investigations and demonstrations in various fields. The ISS has orbited Earth for 25 years, and as of December 2025, over 290 astronauts have visited it. 

Growing Plants in Space

Plants are essential for sustaining human life during space missions! On extended journeys, farming plants provide astronauts with fresh, nutritious food and a comforting connection to Earth. NASA has initiated several innovative projects aboard the International Space Station (ISS) to study and enhance plant growth in microgravity.

Middle and high school students have played a pivotal role in advancing space plant research through the Growing Beyond Earth program. Launched in 2015, this classroom-based citizen science project, developed by Fairchild Tropical Botanic Garden in partnership with NASA, involves conducting experiments that simulate conditions aboard the ISS. By cultivating various plant species and collecting data on their growth, students provide valuable insights that help NASA scientists select crops suitable for space cultivation. To date, over 10,000 students across the United States have participated, contributing to NASA's research on growing plants in space. 

One of NASA's notable projects is the Vegetable Production System, affectionately known as "Veggie". Established in 2014, Veggie is a plant growth unit that enables astronauts to cultivate various crops, including lettuce and zinnias, directly on the ISS. This system not only supplies fresh produce, but also serves as a platform to study plant growth in space.

Building upon Veggie's success, the Advanced Plant Habitat (APH) was introduced in 2017. The APH is a fully automated growth chamber equipped with a series of sensors and LED lights to control environmental conditions. This setup enables scientists to conduct detailed experiments on plant behavior in space, advancing our understanding of how plants adapt to microgravity. 

Researchers have identified that light plays a crucial role in plant development. Experiments have shown that many plants thrive under red and blue light, prompting the use of specialized LED lighting systems in space-based plant growth chambers to optimize photosynthesis. Gravity, or the lack thereof, significantly influences plant growth. In microgravity, plants experience changes in leaf development and cellular structure. For instance, experiments have shown that microgravity affects the distribution of calcium within plant cells, a vital element for growth. Fortunately, these calcium fluctuations did not hinder overall plant growth.

Through these collaborative efforts and ongoing research, NASA continues to explore and overcome the challenges of growing plants in space, paving the way for sustainable long-term human missions beyond Earth!

Robotics in Space

Robotics in space will not only help overcome challenges humans may face, such as the lack of an atmosphere, but also make the best use of human time by having robots assist with various tasks. Two main areas of interest for space robotics are microgravity and planetary robotics. Microgravity robotics is the manipulation and mobility in microgravity environments, such as the International Space Station. Planetary robotics is robotics manipulation and mobility on or near the surface of a planet, such as Mars and the Lunar surface.

STEM Engagement

The Astrobee platform provides an exciting environment for learning robotics, space exploration, and teamwork through hands-on testing in the IDE.

Astrobee Robot

Astrobee is a new generation of free-flying robots designed to assist astronauts aboard the International Space Station (ISS). It replaces the SPHERES robots, which served as robotic test platforms on the ISS for over a decade, with significant hardware and software upgrades. The three Astrobee robots—Bumble, Queen, and Honey—were developed by NASA to reduce the time astronauts spend on routine tasks, allowing them to focus on activities that require human expertise.

Astrobee robots can operate autonomously or be remotely controlled by astronauts, flight controllers, or researchers on the ground. They can perform tasks such as taking inventory, documenting experiments with built-in cameras, and collaboratively moving cargo. Additionally, the system serves as a research platform, enabling scientists to conduct experiments and develop new technologies for future space missions. Robots like Astrobee are expected to play a critical role in future deep-space missions, acting as caretakers for spacecraft when humans are away.

Learn more about Astrobee here! 

Key Features of an Astrobee Robot
Key Features of an Astrobee Robot
Name Type Function
NavCam Optical, Wide FOV Visual navigation
HazCam LIDAR Obstacle detection
SciCam Optical, Auto-focus Live video capture
DockCam Optical Docking support
PerchCam LIDAR Handrail distance
SpeedCam Optical/IR Velocity tracking

Legacy and Future Applications

Astrobee builds on the legacy of the SPHERES robots, incorporating lessons learned to create a more advanced system. It is modular and can be customized to carry experimental payloads, enabling diverse scientific research. Since the system can be upgraded over time, it provides a versatile platform for advancing space robotics.

As NASA prepares for future missions to the Moon and beyond, robots like Astrobee will play a vital role. They have the potential to act as autonomous caretakers, monitoring spacecraft systems and ensuring smooth operations during crew absences.

Ground Robotics Demo

This year, the Zero Robotics Competition Finals will be run and tested through simulation and a ground-robotics demonstration. On February 21st, instead of a purely virtual championship, we'll be running a ground robotics analog, and you'll have the chance to deploy your code onto real hardware, including drones and underwater robots.

That's right: your algorithms won't be stuck inside a simulator. They'll be navigating physical space, reacting to real-world conditions, and carrying out your strategies live. Few student robotics competitions offer something this hands-on, and it's your moment to shine.

We're also excited to continue a tradition from previous years. In the past, we've partnered with the Critical Matters group at the MIT Media Lab to run the Finals using new robotics platforms

3 Game Introduction 

Guide Astrobee to manage crops across 6 plots, respond to astronaut requests, and compete against another robot.

Game Duration: 240 seconds (4 minutes)

  • Field: 6 garden plots, Watering Zone, Astronaut Zone, Home Zone
  • Movement Bonus: 0.5 pts/meter + 2 pts per unique plot visited
  • Astronaut: +5 pts per bonus crop assignment (max 3 times) + 50% harvest bonus
  • Diversity: Same crop = diminishing returns. Diversify for max points!

4 Gameplay Concepts

Garden Layout

Click to see an overview of the game setup in 3D space

Plot X Y ZBlue ZRed
1 -0.35 0.60 0.20 -0.20
2 0.35 0.60 0.20 -0.20
3 -0.15 1.00 0.30 -0.30
4 -0.35 1.40 0.25 -0.25
5 0.35 1.40 0.25 -0.25
6 0.15 1.00 0.30 -0.30

Movement

Coordinate system: X = Left/Right, Y = Forward/Back, Z = Up/Down

game.MoveTo(x, y, z);
game.MovePlot(id);           // id = 1-6
game.MoveAstronaut();
game.LeaveAstronaut();
game.MoveWatering();
game.MoveToHome();

Scoring System

Your total score combines multiple components—active robots score better!

Source Points Notes
Crop harvest Base × (0.75)^count Diversify crops!
Bonus crop +50% From astronaut
Bonus completion +10 All 3 bonus crops
Astronaut visit +5 each Free points!
Movement 0.5/meter Keep moving!
Exploration 2/plot Max 12 pts
Battery ×0.05 Small bonus

Key Insight: The game rewards active, moving robots! Don't sit idle—keep buzzing around the plots!

Diminishing Returns System

Strategic crop diversity is rewarded! Each time you harvest the same crop type, subsequent harvests of that crop yield fewer points:

Harvest # Multiplier Example (Tomato, 6 pts)
1st 100% 6.0 points
2nd 75% 4.5 points
3rd 56% 3.4 points
4th 42% 2.5 points

Formula: points = basePoints × (0.75)^harvestCount

Strategy Tip: Diversify your crops! Harvesting 6 different crops once each yields more points than harvesting the same crop 6 times.

Crop Types

Blueberry
3s
3 pts
Strawberry
5s
5 pts
Tomato
6s
6 pts
Cabbage
8s
7 pts
Potato
9s
8 pts
Melon
12s
11 pts
ID Crop Growth Wait Time Points
1 Tomato 6s 6
2 Cabbage 8s 7
3 Strawberry 5s 5
4 Melon 12s 11
5 Blueberry 3s 3
6 Potato 9s 8

Planting Crops

Each robot can plant crops at any of the six garden plots using:

game.PlantCrop(plotID, cropID);

Where:

  • plotID is 1, 2, 3, 4, 5, or 6
  • cropID is 1-6 (see Crop Types table above)

The robot must move to the correct plot using game.MovePlot() and be physically at that location before calling game.PlantCrop().

Watering Crops

To water a crop, the robot must first move to the Watering Zone. Note that only one robot may use the Watering Zone at a time—if the other robot is already there, your robot will not complete the move.

game.MoveWatering();
game.FillWateringCan();  // fills 6 units of water

To water a planted crop, use:

game.WaterCrop(plotID);
Watering Rules
  • Each crop must be watered twice in total to grow successfully
  • Robots can carry a maximum of 6 units of water at a time
  • The first watering can happen immediately after planting—there is no required delay
  • Both waterings must be completed within 60 seconds of planting. If not, the crop will fail and must be removed using a shovel
  • The robot must be physically at the correct garden plot to water the crop

Crop Growth and Harvesting

Crops follow a strict care timeline. Use this sequence to maximize harvest success:

Plant Water #1 Wait Growth Time Water #2 Wait Growth Time Harvest
  • Watering can be done immediately after planting
  • Both waterings must happen within 60 seconds of planting or the crop will fail
  • Water #2 and Harvesting can only happen after the growth times have passed

Crop Cycle Timing Examples

Crop Growth Time Min Cycle Time Points
Blueberry 3s ~8s 3 pts
Strawberry 5s ~12s 5 pts
Tomato 6s ~14s 6 pts
Cabbage 8s ~18s 7 pts
Potato 9s ~20s 8 pts
Melon 12s ~26s 11 pts

Min Cycle Time = Plant + Water#1 + GrowthTime + Water#2 + GrowthTime + Harvest (plus movement)

After the growth time has passed, harvest using:

game.HarvestCrop(plotID);

If a crop is harvested too early, no points are earned and the crop disappears. To prevent this, make sure enough time has passed since the last watering.

Note: The game environment does not provide built-in timers for watering deadlines or growth duration. Students are encouraged to implement their own timers using the game clock or timestamps when actions are performed!

Crop Failures and Shovel Use

If a plant is not watered twice within 60 seconds of planting, it fails and must be removed. Steps to remove a failed crop:

game.MoveToHome();        // Go to your home position
game.GrabShovel();        // Pick up the shovel
game.MovePlot(plotID);   // Go to the failed crop
game.RemoveCrop(plotID); // Remove the dead plant
game.MoveToHome();
game.DropShovel();        // Return the shovel

You must be holding the shovel to remove a crop.

Efficiency Tip: There is no explicit penalty for holding the shovel the entire match, but the shovel is very heavy and will drain your battery.

Movement and Exploration Stats

Track your robot's activity with these functions:

Function Description
game.GetDistanceTraveled() Total meters traveled (aim high!)
game.GetPlotsExplored() Unique plots visited (0-6)
game.GetAstronautVisits() Number of astronaut visits
game.GetCurrentBonusIndex() Which bonus crop is active (0, 1, or 2)

Battery and Movement Efficiency

Every movement uses battery power. Battery is not explicitly limited in gameplay; the remaining battery percentage affects your final score. Avoid unnecessary movements to conserve energy, and refrain from carrying heavy objects, such as the shovel!

End of Match

Each match lasts 240 seconds (4 minutes). When time expires, robots must stop all actions. The final score is computed based on crops harvested, bonus crop points, movement/exploration bonuses, and remaining battery.

The match ends automatically at 240 seconds.

Astronaut Bonus Sequence System

The astronaut is your best friend! Visit frequently to:

  1. Get +5 points per bonus crop assignment (max 3 times total)
  2. Receive a bonus crop assignment (+50% on harvests of that crop)

How It Works

  • The astronaut offers a sequence of 3 different bonus crops
  • Each bonus crop allows 1 harvest at +50% bonus, then advances to the next
  • This promotes crop diversity—you harvest 3 different bonus crops!
  • Visit astronaut again after harvesting to confirm each new bonus and get another +5 points!
  • Complete all 3 bonus crops to earn an additional +10 points!

Example Sequence

Visit 1: "Your bonus crop is Tomato!" (+5 points for assignment)
   -> Harvest Tomato x1 (+50% bonus)
   -> Bonus advances to next crop

Visit 2: "Your new bonus crop is Melon!" (+5 points for assignment)
   -> Harvest Melon x1 (+50% bonus)
   -> Bonus advances to final crop

Visit 3: "Your final bonus crop is Blueberry!" (+5 points for assignment)
   -> Harvest Blueberry x1 (+50% bonus)
   -> ALL BONUS CROPS COMPLETED! +10 bonus points!

Strategy: Complete all 3 bonus crops to earn +10 completion bonus on top of the +15 points from visit assignments and the +50% harvest bonuses!

Astronaut API Functions

game.MoveAstronaut();              // Move to astronaut zone
int bonus = game.GetBonusCrop();  // Returns crop ID 1-6, awards +5 pts
game.LeaveAstronaut();             // Exit astronaut zone
Important Notes
  • Only one robot may occupy the Astronaut Zone at a time
  • If the opposing robot is in the zone, your game.MoveAstronaut() command will not succeed
  • The bonus crop must be identified using game.GetBonusCrop() to earn bonus points—harvesting the correct crop without visiting the astronaut will not grant bonus points
  • The +5 visit bonus is only awarded once per bonus crop assignment (max 3 times total)

5 Advanced Features

Important: Advanced features are optional investment systems. They cost points upfront but can increase efficiency for longer matches. Consider whether the point investment will pay off before the game ends!

Sprinkler System

Sprinklers provide automated watering at a plot, freeing your robot to do other tasks. Once deployed at a plot, the sprinkler will automatically water any crop planted there at a set interval. Each sprinkler is stationary—it stays at the plot where you deploy it.

Cost: 10 points each

Limit: Maximum 2 sprinklers per robot

Durability: Sprinklers degrade over time (health 0-100%). At 0% health, they stop working.

Repair: Must be at Home Zone. Takes 5 seconds.

Function Description
game.BuySprinkler() Purchase a sprinkler (costs 10 pts, deducted from score). Returns true if successful.
game.DeploySprinkler(id, plotID) Deploy sprinkler (id: 1 or 2) at a plot (1-6). Must be at the plot. Returns true if successful.
game.SetSprinklerInterval(id, sec) Set watering interval in seconds (3-60). Sprinkler waters automatically at this rate.
game.EnableSprinkler(id) Turn on automatic watering for sprinkler.
game.DisableSprinkler(id) Turn off automatic watering.
game.GetSprinklerHealth(id) Returns health percentage (0-100). At 0%, sprinkler is broken.
game.IsSprinklerOperational(id) Returns true if sprinkler is working and enabled.
game.RepairSprinkler(id) Repair sprinkler to 100% health. Must be at Home Zone. Takes 5 seconds.

Sprinkler Example

// Buy and deploy a sprinkler at plot 1
game.BuySprinkler();           // -10 pts
game.MovePlot(1);
game.DeploySprinkler(1, 1);    // Deploy sprinkler #1 at plot 1
game.SetSprinklerInterval(1, 10);  // Water every 10 seconds
game.EnableSprinkler(1);

// Now plant a crop - the sprinkler will water it automatically!
game.PlantCrop(1, 5);  // Blueberry at plot 1
// Robot can now leave - sprinkler handles watering!

Space Tractor System

The Space Tractor is a modular upgrade system that enhances your robot's farming capabilities. You must first unlock the base tractor, then you can purchase attachments that provide special abilities. Attachments are add-ons to your robot—they travel with you, not stationed at plots.

Trade-off: The tractor increases battery drain by 2x while active. More power = faster work, but at a cost!

Unlock Cost Effect Requires
Base Tractor 25 pts Enables attachments. 2x battery drain while active.
Planter Attachment 15 pts Instant planting (no delay) Base Tractor
Harvester Attachment 15 pts Instant harvesting (no delay) Base Tractor
Fertilizer System 20 pts 5 uses. Halves crop growth time when applied. Base Tractor

Tractor API Functions

Function Description
game.UnlockTractor() Unlock base tractor (costs 25 pts). Required before any attachments.
game.UnlockPlanterAttachment() Unlock planter (costs 15 pts). Enables instant planting.
game.UnlockHarvesterAttachment() Unlock harvester (costs 15 pts). Enables instant harvesting.
game.UnlockFertilizer() Unlock fertilizer system (costs 20 pts). Gives 5 uses.
game.ApplyFertilizer(plotID) Apply fertilizer to a crop. Halves remaining growth time. Must be at plot.
game.GetFertilizerUses() Returns remaining fertilizer uses (0-5).
game.IsTractorUnlocked() Returns true if base tractor is unlocked.
game.HasAttachment(name) Check if attachment is unlocked. name: "planter", "harvester", or "fertilizer"

Tractor Example

// Unlock tractor and fertilizer attachment
game.UnlockTractor();       // -25 pts
game.UnlockFertilizer();    // -20 pts, gives 5 uses

// Plant a melon and speed up growth with fertilizer
game.MovePlot(1);
game.PlantCrop(1, 6);       // Melon (normally 12s growth)
game.WaterCrop(1);
game.ApplyFertilizer(1);    // Now only 6s growth time!

Investment Strategy: Advanced features have significant upfront costs. A full tractor setup (base + all attachments) costs 75 points. Consider whether you can earn back more than that with the time saved!

6 API Reference

All functions require game. prefix!

Movement

bool game.MoveTo(float x, float y, float z) Move to coordinates (returns success)
void game.MoveToVoid(float x, float y, float z) Move to coordinates (no return value)
bool game.MoveToHome() Return to home position (returns success)
void game.MovePlot(int id) Move to plot (1–6)
void game.MoveAstronaut() Go to astronaut
void game.LeaveAstronaut() Exit astronaut zone
void game.MoveWatering() Go to watering station

Basic Operations

void game.PlantCrop(int plotID, int cropID) Plant a crop at a plot
void game.WaterCrop(int plotID) Water a crop at a plot
void game.FillWateringCan() Refill watering can (to 6 units)
void game.RemoveCrop(int plotID) Remove crop (requires shovel)
void game.HarvestCrop(int plotID) Harvest a crop
void game.GrabShovel() Pick up shovel
void game.DropShovel() Drop shovel
void game.EndGame() End the game early
void game.SetWait(int sec) Wait for N seconds

Sprinkler System

bool game.BuySprinkler() Buy a sprinkler (cost: 10 points, max 2)
bool game.DeploySprinkler(int sprinklerID, int plotID) Deploy sprinkler at a plot
void game.SetSprinklerInterval(int sprinklerID, int seconds) Set auto-watering interval (3–60 sec)
void game.EnableSprinkler(int sprinklerID) Enable auto-watering
void game.DisableSprinkler(int sprinklerID) Disable auto-watering
int game.GetSprinklerHealth(int sprinklerID) Get sprinkler health (0–100)
bool game.IsSprinklerOperational(int sprinklerID) Check if sprinkler is operational
void game.RepairSprinkler(int sprinklerID) Repair sprinkler at home (takes 5 sec)

Space Tractor System

bool game.UnlockTractor() Unlock tractor (cost: 25 points)
bool game.UnlockPlanterAttachment() Unlock planter attachment (cost: 15 points)
bool game.UnlockHarvesterAttachment() Unlock harvester attachment (cost: 15 points)
bool game.UnlockFertilizer() Unlock fertilizer (cost: 20 points, 5 uses)
void game.ActivateTractor() Activate tractor (2× battery drain)
void game.DeactivateTractor() Deactivate tractor
bool game.IsTractorActive() Check if the tractor is active
void game.TractorPlant(int plotID, int cropID) Instant plant with planter
void game.TractorHarvest(int plotID) Harvest with a harvester
void game.ApplyFertilizer(int plotID) Apply fertilizer (halves growth time)
int game.GetFertilizerUses() Remaining fertilizer uses

Getters

float game.GetScore() Total score (harvest + movement + exploration + battery)
float game.GetRobotPositionX() Robot X position
float game.GetRobotPositionY() Robot Y position
float game.GetRobotPositionZ() Robot Z position
float game.GetTime() Current game time (seconds)
int game.GetBonusCrop() Bonus crop ID (+5 visit bonus at astronaut)
int game.GetWaterUnits() Water units in can
float game.GetBattery() Battery level
float game.GetHarvestScore() Harvest score
int game.GetCropWaitTime(int cropID) Growth time for crop (1–6)
bool game.OpponentAtAstronaut() True if opponent is at astronaut
bool game.OpponentAtWatering() True if opponent is at watering station
int game.GetRobotID() Robot ID (0=BLUE, 1=RED)
bool game.OpponentGoingToAstronaut() True if opponent is going to astronaut
bool game.OpponentGoingToWatering() True if opponent is going to watering
float game.GetBatteryLevel() Current battery level

Movement & Exploration Stats

float game.GetDistanceTraveled() Total distance traveled (meters)
int game.GetPlotsExplored() Unique plots visited (0–6)
int game.GetAstronautVisits() Number of astronaut visits
int game.GetCurrentBonusIndex() Active bonus index (0,1,2)

Note: The Control Settings Tab / PID Tuning tab is exposed in the graphical editor for MIT internal use, but teams are open to experimenting with it, and findings can be shared on Piazza! PID settings will not be changed/put into effect in the finals. 

7 Strategy & Scoring

The goal of Galactic Garden is to earn the highest total score by planting, watering, and harvesting crops effectively while staying active. Each student programs one Astrobee robot and competes head-to-head against another student's code. The robot with the highest total score at the end of the match wins.

Final Score Formula

Total Score = Harvest Score + Bonus Completion + Astronaut Visits + Movement Bonus + Exploration Bonus + Battery Bonus

Scoring Summary

Source Points Notes
Harvest Base × (0.75)^count Diversify crops!
Bonus crop +50% per harvest 1 per bonus, 3 different bonuses
Bonus completion +10 points Complete all 3 bonus crops!
Astronaut visit +5 points per visit Visit frequently for free points!
Movement bonus +0.5 points per meter Keep moving!
Exploration bonus +2 points per plot Visit all 6 plots (max 12 pts)
Battery remaining Battery × 0.05 Small bonus at end of match

Costs Summary

Item Cost Notes
Sprinkler 10 points Max 2 per game
Base Tractor 25 points Enables tractor, 2x battery drain
  + Planter Attachment 15 points Instant planting
  + Harvester Attachment 15 points Instant harvesting
  + Fertilizer 20 points 5 uses, halves growth time

Tips for Success

  1. Visit astronaut early & often — +5 pts per visit + bonus crops
  2. Keep moving — 0.5 pts/meter adds up
  3. Explore all 6 plots — 12 pts exploration bonus
  4. Diversify crops — Avoid diminishing returns
  5. Fast crops early — Blueberry (3s), Strawberry (5s)
  6. Complete all 3 bonus crops — +10 completion bonus

Sample Strategy Code

void loop() {
    // PRIORITY 1: Visit astronaut early for bonus crop and +5 points!
    game.MoveAstronaut();
    int bonus = game.GetBonusCrop();  // +5 points just for visiting!
    game.LeaveAstronaut();

    // PRIORITY 2: Explore all plots for exploration bonus
    // Plant diverse crops for diminishing returns strategy
    game.MovePlot(1);
    game.PlantCrop(1, bonus);  // Plant the bonus crop!
    game.WaterCrop(1);

    game.MovePlot(2);
    game.PlantCrop(2, 5);  // Blueberry (fast!)
    game.WaterCrop(2);

    // Explore more plots!
    game.MovePlot(3);
    game.PlantCrop(3, 3);  // Strawberry
    game.WaterCrop(3);

    // Refill water
    game.MoveWatering();
    game.FillWateringCan();

    // Continue farming cycle - keep moving!
    game.SetWait(3);  // Wait for blueberry to grow
    game.MovePlot(2);
    game.WaterCrop(2);  // Second watering

    game.SetWait(3);  // Wait for harvest
    game.HarvestCrop(2);

    // Visit astronaut again after harvesting bonus crop!
    // Get the next bonus crop in sequence and another +5 points
    game.MoveAstronaut();
    bonus = game.GetBonusCrop();
    game.LeaveAstronaut();

    // Check stats
    float dist = game.GetDistanceTraveled();  // Movement bonus!
    int plots = game.GetPlotsExplored();      // Exploration bonus!
}

Gameplay Summary

  • Objective: Plant, water, and harvest crops while maximizing movement, exploration, and strategic astronaut visits.
  • Competition: Only one robot (per match) is active and competes head-to-head against another student's robot code.
  • Astronaut Zone: Visit (only one robot at a time) to receive +5 points and detect the bonus crop sequence.
  • Watering Zone: Shared resource—only one robot may be in the Watering Zone at a time.
  • Battery Score: Remaining battery at the end of the match is multiplied by 0.05 and added to your total score.
Crop Care Sequence

Plant → Water #1 → Wait Growth Time → Water #2 → Wait Growth Time → Harvest

8 Code Submission

  1. Test locally with the simulation tool
  2. Ensure code compiles and functions correctly
  3. Submit through the Zero Robotics portal

9 Resources & Guidelines

Key Dates

Jan 23 Practice Code Due
Jan 30 Feedback + Alliance Announcements
Feb 13 Final Code Due
Feb 21 Finals

Piazza

URL: piazza.com/mit/spring2026/zrhs2026

Access Code: ZRHS26

AI Usage

ChatGPT and AI tools are allowed. Please document how you used them in your code write-up.

10 Tournament Rules

  • MIT/ZR can use/publish submitted code
  • Report bugs immediately
  • No manipulating scoring or accessing restricted info
  • Code must be written by students only
  • No exploiting bugs or unintended features

11 Quick Reference

Crops

Blueberry:  3s / 3pts   Strawberry: 5s / 5pts
Tomato:     6s / 6pts   Cabbage:    8s / 7pts
Potato:     9s / 8pts   Melon:     12s / 11pts

Scoring

Harvest:     Base × (0.75)^count
Bonus crop:  +50%
All 3 bonus: +10 pts
Astronaut:   +5 pts × 3 max
Movement:    +0.5 pts/meter
Exploration: +2 pts/plot (max 12)

Key Functions

game.MovePlot(id)     game.PlantCrop(plot, crop)
game.WaterCrop(plot)  game.HarvestCrop(plot)
game.MoveAstronaut()  game.GetBonusCrop()
game.MoveWatering()   game.FillWateringCan()

12 IDE Patches

This section documents bug fixes and patches applied to the game simulation environment. These fixes are applied server-side and do not require any changes to your code.

Patch 1.1 - January 14, 2026

Astronaut Visit Bonus Fix

Issue: Calling GetBonusCrop() repeatedly in a loop would award the +5 astronaut visit bonus each time, instead of only when a new bonus crop is assigned.

Fix: The +5 bonus is now only awarded once per bonus crop assignment. Players must harvest the current bonus crop before the next bonus crop (and its +5 bonus) becomes available. Maximum of 3 bonuses total.

Advanced Features Documentation

Update: Added comprehensive documentation for the Sprinkler System and Tractor System APIs in Section 5 (Advanced Features).

Patch 1.2 - February 5, 2026

Sprinkler Auto-Watering Now Functional

Issue: Sprinklers could be purchased, deployed, and enabled, but they were not actually watering crops automatically.

Fix: Sprinklers now auto-water their assigned plot at the configured interval. Sprinkler health degrades by 2% per watering. Sprinklers respect all watering rules (growth timing, no overwatering, skip failed crops).

Crop 60-Second Timeout Implemented

Issue: The manual stated crops fail if not watered twice within 60 seconds, but this rule was not enforced.

Fix: Crops that do not receive both waterings within 60 seconds of planting will now automatically fail and must be removed with a shovel.

Battery Drain System Activated

Issue: Battery level was not decreasing during movement, and tractor 2x battery drain was not applied.

Fix: Battery now drains based on distance traveled and carried weight (shovel, water). Tractor activation doubles battery drain rate as documented.

Tractor Getter Functions Added

Issue: IsTractorUnlocked() and HasAttachment() were documented but did not appear on the student side.

Fix: Both functions are now available. Use game.IsTractorUnlocked() and game.HasAttachment("planter"), game.HasAttachment("harvester"), or game.HasAttachment("fertilizer").

Purchases Now Use Total Score

Issue: Purchasing sprinklers and tractor upgrades only checked harvest score, ignoring movement/exploration/battery bonuses.

Fix: All purchases now check against total score (harvest + movement + exploration + battery bonuses). Players can use all earned points to buy upgrades.

Note: If you encounter any bugs or unexpected behavior, please report them immediately on Piazza. We will update this section as patches are applied.

13 Change Log

Version Date Notes
1.1 2026-02-05 Sprinkler auto-watering now functional; Crop 60-second timeout enforced; Battery drain system activated with tractor 2x multiplier; Added IsTractorUnlocked() and HasAttachment() functions; Purchases now use total score
1.0 2026-01-14 Fixed astronaut visit bonus exploit; Added Advanced Features documentation (Sprinkler & Tractor APIs); Added IDE Patches section, Full Manual Release
PRE-RELEASE 2026-01-08 Initial release for Kickoff