DRUMLINMOTORSRow Weeder model

Watch it weed

Choose a strawberry field from Demo to 3 acres, with irrigation alleys skipped. The rover stays still; the world moves and rotates beneath it. Demo starts with four 12 m rows for a short, watchable mission.

Loading Python…
Drag to orbit · pinch to zoom
2026-05-12
Sprayed
0
Refused (label / log)
0 / 0
Sorrel overrides
0
Row
1 of 34
Skipped (pipe)
4
Leg
ENTER
State
LOADING
Speed
0.000 m/s
Metres done
0.00 / 360
Including turns
0 m/h
Seen
0
Cut
0
Flagged
0
Left in guard
0
Not detected
0
Not reached
0
Crop hits
0
Ahead / pending
—
Seed —Left IDLE · Right IDLE0.0 s simulated1× requested
SPOT LOG
No spots yet.
Lime: annual · cream: white cockle · rust: sheep sorrel · green: clover · purple: smartweed · blue tint/dot: treated spot · amber flag: leave for hand-pulling. Camera overlay: green crown logged · red target · amber flagged.

The label is the law. These rules are data from the Stinger Wisconsin label WI-250002 and cited package-label research. A licensed applicator reads the jug. Glyphosate has no cited permission for this in-row cup. This is a simulated application log, not a farm WPS filing.

Stinger: clover control; smartweed suppression; sorrel only with explicit override. One treatment per spot per window, ⅓ pt/A spring, ⅔ pt/A yearly, at most two applications/year, 30 days before harvest, 8 dry hours and 12-hour REI. The demo starts May 12 with July 1 harvest and rain/irrigation 24 hours away. Second pass replays the same field May 26 against the saved spot log. Blue means treated, not proven dead.

This is the rover’s actual control code (Python), running in your browser against a simulated whole field. Default: May, 1 weed/m², a Sinbar-escape scenario. Plants are 11–13 inches apart in an 18-inch strip; neighbouring rows are on 48-inch centres. Controls restart the field when month or density changes.

Guesses: 90% weed recall per pass, 98% crop recall per frame, 3 mm position noise, 2% wheel slip and a 25 mm deterministic kill radius. Species mix, canopy size and ideal axis motion are also assumptions. Left in guard counts detected survivors within a crown’s 120 mm keep-out; it is a policy exclusion, not a failure. Undetected weeds count separately, even inside guards. Remaining outcomes are counted after the tool passes; m/h includes entry, stops and headland turns. “Weeded” means the row pass completed, not that every weed was killed.

Tools lift and stop before the row ends. The rover exits straight, pivots 90°, crosses to the next workable row, pivots 90°, and enters. Acreage presets place irrigation alleys after row 7, then every 15 rows where they fit; both neighbouring rows are skipped. Demo has no pipes. Aluminium pipe uses 2-inch farm inventory, 30-foot sections and a 60-foot sprinkler grid; 3-foot riser height and the presets’ 40-foot headlands are guesses. The small map shows completed rows in green, pipe rows in amber, and the travelled path in blue.

The current model drives all 97 moving parts, including the round-9 cups and selectors, with pack parts parked and bellows stretching between their attachment faces. Flexible spray hoses/chains use illustrative envelope deformation; cup and selector poses follow the CAD. Spindle RPM, wheel witness marks, soil puffs and neighbouring plants are illustrative. No field efficacy is established.

Control, assumptions and sweep results — sim/README.md · Row Weeder model · Python runtime: Pyodide 0.27.7