{"adoption": {"forks": 40, "observed_at": "2026-08-28T04:03:20.652407+00:00", "stars": 1041}, "canonical_url": "https://ross.abutalabs.com/products/sollimann-bonsai", "card": {"archived": false, "artifact_type": "library", "description": "Rust implementation of behavior trees for deterministic AI (now with Python bindings)", "domain": ["robotics", "artificial-intelligence", "simulation"], "enriched": true, "function": ["game-engine", "simulation", "concurrency", "state-management"], "health_score": 98, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["Sollimann/bonsai"], "name": "Sollimann/bonsai", "platform": ["rust", "python", "cross-platform"], "pushed_at": "2026-08-17T20:07:40+00:00", "repo": "Sollimann/bonsai", "stars": 1041, "tags": ["behavior-tree", "finite-state-machine", "ros2", "bevy", "unreal-engine", "deterministic-ai", "python-bindings", "game-development"], "topics": ["autonomous-robots", "behavior-tree", "bevy", "concurrency", "finite-state-machine", "game", "game-development", "navigation", "piston", "robotics", "ros", "ros2", "rust", "fsm", "unreal-engine", "ai", "deterministic"], "urls": [], "use_cases": ["implement behavior trees for game AI in Rust", "build deterministic robot decision logic with ROS2", "replace finite state machines with behavior trees", "use behavior trees from Python", "create modular reactive AI behaviors for autonomous robots"], "what_it_is": "Bonsai is a Rust implementation of behavior trees for building deterministic AI logic, with Python bindings available on PyPI. It targets robotics (ROS/ROS2), game development (Bevy, Unreal), and other reactive AI systems.", "when_to_avoid": ["you need a full game engine or robotics middleware rather than a behavior tree library", "you require machine-learning-based AI rather than rule-based behavior logic", "you need mature tooling like visual BT editors bundled with the library"], "when_to_choose": ["you need deterministic, modular AI decision-making in Rust or Python", "you're building robotics or game AI where behavior trees fit better than FSMs", "you want a lightweight MIT-licensed BT library with crates.io and PyPI packages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sollimann-bonsai", "repo": "Sollimann/bonsai", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.652407+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:02:52.637830+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d79ad322bf0bc91c5368ffe3924a24ca5a1481efac836b54f3330e96a95f79be", "fetched_at": "2026-08-28T04:03:20.652407+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sollimann/bonsai"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 72}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1563, "days_push": 16, "days_rel": 111, "gap_med": 74.5, "n_releases_24m": 5}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}