File size: 6,522 Bytes
ae853c1 e30a933 ae853c1 fb88864 ae853c1 e30a933 ae853c1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEED-SIM · Document Hub</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/static/meta.css">
<link rel="stylesheet" href="/static/agent-widget.css">
</head>
<body>
<div class="glow a"></div><div class="glow b"></div>
<div class="wrap">
<div class="topbar">
<div class="brand"><span class="hex">⬡</span><h1>DOCUMENT HUB</h1></div>
<nav class="topnav">
<a href="/">Home</a><a href="/play">Play</a><a href="/lab">Lab</a><a href="/deck">Deck</a><a href="/docs">API</a>
</nav>
</div>
<section class="hero" style="padding:1rem 0 1.5rem">
<div class="kicker">Meta routing manifest</div>
<h2 style="font-size:clamp(2rem,5vw,3.2rem)">Every surface, one click away.</h2>
<p class="tagline">A self-describing index of the system. Each card below routes <b>straight into the live subsystem</b> it documents — read endpoints open inline, the modes open their UI, provenance links reach the Observer Bus.</p>
</section>
<!-- Agent access -->
<section class="section">
<h3>Agent Access · connect & use it</h3>
<p>WEED-SIM is fully driveable by agents over HTTP — no browser needed. State is held by a
<b>session header</b> (not a cookie), so any client keeps its own germplasm registry. The machine
contract is at <a class="inline" href="/openapi.json" target="_blank">/openapi.json</a>
(<a class="inline" href="/docs" target="_blank">Swagger</a>). The embedded
<a class="inline" href="/bus">Observer Bus</a> is open too: read
<a class="inline" href="/bus/api/signals" target="_blank">signals</a>,
<a class="inline" href="/bus/api/facilities" target="_blank">facilities</a> (WEED-SIM ops are registered there),
and the <a class="inline" href="/bus/api/os" target="_blank">Resource OS</a>.</p>
<pre style="background:rgba(0,0,0,0.45);border:1px solid var(--border-glass);padding:1rem;overflow:auto;font-family:var(--font-mono);font-size:0.8rem;color:var(--text-main);line-height:1.5;">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</pre>
<p>Images carry the session via <code>?sid=<SID></code> (since <code><img></code> can't send headers):
<a class="inline" href="/api/image/{id}/96?sid={SID}" target="_blank">/api/image/{id}/96?sid=…</a>.</p>
</section>
<!-- Live route manifest -->
<section class="section">
<h3>Routing Manifest</h3>
<div id="manifest"><p>loading…</p></div>
</section>
<!-- Architecture docs, each linking to its live surface -->
<section class="section">
<h3>Genetics Engine</h3>
<p>Each trait is a pair of <b>alleles</b> with a per-trait <b>stability</b>. Numeric traits (THC, CBD, Yield, GrowTime) inherit by dominance-weighted averaging; <b>BudColor</b> and <b>LeafColor</b> are HSV allele ranges recombined per channel, so offspring colors stay vivid instead of muddying. See the genotype live in <a class="inline" href="/api/lab/germplasm" target="_blank">/api/lab/germplasm</a> or breed in <a class="inline" href="/play">Play Mode</a>.</p>
</section>
<section class="section">
<h3>Sprite Masking</h3>
<p>Pixel-art sprites are split per-pixel into <b>leaf</b> (green-family hue) and <b>bud</b> (cola) masks. Offspring keep each pixel's brightness while shifting hue to the inherited bud/leaf color — green foliage, distinctly colored colas. Rendered at <a class="inline" href="/api/image/{id}/96" target="_blank">/api/image/{id}/{size}</a>.</p>
</section>
<section class="section">
<h3>Speciation Lab</h3>
<p>A <b>BrAPI-style</b> germplasm surface: faceted grid, brushable <b>parallel coordinates</b>, an HSV <b>color-gamut wheel</b>, and a Monte-Carlo <b>cross predictor</b>. A breeding pedigree is a <i>reticulate network</i> (crosses = hybridization), exportable as <a class="inline" href="/api/lab/newick" target="_blank">Extended Newick</a> for <a class="inline" href="https://icytree.org/" target="_blank">IcyTree</a>. Model follows the <a class="inline" href="https://brapi.org/specification" target="_blank">BrAPI spec</a>. Open the <a class="inline" href="/lab">Lab →</a></p>
</section>
<section class="section">
<h3>The Deck & Observer Bus</h3>
<p>The <a class="inline" href="/deck">Deck</a> is the shared-state hub: <a class="inline" href="/api/deck/summary" target="_blank">/api/deck/summary</a> aggregates the whole population, and <a class="inline" href="/api/deck/signals" target="_blank">/api/deck/signals</a> proxies the <a class="inline" href="https://huggingface.co/spaces/tostido/K-os" target="_blank">K-os Observer Bus</a>. Every cross publishes a fail-open <b>provenance receipt</b>; a shared <a class="inline" href="/api/selection" target="_blank">selection</a> rides across all three modes.</p>
</section>
<footer>
WEED-SIM Document Hub · <a href="/">Home</a> · <a href="/docs">OpenAPI / Swagger</a> ·
<a href="https://huggingface.co/spaces/tostido/K-os" target="_blank">K-os</a>
</footer>
</div>
<script src="/static/docs.js"></script>
<script src="/static/session.js"></script>
<script src="/static/agent-widget.js"></script>
</body>
</html>
|