Resource management roadmap
The goal is for lab to manage immutable asset packages and independently controlled laboratory instances: acquire a resource, create an instance, operate it, stop it, and reclaim it. The first instance runtime is local OpenSDL kinematic simulation. Model previews, asset packages, and runtime instances have distinct responsibilities.
Current progress
Status as of 2026-10-15. OpenSDL resource management, the local asset daemon, and explicit USD component splitting are merged in OpenSDL PR #25 and published in the v0.3.1 release. Hub delivery is merged in Hub PR #3, with receipt redirect fixes merged in PR #7.
Stage one: assets to instances
The lab asset and lab instance command groups are implemented. Creation freezes the package digest and world configuration; moving a tag cannot change a retained instance. Stopped and failed instances still occupy their original package. Removal releases that occupation, and GC preserves shared blobs according to actual references.
Acceptance covers two independent instances, authenticated device calls, stop/restart, tag changes, process crashes, invalid configuration/paths, and package occupation versus GC. The complete local OpenSDL test suite includes a real OCI Registry round trip. The top-level shortcuts reuse the same instance and asset state transitions. They provide a Docker-like control surface while the runtime remains local kinematic simulation and does not provide OS container isolation.
Stage two: publication and discovery
Add explicit Hub login and publication configuration, and organize Registry upload, preview upload, and catalog admission into a retryable publication workflow. Keep credentials separate by responsibility and published versions immutable. Failures show completed steps and the point from which work can continue. Search results expose runtime requirements so visual assets are not mistaken for runnable packages.
Acceptance: publish an isolated test asset, find it, pull its exact digest, and create an instance. Missing authority, preview failures, and admission failures produce explicit outcomes.
Stage three: reproducible laboratory scenes
Define typed scene composition and a dependency lockfile that fixes asset digests, device identities, and connections. Validate the full dependency graph before creation. Offline mode explicitly reports missing resources; the selected local runtime continues to own execution.
Acceptance: the same lockfile creates the same scene from a clean store and a complete offline store. Missing, cyclic, and conflicting dependencies are rejected before startup.
Stage four: runtimes and operations
Add adapters such as MuJoCo/Isaac when required, with explicit runtime version, platform, and device availability checks. Then add CPU/memory/GPU budgets, health checks, log rotation, and event diagnostics. A missing runtime or offline device is unavailable; execution never moves automatically to another device or the cloud.
Kinematic currently provides deterministic device-state evolution. OS container isolation, network/volume management, arbitrary program execution, and full physics simulation are outside the first release. Each needs its own laboratory contract and acceptance criteria; a Docker-like command experience does not imply those capabilities already exist.