Project Structure¶
UniLab keeps runtime contracts, configuration, training scripts, and docs in separate owner areas. Use this map when you need to find the right layer before changing behavior.
Path |
Owner Role |
|---|---|
|
Thin training and tooling entrypoints. Scripts compose Hydra config and call owner-layer code. |
|
Hydra roots and task owner YAMLs. The top-level CLI exposes backend selection as |
|
Registry, env state, scene, and backend contracts. |
|
Task env implementations and task-specific reset, reward, observation, and DR logic. |
|
PPO, APPO, and off-policy algorithm code. |
|
Shared-memory and async runner primitives. |
|
Shared training helpers for logging, playback, seed handling, and config guards. |
|
Playback, rendering, NaN inspection, and scene/export utilities. |
|
Contract, config, env, algorithm, script, and integration tests. |
|
English user, deployment, developer, and reference docs. |
|
Chinese docs with compatibility paths handled by the language switcher. |
Config Layout¶
The main config roots are:
src/unilab/conf/ppo/config.yamlfor torch PPO.src/unilab/conf/appo/config.yamlfor APPO.src/unilab/conf/sac/config.yaml,src/unilab/conf/td3/config.yaml, andsrc/unilab/conf/flashsac/config.yamlfor SAC, TD3, and FlashSAC, each with its algorithm hyperparameters inlined.
Task owner YAMLs are the backend identity. Examples:
uv run train --algo ppo --task go2_joystick_flat --sim mujoco
uv run train --algo ppo --task go2_joystick_flat --sim motrix
uv run train --algo sac --task g1_walk_flat --sim mujoco
Do not switch backends by overriding training.sim_backend alone.
Where To Go Next¶
User training commands: CLI Reference
Hydra owner YAMLs: Hydra Config
Contracts for contributors: Developer Guide