Configuration and files#
Every file and directory wbc-mjlab reads or writes, and the formats of the YAML files you may edit by hand.
Directory layout#
<repo>/
data/<robot>/<dataset>/ motion clips — sources (*.csv, *.pkl) and npz/ after conversion
logs/rsl_rl/<experiment>/ training runs (one folder per run)
logs/studio/jobs/ Studio jobs: command, log, status (*.json, *.log)
demos/ bundled demo checkpoint
~/.config/wbc-mjlab/ per user, never in the repo
presets/<name>.yaml Studio presets
modules/<name>.yaml Studio modules
robots/<id>/ robots added from model files (robot.yaml + model)
A training run:
logs/rsl_rl/<experiment>/<timestamp>_<run_name>/
model_<iteration>.pt checkpoints
events.out.tfevents.* TensorBoard
params/
env.yaml, agent.yaml the configs as trained
policy.onnx deploy policy (actor only)
config.yaml deploy tracking params (wbc_tracking_params_v1)
rsi_bin_stats.npz adaptive-sampling state (when persisted)
studio_preset.yaml Studio presets only: the preset as trained
<experiment> comes from the task (Wbc-G1 → wbc_g1); a Studio preset
<task>--<name> logs to <experiment>--<name>. config.yaml schema:
Export. Data layout: Motion data formats.
Environment variables#
Variable |
Effect |
|---|---|
|
Per-user config directory (default |
|
Rendering backend; |
|
GPUs visible to training; |
|
|
Studio preset file#
presets/<name>.yaml — a diff on top of a registered task, written by the Studio
(Preset → Save as) or by hand. Registered as task <base>--<name>.
base: Wbc-G1 # registered task the preset starts from
robot: g1 # filled in on save
modules: [se] # applied in order, before the overrides
description: SE + keybody refs, history 2
overrides:
observations:
actor:
history_length: 2
enable_corruption: true
terms:
ref_body_pos: {add: true, bodies: [pelvis, left_wrist_yaw_link]}
joint_vel: {noise_scale: 2.0}
projected_gravity: {enabled: false}
rewards:
motion_body_pos: {weight: 2.5, params: {sigma_per_keybody: 0.15}}
anti_shake: {enabled: false}
terminations:
anchor_pos: {params: {threshold: 0.5}}
command:
rsi.bin_width_s: 2.0
env.episode_length_s: 20.0
events:
push_robot: {params: {velocity_range.x: [-1.0, 1.0]}}
terrain:
curriculum.start_row: 2
rough.noise_range: [0.0, 0.15]
agent:
algorithm.learning_rate: 5.0e-4
actor.hidden_dims: [512, 256, 128]
Section |
Keys |
|---|---|
|
Per group ( |
|
|
|
|
|
Motion-command fields by dotted path ( |
|
Procedural-terrain tasks only: |
|
Runner fields by dotted path ( |
The Studio’s Preset step lists every key a task accepts, with its default
(GET /api/presets/schema?base=<task>).
Studio module file#
modules/<name>.yaml — the same overrides without a base, switched on in any
preset (modules: [<name>]).
description: actor without the last action
robot: g1
overrides:
observations:
actor:
terms:
actions: {enabled: false}
The built-in module se is computed from the robot’s <task>-SE / <task> pair and
can’t be edited (copy it with Save as module…).
Run snapshot#
params/studio_preset.yaml — written when a Studio preset trains: the preset file with
resolved_modules (each module’s name and overrides) inlined. Play rebuilds the
run from it, so later edits to the preset or its modules don’t change how the run replays.
Robot spec (robot.yaml)#
robots/<id>/robot.yaml — a robot added from its model files
(Add a robot from model files).
Field |
Meaning |
|---|---|
|
Robot id: lowercase letters, digits, |
|
Source MJCF / URDF, relative to the robot folder ( |
|
Body the reference is expressed in (usually the torso) |
|
Tracked bodies (rewards, RSI, terminations) |
|
End-effectors (EE height termination, the EE task’s command) |
|
Feet (contact, air time, conversion height correction) |
|
Sites under the soles for the foot-slip reward (empty: reward dropped) |
|
Named foot collision geoms for friction randomization (empty: not randomized) |
|
Foot body height above the floor when standing (m) |
|
Root height (m) and joint defaults (rad) of the initial pose |
|
Per joint: |
|
Policy action = |
|
Contact / constraint buffers per env |
|
Shown in task listings |
Python API: Robots without code.
See also
WBC Studio (where these files are edited) · Command-line reference · Studio HTTP API