-
Notifications
You must be signed in to change notification settings - Fork 14
feat: simulation foundation — models, ABC, factory, model registry, assets #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
cagataycali
merged 43 commits into
strands-labs:main
from
cagataycali:feat/simulation-foundation
Apr 22, 2026
Merged
Changes from all commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
991f22b
fix(assets): change debug to warning for missing download module (C9)
cagataycali ff2327b
fix(simulation): log cleanup errors in __del__ instead of silencing (…
cagataycali 60c7d58
refactor(simulation): optional methods raise NotImplementedError (C19)
cagataycali 625ee6b
fix(model-registry): log asset manager availability state (C26)
cagataycali 2c69f2b
refactor(model-registry): move lazy imports to top-level try/except (…
cagataycali 539b529
fix(factory): add overwrite protection to register_backend (C22, C23,…
cagataycali 1f949f1
refactor(simulation): rename SimulationBackend to SimEngine (C15)
cagataycali 095c2b9
fix(simulation): remove mujoco references not in this PR (C13, C14)
cagataycali 09697e0
fix(model-registry): reorder resolution — local assets before default…
cagataycali 48c31a8
refactor(assets): thin __init__.py, move logic to manager.py (C3, C4,…
cagataycali a4613b1
refactor(assets): consolidate to STRANDS_ASSETS_DIR, deprecate STRAND…
cagataycali d32752a
feat(simulation): add models dataclasses and download_assets tool
cagataycali 3924898
refactor(model-registry): simplify and document search paths (C25)
cagataycali 3fe5f86
docs(simulation): document required vs optional methods, improve rend…
cagataycali e988551
docs: add environment variables and cache directory sections to READM…
cagataycali 92949e0
docs(simulation): clarify get_observation/send_action/run_policy as f…
cagataycali c2de353
style: apply ruff formatting to all PR files
cagataycali ca79130
refactor: drop STRANDS_URDF_DIR entirely — no deprecation, just remove
cagataycali b8ff712
style: fix ruff formatting in model_registry.py (missing blank line)
cagataycali 6bb2a08
fix: resolve 25 mypy errors, remove SimulationBackend alias, fix log …
strands-agent 5d8b516
fix: resolve mypy errors in assets/manager.py and tools/download_asse…
cagataycali e8f6923
fix: resolve 2 mypy errors — correct type-ignore code, add robot_desc…
cagataycali 3108005
feat: expand robot registry to 68 robots, add user registration API, …
cagataycali 749a3fd
fix: add [sim] extra with robot_descriptions dependency
cagataycali 04b7343
fix: add orientation, mesh_path to SimEngine.add_object + simplify ra…
cagataycali 0e194f5
fix: address awsarron review — 9 mechanical fixes
cagataycali 5acd9f9
fix: resolve 4 ruff lint errors (F401, I001)
638f5ea
style: fix trailing newline in download_assets.py (ruff format)
3096920
fix: remove stale main() import from assets/download.py
strands-agent 5e4ba36
refactor: move download logic from tools/ to assets/download.py
strands-agent 2ef00a2
test: remove 10 superfluous tests from test_simulation_foundation
strands-agent 26702af
fix: address @awsarron review — lint, redundant env check, MuJoCo ref…
strands-agent 5510dce
fix: resolve mypy no-any-return in download.py
strands-agent e6b5838
refactor: remove MuJoCo-specific fields from SimWorld base class
cagataycali 0fda2a9
fix: add path-traversal protection in asset resolution + URL validati…
cagataycali aebaffc
docs: add security warning to register_robot() docstring
cagataycali 4f56a52
address @awsarron review — dedupe helpers, fix alias-shadow bug, add …
cagataycali d3a824e
Delete TASK.md
cagataycali 7fa887e
fix(tests): match SimEngine signatures in Dummy test stub
77296d2
perf(assets): cache + early-exit _has_meshes (C58)
ab41dc2
refactor(assets): move lazy import to module level (C59)
cagataycali f1d2dc5
fix: address ideation-loop findings across sim foundation
cagataycali fc89b1f
fix: address @awsarron review feedback
cagataycali File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,3 +9,4 @@ build | |
| dist | ||
| .strands_robots | ||
| .coverage | ||
| .ideation/ | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| """Robot Asset Manager for Strands Robots Simulation. | ||
|
|
||
| Assets are resolved from ``robot_descriptions`` package or downloaded from | ||
| MuJoCo Menagerie GitHub, cached in ``~/.strands_robots/assets/``. | ||
| Override with ``STRANDS_ASSETS_DIR`` env var. | ||
|
|
||
| Implementation lives in ``assets/manager.py`` — this file is thin exports only. | ||
| """ | ||
|
|
||
| from strands_robots.assets.manager import ( | ||
| get_robot_info, | ||
| list_available_robots, | ||
| resolve_model_dir, | ||
| resolve_model_path, | ||
| ) | ||
| from strands_robots.registry import ( | ||
| format_robot_table, | ||
| get_robot, | ||
| list_aliases, | ||
| list_robots, | ||
| list_robots_by_category, | ||
| ) | ||
| from strands_robots.registry import ( | ||
| resolve_name as resolve_robot_name, | ||
| ) | ||
| from strands_robots.utils import get_assets_dir, get_search_paths | ||
|
|
||
| __all__ = [ | ||
| "resolve_model_path", | ||
| "resolve_model_dir", | ||
| "resolve_robot_name", | ||
| "get_robot_info", | ||
| "list_available_robots", | ||
| "list_robots_by_category", | ||
| "list_aliases", | ||
| "format_robot_table", | ||
| "get_assets_dir", | ||
| "get_search_paths", | ||
| "get_robot", | ||
| "list_robots", | ||
| ] | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.