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, off-policy, MLX, HIM-PPO, and HORA 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:
conf/ppo/config.yamlfor torch PPO.conf/ppo/config_mlx.yamlfor MLX PPO.conf/appo/config.yamlfor APPO.conf/offpolicy/config.yamlplusconf/offpolicy/algo/*.yamlfor SAC, TD3, and FlashSAC.conf/ppo_him/config.yamlandconf/hora_distill/config.yamlfor the specialized HIM-PPO and HORA paths.
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