Platform
simulo.App declares a job container; simulo.Runtime picks what it runs in; simulo.Volume gives it durable storage; simulo.callbacks hooks its lifecycle.
simulo.App— Job container — declare jobs with@app.joband submit withsimulo run.simulo.Runtime— A Simulo-curated runtime — picked by name;imports()boundary;torch_jitkernels.simulo.Volume— Named, durable, writable volume mounted into a running job.simulo.callbacks— Thesimulo.callbackssubmodule — job lifecycle callbacks passed to@app.job(callbacks=[...]).
Errors
Section titled “Errors”Every error the simulo client and the simulo-backend GPU runtime raise for a contract violation shares this one hierarchy. except simulo.SimuloError catches anything Simulo-raised without a second import; catch a specific subclass below when your code needs to react differently. The hierarchy is flat — every subclass extends SimuloError directly, none extend each other.
simulo.SimuloError— Root of the shared Simulo exception hierarchy — catch this to handle any Simulo-raised error generically.simulo.ContractViolationError— An object failed to satisfy a Simulo contract/Protocol — e.g. a customTask/Scenariosubclass with a missing or mismatched member.simulo.ImportResolutionError— A deferredruntime.imports()symbol was used in local discovery mode without a resolved cloud import.simulo.ResourceNotFoundError—from_registry()/from_name()-style resolution could not find the named resource or volume.simulo.ResumeIncompatibleError— A discovered checkpoint is incompatible with the current job.simulo.JobFailedError— Raised when a submitted job terminates in a failed state.
Assets
Section titled “Assets”Two distinct names live here, and they are not interchangeable. simulo.Asset is the catalog handle — a versioned, published, read-only input you name by ref. simulo.AssetSource is the model source — a plain USD/URDF file path with no catalog identity. Reach for simulo.Asset unless you specifically need an unpublished file; see Volumes & Assets for which one to pick.
simulo.Asset— Read-only catalog handle (simulo/robot/cartpole:v1) with submit-time version pinning, plus lower-levelusd()/urdf()model sources.simulo.AssetSource— A USD/URDF model source named by file path — no catalog identity, no version pin.simulo.USDAsset— A USD model source — whatsimulo.AssetSource.usd(path)returns.simulo.URDFAsset— A URDF model source — whatsimulo.AssetSource.urdf(path)returns.
Outputs
Section titled “Outputs”simulo.save_output(name, path) validates and records a general file while a job is running. Returning successfully makes eligible registrations available to the worker for upload; a file appears in simulo outputs only after that upload is persisted. A cancelled, timed-out, crashed, or failed job does not deliver its registered files, and a refused or unsuccessful upload can also leave one undelivered. Use a named Volume for files another job needs. OutputKind is documented on Wire & identifiers.
simulo.save_output— Register a general file for upload after a successful job; it becomes downloadable only once persisted.simulo.Output— A validated file registration created while a job is running; eligible registrations become Outputs only once persisted.