RL training visualizer for Mujoco Playground environments + Brax training
Project description
Welcome to rscope!
A light-weight package to collect and interactively visualize trajectories while training Mujoco Playground environments. Rscope can visualize both local and remote (potentially headless) training runs.
Installation
[!IMPORTANT]
- Requires Python 3.10 or later.
pip install rscope
Usage
[!IMPORTANT] Mac users must run
mjpythoninstead of python, ex.mjpython -m rscope
Local training runs
To visualize locally stored rollouts:
python -m rscope
Remote training runs
Below, update user@remote_host, for example alice@168.42.4.8.
First, set up password-free key-based SSH connection with the remote device:
ssh-keygen -t ed25519 -f ~/.ssh/rsync_key -N ""
ssh-copy-id -i ~/.ssh/rsync_key.pub user@remote_host
If this worked, you should be able to ssh in without using a password:
ssh -i ~/.ssh/rsync_key user@remote_host
echo hello
exit
To visualize rollouts stored on a remote server via SSH:
python -m rscope --ssh_to user@remote_host[:port] --ssh_key ~/.ssh/rsync_key --polling_interval 5 # port defaults to 22
Features
- Most features from Mujoco viewer
- Browse through trajectories. Use left/right arrow keys to switch through parallel environments and up/down for recent/past trajectories.
- Live Plotting. Use
SHIFT+Mto plot trajectory rewards and the contents ofstate.metrics, up to the first 11 keys. - Pixel Observations. Use
SHIFT+Oto overlay pixel observations if available. To use this feature, the observation must be adictand the pixel keys must be prefixed withpixels/.
Sharp bits
Some background on how rscope works: between policy updates, rscope unrolls multiple trajectories in parallel then visualizes them on CPU. While this is simpler to implement and less expensive than tracing training runs like in IsaacLab, this and other implementation details lead to some unexpected gotchas:
- Typically, stochastic policies are used for evaluating training progress while determinsitic ones are deployed. While you can use rscope on stochastic policies to get a feel for the agent's training exploration, we recommend deterministic evals.
- Renders incorrectly for domain-randomized training because the loaded assets are from the nominal model definition.
- Plots only the first 14 keys in the metrics without filtering for shaping rewards.
- Visualizes only the first 14 pixel observations.
- Cannot capture curriculum progression during training, as curriculums depend on
state.info, which is reset at the start of an evaluator run. - Currently supports only PPO-based training.
Contribution Guidelines:
Please run the following before making a PR:
pip install -e ".[dev]"
pre-commit install
pre-commit run --all-files
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rscope-0.0.8.tar.gz.
File metadata
- Download URL: rscope-0.0.8.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9c47a2339d8f297afafc20bd40c82e4e6f224e5aa1224c71773b154915398fc
|
|
| MD5 |
d18bdf449854147907aa7041322fa9bf
|
|
| BLAKE2b-256 |
f5c553157b6de27db05204c2be5ca5d1174409227aea75cd26e4c992fc40f6fd
|
File details
Details for the file rscope-0.0.8-py3-none-any.whl.
File metadata
- Download URL: rscope-0.0.8-py3-none-any.whl
- Upload date:
- Size: 25.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f179f9f18418e17fe655e358953d04e70dd494d5a88d00b615e9910942e87c2
|
|
| MD5 |
853868e51bf636735c64df1de2901c56
|
|
| BLAKE2b-256 |
958e73c9423b5f19d8a05e894f6c3d1e599cd4a66c617b5a72cdbce08332fd7c
|