Choose and validate assets
Apps use versioned assets for the robots, worlds, and props in a scene. Start with the Simulo global catalog, or publish your own assets to your organization’s catalog.
Use the Simulo global catalog
Section titled “Use the Simulo global catalog”The global catalog is Simulo’s read-only collection of validated assets. Its
references start with simulo/, which keeps them apart from assets your
organization owns.
List the robots in it:
simulo asset list --global --kind robotSearch the global catalog and your organization’s catalog together:
simulo asset search cartpole --kind robotInspect one version before you use it:
simulo asset inspect simulo/robot/cartpole:v1The output shows the asset’s description, entry file, package digest, where it came from, each validation it passed, and facts measured from the model, such as its joints, collision meshes, units, and total mass. To keep the full validation report:
simulo asset inspect simulo/robot/cartpole:v1 \ --report cartpole-validation.jsonUse the same reference in Python:
import simulo
cartpole = simulo.Asset.from_registry("simulo/robot/cartpole:v1")The simulo create starter already declares this handle in task.py. You
don’t download the asset or copy it into your app.
Publish your own asset
Section titled “Publish your own asset”Your organization’s catalog holds the robots, worlds, and props you publish.
Their references have no simulo/ prefix, for example robot/my-arm:v1.
To run the cloud validation without publishing anything:
simulo asset validate ./my-arm \ --kind robot \ --entry robot.urdf \ --report my-arm-validation.jsonWhen it passes, publish it:
simulo asset publish ./my-arm \ --kind robot \ --name my-arm \ --entry robot.urdfsimulo asset publish checks the package on your computer, uploads it with
the files it references, and runs the same cloud validation. The new version
becomes usable only when validation passes; a version that fails validation
is never published. Then inspect it and use it like a global asset:
simulo asset inspect robot/my-arm:v1my_arm = simulo.Asset.from_registry("robot/my-arm:v1")For a robot, validation checks the package’s structure, then drops the robot
into a simulation to check that it settles and that its joints move. A URDF
robot is converted to USD first. A URDF can’t say whether the robot is bolted
down, so URDF robots are treated as fixed-base unless you pass
--base floating. Asset validation explains
the report and common fixes.
Pin exact versions
Section titled “Pin exact versions”Name an exact version, such as :v1, so the app uses the same asset every
time you run it. To make simulo run enforce that:
simulo run train.py --frozen --strict-assets--frozen refuses to submit if any asset has no exact version.
--strict-assets refuses to submit if any asset is deprecated or hasn’t been
validated on the job’s runtime.
Change the asset reference in your app’s task.py, then update the task for
the new robot. See Create your first
app.