simulo.Asset
A read-only, registry-resolved resource mounted into running jobs.
A registry ref is [<publisher>/]<kind>/<name>[:v<N>] (e.g.
simulo/robot/cartpole:v1); from_registry() names one, and path
resolves to its read-only mount inside a running job. Asset is also how a
task names USD/URDF model sources to load into a scene — usd() /
urdf().
Raises:
ContractViolationError— ifuriis not a valid[<publisher>/]<kind>/<name>[:v<N>]ref.
Real usage, shared by every shipped training app — resolve a published, version-pinned catalog robot once, then pass it to simulo.Robot:
# module level:cartpole = simulo.Asset.from_registry("simulo/robot/cartpole:v1")
# inside Task.build() / Scenario.build():self.robot = simulo.Robot(asset=cartpole, initial_pose=simulo.Pose.identity())simulo.Asset(uri: str, *, read_only: bool = True)from_registry()
Section titled “from_registry()”Asset.from_registry(uri: str, read_only: bool = True) -> Assetclassmethod
Get a handle to the registry asset at uri.
uri is a catalog ref [<publisher>/]<kind>/<name>[:v<N>] — the
publisher defaults to your own org, simulo names the global catalog,
and an omitted :v<N> is resolved to the current latest at submit.
The handle is directly consumable wherever a model source is
accepted — Robot(asset=...) for a robot ref, scene.add(...)
for a world ref.
Asset.usd(path: str) -> Anyclassmethod
Name a USD model source to load into a scene.
At submit time this returns an inert, torch-free spec object so authoring
stays lean; in the execution runtime it resolves to the real model asset. The return
type depends on mode, so it is typed Any.
urdf()
Section titled “urdf()”Asset.urdf(path: str) -> Anyclassmethod
Name a URDF model source to load into a scene (see usd()).
Asset.uri: strproperty
The registry ref as authored ([<publisher>/]<kind>/<name>[:v<N>]).
Asset.kind: strproperty
The <kind> segment of the ref — "robot", "world", or "prop".
Asset.name: strproperty
The asset <name> slug.
publisher
Section titled “publisher”Asset.publisher: Optional[str]property
The owning catalog publisher ("simulo" = global, an org slug, or
None when omitted — the caller’s own org).
version
Section titled “version”Asset.version: Optional[int]property
The pinned version number, or None for an unpinned ref (resolved at
submit).
is_read_only
Section titled “is_read_only”Asset.is_read_only: boolproperty
Whether this handle is read-only (registry assets always are).
read_only()
Section titled “read_only()”Asset.read_only() -> AssetReturn a read-only view of this asset (builder marker).
Asset.path: strproperty
Local read-only mount path — only meaningful inside a running job.
Resolution order, in execution mode:
SIMULO_ASSET_<uri>— the mount the execution environment exported for this asset. When set, it is authoritative.- The on-disk catalog cache
~/.simulo/assets/<org>/<kind>/<name>/v<N>/— the colon-free layoutsimulo asset getwrites into. Used for a local run with no runner-provided mount.
Raises outside execution mode, or — when neither a mount env var nor a
cached copy is present — with the exact simulo asset get <ref> command
to fetch it.