Configuration Overview
Each stage of PARC uses its own config file:- parc_1_train_gen: Motion diffusion model training
- parc_2_kin_gen: Kinematic motion synthesis
- parc_3_tracker: Physics-based tracking controller training
- parc_4_phys_record: Recording physics-based motions
- create_dataset_config: Dataset assembly
- motionscope_config: Viewer settings
- motion_opt configs: Optimization parameters
Path Resolution
PARC configs support path variables:Environment Variables
Relative Paths
Paths are resolved relative to the repository root:Common Configuration Patterns
Device Selection
All configs use thedevice field:
Weights & Biases Logging
Many stages support wandb:Output Directories
All stages write tooutput_dir:
Configuration by Stage
1. Motion Generator Training
File:data/configs/parc_1_train_gen_default.yaml
Key sections:
2. Motion Synthesis
File:data/configs/parc_2_kin_gen_default.yaml
Key sections:
3. Tracking Controller
File:data/configs/parc_3_tracker_default.yaml
Key sections:
4. Recording Motions
File:data/configs/parc_4_phys_record_default.yaml
Key sections:
Dataset Configuration
Motion Library Format
Dataset YAML files list motions with weights:- Higher weight = sampled more often
- Use to balance dataset (e.g., lots of walking, few climbing)
Create Dataset Config
Automatically generates dataset YAML from directories:Character Configuration
File:data/assets/humanoid.xml
Defines character skeleton:
- Joint hierarchy
- Body part names
- Collision geometry
- Mass and inertia properties
- Motion generator (for body positions)
- Tracking controller (for PD targets)
- MotionScope (for visualization)
Optimization Configuration
Standalone optimization configs inPARC/motion_synthesis/motion_opt/config/:
Example: motion_opt.yaml
MotionScope Configuration
File:PARC/motionscope/motionscope_config.yaml
Managing Iterations
For multi-iteration PARC training, organize configs by iteration:Configuration Best Practices
1. Use Environment Variables
2. Version Control Configs
3. Document Custom Configs
Add comments:4. Use Config Templates
Create base configs and inherit:5. Validate Before Running
Check paths exist:Troubleshooting
Path Not Found
Symptoms: “error opening file” errors Solutions:- Check
$DATA_DIRis set:echo $DATA_DIR - Use absolute paths for debugging
- Verify file exists at resolved path
- Check permissions
Config Parsing Errors
Symptoms: YAML syntax errors Solutions:- Validate YAML:
python -c "import yaml; yaml.safe_load(open('config.yaml'))" - Check indentation (use spaces, not tabs)
- Quote strings with special characters
- Ensure lists use
-prefix
Wrong Values Used
Symptoms: Training uses unexpected settings Solutions:- Verify correct config file passed:
--config path/to/config.yaml - Check for typos in parameter names
- Print loaded config at runtime for debugging
- Ensure no conflicting defaults
Advanced Configuration
Conditional Configs
Use YAML anchors for shared settings:Config Overrides
Some scripts support command-line overrides:Nested Configs
Configs can reference other configs:Next Steps
- Start pipeline: Begin with Training Motion Generator
- Customize: Modify configs for your character and task
- Iterate: Run full PARC loop with custom configs
- Visualize: Use MotionScope to review results