Developer Guide

Use this section when you are changing UniLab itself: runtime contracts, backend capabilities, task owners, algorithms, tests, or contribution workflow.

Architecture overview

Runtime model, layer ownership, config-first rules, and validation standards.

Architecture Overview
Registry

Bootstrap imports, env registration, and runtime construction.

Registry Bootstrap
Env contract

NpEnvState, reset/step shape, observation groups, and wrapper expectations.

Env Contract
Backend contract

The SimBackend boundary and optional capability pattern.

Backend Capability Contract
Task owner contract

Hydra owner YAML identity and backend-selection rules.

Task Owner Config Contract
Domain randomization contract

Init, reset, interval, and backend capability boundaries for DR providers.

Domain Randomization Contract

Extending

New task

Add env config, registration, owner YAMLs, and tests.

Extending UniLab: New Task
New backend

Add a SimBackend implementation and explicit capability support.

Extending UniLab: New Backend
New algorithm

Add configs, runner code, and script-level assembly without changing env contracts.

Extending UniLab: New Algorithm
New terrain

Extend terrain generation while keeping asset access on cold paths.

Extending UniLab: New Terrain

Contributor Workflow