How the AI Garden Planner Works

This page describes what JoeBees does technically — not what it promises to do. Each section covers a specific feature: what input it takes, what logic runs, and what output it produces.

ZIP code zone lookup

When you enter a US ZIP code, JoeBees queries a bundled lookup table derived from the 2023 USDA Plant Hardiness Zone Map (planthardiness.ars.usda.gov). The lookup returns the USDA zone number (e.g., 6b) for that ZIP code.

The zone number is then used to filter the plant palette: plants whose zone range does not include your zone are marked as potentially unsuitable. This filter is informational — you can still add any plant to your bed manually.

Data source: USDA PHZM 2023 update.

Companion and antagonist detection

Each plant in the database carries explicit companion and antagonist lists (plant IDs, not free text). When you place a plant on the canvas, the planner checks every other placed plant against these lists.

If an antagonist pair lands within 2 cells (24 in.) of each other, a warning badge appears on the canvas. Companion pairs that are adjacent display a positive indicator. The visual Fit Score for the bed reflects the ratio of good companion adjacencies to antagonist conflicts.

All companion and antagonist relationships are sourced from Cornell Cooperative Extension, Old Farmer's Almanac, and OSU Extension. See the companion planting guide for the full list.

AI layout generation

When you submit a planting goal (e.g., “I want a salsa garden in a 4×8 bed in zone 6”), JoeBees sends a structured prompt to Anthropic's Claude API. The prompt includes:

  • Your bed dimensions (width × height in one-foot cells)
  • Your bed conditions (sun, soil type, pH, USDA zone)
  • A filtered subset of the plant catalog matching your zone and sun conditions
  • All companion and antagonist pairs for the candidate plants
  • Explicit placement rules: no footprint overlaps, antagonists must be ≥2 cells apart

The model returns a JSON array of placements. These are validated server-side before being applied to the canvas: unknown plant IDs are discarded, coordinates are clamped to bed dimensions, and footprint overlaps are detected and removed. The AI cannot override the plant database.

Chat assistant

The chat panel sends your message plus a snapshot of the current bed state (placed plants, conditions, dimensions) to the Claude API. The system prompt instructs the model to answer only questions about the current bed, gardening practices, and the plants in the JoeBees database.

The chat assistant does not have the ability to modify the canvas directly — it returns text answers only. Any suggested changes must be applied by the user through the planner UI.

Preset garden plans

JoeBees includes 10 curated preset plans (salsa, three sisters, herb sampler, etc.). Each preset is a fixed list of plant IDs with a natural-language description of the planting goal. Selecting a preset sends that description — plus your current bed dimensions and conditions — to the AI layout generator. The AI places the preset plants while respecting companion rules and your specific bed size.

Preset descriptions are written to produce deterministic, sensible results. They do not guarantee a specific layout — bed size, zone, and sun conditions affect which plants the AI prioritizes.

Try the planner — it's free, no account required.

Open the planner →
← What to plant whenPlant library →