SimEngine¶
Generated from strands_robots.core.contracts.SimEngine at build.
A physics world with reset, step and render. Knows nothing of policies or runners.
Shape: structural Protocol (runtime checkable): implement the members, import nothing.
Members¶
| signature | contract |
|---|---|
joint_names -> tuple[str, ...] property |
Actuated joint keys, in ctrl order. |
reset() -> Observation |
Return the world to its keyframe; return the first observation (radians). |
observe() -> Observation |
Read the current state without advancing physics. |
step(ctrl: Action, n_steps: int = 1) -> Observation |
Apply ctrl (radians) for n_steps physics steps; return the observation. |
render(camera: str | None = None) -> np.ndarray[Any, Any] |
Render one named camera, or the free camera, to an HxWx3 uint8 array. |
is_alive() -> bool |
Whether the world still exists; False after close(). |
close() -> None |
Free the world and any GL context; idempotent. |
Where it is used¶
Contracts return typed values and raise strands_robots.core.errors; the agent envelope
is built in tools/. The types they exchange are in strands_robots.core.types; the
frame they agree on is UnitFrame. Why the shapes are what they are:
VISION.md.