YAML:
generalclassGeneralConfigGeneral
Controls project scanning and asset root path mapping. All root_key:// protocol paths resolve through this block.
Top-level Fields15
| Field | Type | Required | Default | Description / Constraints |
|---|---|---|---|---|
scan_project | bool | optional | false | Scan user project on startup to auto-register custom stereotypes defined via @stereotype (executed by ProjectLoader.scan_project) |
root_paths | dict[str, str] | optional | {} | Asset root path mapping; keys become root_key:// protocol prefixes, values are local absolute directory paths ⚠Each path must be an existing local directory; validate_root_paths() raises on startup if a path is missing |
silenced_loggers | list[str] | optional | ["isaaclab", "omni", "carb", "curobo"] | List of third-party logger names to silence |
log_to_terminal | bool | optional | true | Whether to output logs to the terminal |
log_terminal_level | string | optional | DEBUG | Terminal log output level ⚠DEBUG / INFO / WARNING / ERROR / CRITICAL |
log_output_dir | string | optional | null | Log file output directory; null disables file logging |
log_output_name | string | optional | null | Log file name (without extension); null for auto-generated |
log_file_level | string | optional | DEBUG | File log output level ⚠DEBUG / INFO / WARNING / ERROR / CRITICAL |
log_file_format | string | optional | text | Log file format ⚠text / json |
log_file_max_size_mb | float | optional | 10.0 | Maximum log file size in MB before rotation |
log_file_backup_count | int | optional | 5 | Number of rotated log file backups to retain |
enable_profiling | bool | optional | false | Enable profiling to record time spent in each phase |
profiling_outlier_threshold_ms | float | optional | 500.0 | Profiling outlier threshold in ms; calls exceeding this are flagged |
cache_dir | string | optional | null | Asset cache directory (for remote/platform assets). null = use JOYSIM_CACHE_DIR env var, fallback to ~/.joysim_cache |
seed | int | optional | null | Global RNG seed (applied to random / numpy / torch / curobo). null = derive from current time; the resolved seed is logged at startup so non-deterministic runs can still be replayed |
Example
general blockYAML
general:
scan_project: true
root_paths:
assets: /home/user/robot_assets
datasets: /home/user/datasets
log_to_terminal: true
log_terminal_level: INFO
log_output_dir: logs/
log_file_level: DEBUG
log_file_format: text
log_file_max_size_mb: 10.0
log_file_backup_count: 5
enable_profiling: false
# 使用效果 / Usage:
# assets://robots/ur5.usd → /home/user/robot_assets/robots/ur5.usd
# datasets://runs/run001 → /home/user/datasets/runs/run001