Quickstart¶

This section walks you through the installation and usage of judo. For more details on the design of judo and creating custom tasks and optimizers, see the Interface section.

1. Installation¶

Using pip¶

We recommend installing judo using pip as follows:

pip install judo-rai  # if you want dev dependencies, use judo-rai[dev]

Developers¶

Conda¶

For developers, run the following commands from this folder after cloning:

conda create -n judo python=3.13
conda activate judo
pip install -e .[dev]  # includes docs dependencies
pre-commit install
pybind11-stubgen mujoco -o typings/  # stops type checkers from complaining

Pixi¶

You can also use ``pixi` <https://pixi.sh/dev/>`_ instead of conda, which has the added benefit of having an associated lock file that ensures complete reproducibility.

To install pixi, run the following:

curl -fsSL https://pixi.sh/install.sh | sh

To create our environment (and activate it each time later), run the following in the repo root:

# every time you want to activate
pixi shell -e dev  # includes docs dependencies

# first time only
pre-commit install
pybind11-stubgen mujoco -o typings/

2. Run the judo app!¶

To start the simulator, you can simply run:

judo

We package judo with a few starter tasks and optimizers. If you want to start the simulator with one of these, you can run:

judo task=<task_name> optimizer=<optimizer_name>

where task_name is one of the following:

cylinder_push
cartpole
fr3_pick
leap_cube
leap_cube_down
caltech_leap_cube

and optimizer_name is one of the following:

cem
mppi
ps

This is not necessary, though, because you can use the dropdown menus to switch between tasks and optimizers after launching the app.

task_dropdown optimizer_dropdown

You can also run the app programmatically from some other script or program.

from judo.cli import app

if __name__ == "__main__":
    # do whatever you want here, like registering tasks/optimizers/overrides, etc.
    app()  # this runs the app from your own script

3. Running judo as a Dependency¶

You can easily install judo as a dependency in your own project. A few comments:

  • You can still use the judo CLI command from anywhere, so long as you are working in an environment where judo is installed.

  • If you do this, you should use the hydra configuration system to do things like registering custom tasks and optimizers, modifying the dora nodes in the sim stack, etc. See the Configuration with hydra and Config Registration sections for more details.

  • You can also run the app programmatically, as shown above.

4. Benchmarking¶

To benchmark all registered tasks and optimizers, simply run

benchmark

This will loop through all task/optimizer pairs and check the planning time over 100 samples. The end result will be printed to the console, showing useful statistics on your system.

Note that the benchmarking program runs the default task and optimizer parameters (subject to default task-specific overrides). If you want to benchmark with different settings, please read the information below, which explains how to change defaults.