A self-describing index of the system. Each card below routes straight into the live subsystem it documents — read endpoints open inline, the modes open their UI, provenance links reach the Observer Bus.
WEED-SIM is fully driveable by agents over HTTP — no browser needed. State is held by a session header (not a cookie), so any client keeps its own germplasm registry. The machine contract is at /openapi.json (Swagger). The embedded Observer Bus is open too: read signals, facilities (WEED-SIM ops are registered there), and the Resource OS.
SID="agent-$(uuidgen)" # any stable id; this IS your session
H="X-WeedSim-Session: $SID"
B=https://tostido-weed-sim.hf.space
curl -s -X POST -H "$H" $B/api/inventory/starter # seed 12 strains
curl -s -H "$H" $B/api/lab/germplasm | jq .count # observe the registry
ID=$(curl -s -H "$H" $B/api/inventory | jq -r .seeds[0].id)
curl -s -X POST -H "$H" $B/api/seed/$ID/grow # grow x3 -> MATURE ...
curl -s -X POST -H "$H" -H 'Content-Type: application/json' \
-d "{\"parent1_id\":\"A\",\"parent2_id\":\"B\"}" $B/api/breed # cross -> receipt
curl -s $B/bus/api/signals | jq '.signals[].title' # crosses appear on the bus
curl -s $B/bus/api/facilities | jq '.facilities' # WEED-SIM syscall table
Images carry the session via ?sid=<SID> (since <img> can't send headers):
/api/image/{id}/96?sid=….
loading…
Each trait is a pair of alleles with a per-trait stability. Numeric traits (THC, CBD, Yield, GrowTime) inherit by dominance-weighted averaging; BudColor and LeafColor are HSV allele ranges recombined per channel, so offspring colors stay vivid instead of muddying. See the genotype live in /api/lab/germplasm or breed in Play Mode.
Pixel-art sprites are split per-pixel into leaf (green-family hue) and bud (cola) masks. Offspring keep each pixel's brightness while shifting hue to the inherited bud/leaf color — green foliage, distinctly colored colas. Rendered at /api/image/{id}/{size}.
A BrAPI-style germplasm surface: faceted grid, brushable parallel coordinates, an HSV color-gamut wheel, and a Monte-Carlo cross predictor. A breeding pedigree is a reticulate network (crosses = hybridization), exportable as Extended Newick for IcyTree. Model follows the BrAPI spec. Open the Lab →
The Deck is the shared-state hub: /api/deck/summary aggregates the whole population, and /api/deck/signals proxies the K-os Observer Bus. Every cross publishes a fail-open provenance receipt; a shared selection rides across all three modes.