Skip to content

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.job and submit with simulo run.
  • simulo.Runtime — A Simulo-curated runtime — picked by name; imports() boundary; torch_jit kernels.
  • simulo.Volume — Named, durable, writable volume mounted into a running job.
  • simulo.callbacks — The simulo.callbacks submodule — job lifecycle callbacks passed to @app.job(callbacks=[...]).

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.

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-level usd()/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 — what simulo.AssetSource.usd(path) returns.
  • simulo.URDFAsset — A URDF model source — what simulo.AssetSource.urdf(path) returns.

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.