Repository organization

Repository organization#

The Isaac Lab repository is structured as follows:

IsaacLab
├── .vscode
├── .flake8
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── LICENSE
├── isaaclab.bat
├── isaaclab.sh
├── pyproject.toml
├── README.md
├── docs
├── docker
├── source   ├── extensions
│      ├── omni.isaac.lab
│      ├── omni.isaac.lab_assets
│      └── omni.isaac.lab_tasks
│   ├── standalone
│      ├── demos
│      ├── environments
│      ├── tools
│      ├── tutorials
│      └── workflows
├── tools
└── VERSION

The source directory contains the source code for all Isaac Lab extensions and standalone applications. The two are the different development workflows supported in Isaac Sim.

Extensions#

Extensions are modularized packages that formulate the Omniverse ecosystem. In Isaac Lab. these are written into the source/extensions directory. To simplify the build process, Isaac Lab directly use the setuptools python package to build the python module provided by the extensions. This is done by the setup.py file in the extension directory.

The extensions are organized as follows:

  • omni.isaac.lab: Contains the core interface extension for Isaac Lab. This provides the main modules for actuators, objects, robots and sensors.

  • omni.isaac.lab_assets: Contains the extension with pre-configured assets for Isaac Lab.

  • omni.isaac.lab_tasks: Contains the extension with pre-configured environments for Isaac Lab. It also includes wrappers for using these environments with different agents.

Standalone#

The source/standalone directory contains various standalone applications written in python. They are structured as follows:

  • benchmarks: Contains scripts for benchmarking different framework components.

  • demos: Contains various demo applications that showcase the core framework omni.isaac.lab.

  • environments: Contains applications for running environments defined in omni.isaac.lab_tasks with different agents. These include a random policy, zero-action policy, teleoperation or scripted state machines.

  • tools: Contains applications for using the tools provided by the framework. These include converting assets, generating datasets, etc.

  • tutorials: Contains step-by-step tutorials for using the APIs provided by the framework.

  • workflows: Contains applications for using environments with various learning-based frameworks. These include different reinforcement learning or imitation learning libraries.