Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
184 commits
Select commit Hold shift + click to select a range
5d97a8f
Add CPU option to run policy closedloop (#254)
xyao-nv Dec 3, 2025
553d4ea
expose the env spacing parameter (#260)
viiik-inside Dec 4, 2025
6c305d4
Add comment to show that this is manual annotation (#257)
viiik-inside Dec 4, 2025
778177d
Add/ground plane anbd light (#253)
viiik-inside Dec 4, 2025
fdc26ac
Add env cfg callback to modify env cfg (#259)
viiik-inside Dec 4, 2025
0ed52f8
Move to public CI (#250)
alexmillane Dec 5, 2025
c7b7077
Update docs link in the README. (#270)
alexmillane Dec 8, 2025
e544861
Correct public CI tags. (#276)
alexmillane Dec 9, 2025
3c3c789
Move back to mapping the whole repo. (#275)
alexmillane Dec 10, 2025
4b94723
Reenable pre-commit. (#278)
alexmillane Dec 11, 2025
587600d
Policy consumes task description from Task (#280)
xyao-nv Dec 11, 2025
43ed13f
Package example_environments into isaaclab_arena_environments (#281)
xyao-nv Dec 11, 2025
e92e000
multi-versioned docs (#272)
alexmillane Dec 11, 2025
4c267fb
Refactor tear down func for persistent app (#282)
xyao-nv Dec 12, 2025
deb3913
Fix git ownership issues in deployment pipeline. (#284)
alexmillane Dec 12, 2025
dba0995
Update README.md (#288)
viiik-inside Dec 12, 2025
b4feca3
Update object library paths to use ISAAC_NUCLEUS_DIR prefix (#291)
peterd-NV Dec 15, 2025
415a327
Refactors mimic_env_cfg building logic in arena_env_builder (#273)
rebeccazhang0707 Dec 16, 2025
3bb3ede
add settings file to pick up packages for easier development (#294)
viiik-inside Dec 16, 2025
d2c40d9
Add RigidObjectSet class to enable multi-object spawning (#290)
xyao-nv Dec 16, 2025
3b1f31a
Add SequentialTaskBase class (#289)
peterd-NV Dec 17, 2025
cf797d0
Fix mis-named mimic eef in tasks (#297)
peterd-NV Dec 17, 2025
12a2e59
Refactor OpenDoor task and Introduce CloseDoor Task (#295)
xyao-nv Dec 18, 2025
518af83
Feature/teleop design (#286)
viiik-inside Dec 18, 2025
f6c9d91
Add warning in docs (#302)
viiik-inside Dec 18, 2025
40cd404
adds new embodiment of Agibot A2D (#292)
rebeccazhang0707 Dec 18, 2025
6c057f8
Add instruction to build multi docs (#304)
viiik-inside Dec 18, 2025
e8e83e1
Basic RL workflow example (#287)
viiik-inside Dec 18, 2025
2255e54
Add add ons to set configurations (#308)
viiik-inside Dec 22, 2025
012dabd
Adds new new affordance: placeable and new atomic task: place upright…
rebeccazhang0707 Dec 23, 2025
1a2abef
Add task <adjust_pose> and corresponding example <adjust_dexcube_pose…
lancel-nv Dec 24, 2025
acda7c8
Fix/pose range (#309)
viiik-inside Jan 5, 2026
bd7df61
Update/headers (#313)
viiik-inside Jan 5, 2026
a4ffee4
Refactor: CLI flags into policies (#314)
alexmillane Jan 6, 2026
73d1f64
Add factory_assembly_task and the relevant task examples (#285)
yami007007 Jan 6, 2026
80991c0
Refactor: remove GR00T code from core framework (#325)
alexmillane Jan 7, 2026
493067f
Automatic pose reset events for objects. (#324)
alexmillane Jan 7, 2026
4ac6760
GR00T folder refactor (#319)
alexmillane Jan 8, 2026
63faf14
Add TurnKnob atomic task (#315)
xyao-nv Jan 8, 2026
58f5bd7
Add Multi-task Evaluation Job Runner (#277)
xyao-nv Jan 12, 2026
b69da35
Add sequential task example: put into microwave and close door (#323)
qianl-nv Jan 13, 2026
1a04410
Refactor Policy args with a dataclass (#332)
xyao-nv Jan 15, 2026
164226a
Fix failed tests (#338)
xyao-nv Jan 21, 2026
7b801f7
Fix: Duplicate assets (#335)
alexmillane Jan 21, 2026
42c213a
Add mimic and metrics support to sequential composite tasks (#337)
peterd-NV Jan 22, 2026
fc7cd13
Refactor: Pose randomization (#340)
alexmillane Jan 22, 2026
0c4ff70
Add Differentiable Object Placement with Semantic Relations (#328)
cvolkcvolk Jan 23, 2026
8e1fce3
Jupyter notebook instructions (#341)
cvolkcvolk Jan 23, 2026
35e6228
Fix: Incorrect exit code on test failure (#344)
alexmillane Jan 26, 2026
9eb9f68
Allow IsaacLabArenaEnvironment embodiment to be None (#342)
cvolkcvolk Jan 26, 2026
3ae864b
Relation solving works within ArenaEnvBuilder (#345)
cvolkcvolk Jan 26, 2026
110dd9d
NoTask & IsaacLabArenaEnvironment accepts TaskBase = None (#348)
cvolkcvolk Jan 26, 2026
e09f731
Create _isaac_sim symlink when starting container (#351)
peterd-NV Jan 26, 2026
b7b5517
Fix: verbose exception printing (#347)
alexmillane Jan 26, 2026
c6c81d2
Upgrade to GR00T N1.6 (#334)
xyao-nv Jan 26, 2026
f0805b5
Add mimic data gen default params and test case for seq task (#352)
peterd-NV Jan 27, 2026
ab85e8a
Update annotated_dataset HF download command for static manip workflo…
peterd-NV Jan 27, 2026
f6d919d
Change string to compare as we now call a device openxr (#355)
viiik-inside Jan 28, 2026
d45c4bf
Update xr config based on initial pose (#356)
viiik-inside Jan 28, 2026
14bd1d0
NextTo relation handles all sides (#357)
cvolkcvolk Jan 28, 2026
bcf1868
Fix: object pose randomization test (#361)
alexmillane Jan 28, 2026
94d966a
Add instruction for asset uploading (#353)
xyao-nv Jan 28, 2026
76e6cee
Unary AtPosition() strategy (#358)
cvolkcvolk Jan 28, 2026
a1bef47
Fix failing Ci Build Docs steps (#364)
cvolkcvolk Jan 28, 2026
6033915
Relation solver supports multiple anchors (#362)
cvolkcvolk Jan 29, 2026
6fb5204
Support Objects with rigid bodies not at root (#366)
alexmillane Jan 29, 2026
09a686a
Fix reference to coffeemachine asset (#369)
xyao-nv Jan 30, 2026
f3962a2
ObjectReferences work with ObjectPlacer (#354)
cvolkcvolk Jan 30, 2026
0d718a7
Add user specifiable final subtask success state (#365)
peterd-NV Jan 30, 2026
909385a
Support multi-env & enable_cameras in multi-task eval (#360)
xyao-nv Jan 31, 2026
723e5a3
Update doc & cmds for GN1.6 action replay & post-training (#368)
xyao-nv Feb 2, 2026
490b5d9
Evaluation of a RSL RL policy (#333)
viiik-inside Feb 2, 2026
63d80c1
Docs/rl workflow (#363)
viiik-inside Feb 2, 2026
4142864
Fix RL workflow docs (#373)
cvolkcvolk Feb 2, 2026
caa698e
fix indentation (#372)
viiik-inside Feb 2, 2026
487a9ac
Fix rst formatting (#374)
cvolkcvolk Feb 2, 2026
f9208b9
Add Task Sorting and Corresponding Example (#371)
lancel-nv Feb 3, 2026
e373ab1
Gr00t tests share simulation app (#367)
cvolkcvolk Feb 4, 2026
78083f3
Fix pre-merge docs CI to validate PR changes (#378)
cvolkcvolk Feb 4, 2026
eaa83f8
RandomAroundSolution marker for pose randomization around solver solu…
cvolkcvolk Feb 4, 2026
51eb927
Support variable contact sensor for Sorting task. (#381)
lancel-nv Feb 5, 2026
ea0c1e1
ObjectPlacer handles RotateAroundSolution (#387)
cvolkcvolk Feb 5, 2026
a143039
Isaac arena env to not a dataclass (#389)
alexmillane Feb 5, 2026
fe6b0e4
Fix doc on policy_runner.py dir (#380)
xyao-nv Feb 5, 2026
d5ed22f
Add GR1 DLI env and workflow (#385)
peterd-NV Feb 5, 2026
fe9d4ce
Add wrist cam on franka to fix non-failing failing test (#386)
xyao-nv Feb 5, 2026
c294ca2
remove enable_cameras in example env args (#379)
xyao-nv Feb 6, 2026
4774d5a
Fix RigidObjectSet handling in kitchen pick-and-place environment (#392)
cvolkcvolk Feb 6, 2026
e81d5e4
GTC DLI workflow docs (#390)
peterd-NV Feb 6, 2026
2d6f29e
Fix v0.1 IL GR1 example (#397)
xyao-nv Feb 9, 2026
e4b45e4
ObjectPlacement supports RigidObjectSets (#393)
cvolkcvolk Feb 9, 2026
8f442ec
Add configurable object scale for library objects (Rigid Objs) (#398)
xyao-nv Feb 9, 2026
072179b
Fix: flatdict causing ci failure (#404)
alexmillane Feb 10, 2026
f54e85c
Run for num_episodes (#383)
alexmillane Feb 10, 2026
c7ed95c
Fix bounding box rotation in world frame (#400)
cvolkcvolk Feb 10, 2026
111092a
Expand support for heterogeneous objects in arena (#401)
alexmillane Feb 10, 2026
d47dff9
NextTo relation uses expressive axis direction (#399)
cvolkcvolk Feb 10, 2026
c15fc05
Add contributors file (#376)
alexmillane Feb 10, 2026
733ae26
Fix sequential task subtask success rate metric (#405)
peterd-NV Feb 10, 2026
9985c3f
Update action chunk length to 50 for G1 locomanip example (#406)
xyao-nv Feb 11, 2026
130670d
Add alignment parameter to NextTo relation (#408)
cvolkcvolk Feb 11, 2026
a00abcd
Fix sequential task check for desired_subtask_success_state (#410)
peterd-NV Feb 11, 2026
709de39
Distributed policy_runner on multi-gpu (#411)
xyao-nv Feb 14, 2026
be0c089
Add DROID (#416)
xyao-nv Feb 17, 2026
595ee0c
Add Gr00t inference pipeline for DROID (#418)
xyao-nv Feb 18, 2026
7f3e7d8
Add tenacity install to dockerfile (#422)
peterd-NV Feb 18, 2026
ab0583a
Srl pnp rubiks cube in bowl environment (#421)
cvolkcvolk Feb 19, 2026
a077677
Gr00t N1.6-Droid runs locally on a robolab scene (#420)
cvolkcvolk Feb 19, 2026
05d5057
Franka robot and stand is a single usd (#414)
cvolkcvolk Feb 20, 2026
b7f1003
[GTC DLI] Add objects for zero-shot policy eval (#424)
xyao-nv Feb 20, 2026
93d3d39
Add hdr library and use robolab hdr (#428)
cvolkcvolk Feb 23, 2026
748a64d
Doc fix for sequential static manip example (#432)
xyao-nv Feb 24, 2026
6e00d3e
Follow up: Add hdr library and use robolab hdr (#431)
cvolkcvolk Feb 24, 2026
c6de473
Add robolab objects (#429)
cvolkcvolk Feb 24, 2026
be0ff1a
eval_runner.py supports num_episodes (#434)
cvolkcvolk Feb 24, 2026
7cf2c70
added galbot embodiment (#391)
lancel-nv Feb 25, 2026
da97212
Fix ranching dressing bottle naming (#435)
xyao-nv Feb 25, 2026
4e6dc58
Enable event_cfg for ObjectReference by lifting pose-reset logic to O…
cvolkcvolk Feb 25, 2026
8832526
Add docs compilation for DLI course (#438)
alexmillane Feb 25, 2026
792c529
Doc fix hf path #442 (#443)
xyao-nv Feb 25, 2026
a239d00
Fix box orientation in G1 locomanip env (#441)
peterd-NV Feb 26, 2026
1f62bd6
[FEATURE] remote policy with server/client (#394)
kanghui0204 Feb 26, 2026
f5a74a0
ObjectPlacer: reject overlapping placements (#439)
cvolkcvolk Feb 26, 2026
3a64c11
Gr00t multi stage robolab evaluation (#436)
cvolkcvolk Feb 26, 2026
87bb7a0
Fix imitation_learning script path in doc (#444)
qianl-nv Feb 26, 2026
7fcc128
Fix model path assertion to allow HuggingFace model IDs (#448)
cvolkcvolk Feb 26, 2026
6dc1146
Stop eval_runner.py on job failure by default (#452)
cvolkcvolk Mar 2, 2026
c37f49d
Add policy evaluation section in doc (#451)
xyao-nv Mar 2, 2026
846e380
[Doc] Fix HF download ckpts and closedloop cmd (#457)
xyao-nv Mar 2, 2026
fbf2893
add deps for policy post-training (#459)
xyao-nv Mar 3, 2026
1c4e0ac
Update IsaacLab to latest main (#336)
qianl-nv Mar 4, 2026
dcc7e03
Fix CI pip install to use Isaac Sim Python (#467)
cvolkcvolk Mar 6, 2026
645c678
Fix recorder dataset filename collision in shared /tmp (#469)
cvolkcvolk Mar 6, 2026
4fd95ba
Interop on qianl_isaac_sim_5p1 (#465)
cvolkcvolk Mar 6, 2026
5c4a5bf
Add seq task usage example to docs (#475)
peterd-NV Mar 6, 2026
7bf99d8
Collision Constraints for Objects (#460)
zhx06 Mar 9, 2026
6db669c
Support Quest teleop for G1 locomanipulation example (#350)
qianl-nv Mar 9, 2026
3aabe9d
Follow-up doc nits from PR #465 (#476)
cvolkcvolk Mar 10, 2026
9812aec
Align Arena with Isaac Lab: stop unwrapping env after gym.make() (#472)
cvolkcvolk Mar 12, 2026
04a157f
docs: comprehensive README overhaul (#480)
cvolkcvolk Mar 13, 2026
92e05c6
Add video recording support to eval_runner.py (#445)
cvolkcvolk Mar 13, 2026
3c46bd7
Readme followup (#482)
cvolkcvolk Mar 16, 2026
45b95a1
Add missing release notes for v0.1.1 (#486)
alexmillane Mar 16, 2026
869535c
Add v0.2 release notes for GTC. (#485)
alexmillane Mar 16, 2026
36c6f54
Sphere and initial object velocity (#479)
DavidRecasens Mar 16, 2026
f570edd
Add AGENTS.md and CLAUDE.md (#454)
cvolkcvolk Mar 23, 2026
217fc07
Add SECURITY.md file for v0.2 release compliance (#492)
xyao-nv Mar 23, 2026
c264d4b
object Velocity class like Pose (#490)
DavidRecasens Mar 24, 2026
6fe7621
Update HF dataset download cmds to specified revision (#497)
xyao-nv Mar 24, 2026
33abb88
Change rl_training_mode param type (#502)
qianl-nv Mar 26, 2026
f142c33
Docs: overhaul Getting Started and navigation structure (#505)
cvolkcvolk Mar 30, 2026
910335c
Object placement docs (#511)
cvolkcvolk Mar 31, 2026
aad4f25
Add task observation to the rl policy training (#510)
viiik-inside Mar 31, 2026
7be7836
Lab 3.0 (Newton) (#464)
alexmillane Apr 1, 2026
0f63877
Restore docker tags to latest. (#534)
alexmillane Apr 2, 2026
f7aaf63
First experiments: add GR00T closed-loop docs and language instructio…
cvolkcvolk Apr 2, 2026
e76877c
Add missing deepspeed deps (#531)
xyao-nv Apr 2, 2026
458e562
Ensure ObjectReferences are processed after their parent assets in Sc…
xyao-nv Apr 2, 2026
50e3b00
Move python deps from dockerfile to setup.py (#535)
alexmillane Apr 2, 2026
d530dee
Upgrade interop to Lab 3.0 style. (#533)
alexmillane Apr 2, 2026
ca8659c
Fix GR00T deps torch conflict (#541)
xyao-nv Apr 3, 2026
ad17473
Fix additional episode appearing in RSL-RL policy evaluation metrics…
xyao-nv Apr 3, 2026
ef0fa28
Improve lift rl training example (#529)
qianl-nv Apr 3, 2026
fd28ec4
Add Fabio Ramos and Xuning Yang to contributors (#537)
cvolkcvolk Apr 3, 2026
2b52043
Fix visualizer commands, DROID rotation and ViewCfg (#540)
cvolkcvolk Apr 4, 2026
a0c21ed
Add newton eval example from isaaclab dexsuite (#536)
qianl-nv Apr 6, 2026
9179c58
Initialize On-relation objects within parent footprint (#538)
cvolkcvolk Apr 7, 2026
7633740
Add benchmark publishing guidelines to README (#542)
xyao-nv Apr 7, 2026
ade6f55
Fix documentation policy_runner.py run commands (#437)
cvolkcvolk Apr 7, 2026
5ce1c24
docs: add dedicated page for using Arena from an external repository …
cvolkcvolk Apr 8, 2026
8d9bedc
Add more advanced example of custom task in an external environment (…
alexmillane Apr 8, 2026
2dee451
add pythonpath in doc for gr00t (#553)
xyao-nv Apr 8, 2026
c591214
Old enable pinnoccio commands removed from data generation commands i…
alexmillane Apr 8, 2026
fd98083
Change deprecated --visualizer arg to --viz (#556)
peterd-NV Apr 8, 2026
43547b5
fix camera viewing angles (#558)
xyao-nv Apr 8, 2026
61d3b14
Fix HF dataset version in download command for GR1 Open Microwave Doo…
peterd-NV Apr 9, 2026
4c111d1
Change tabs to tab-set for better appearance in dark mode. (#561)
alexmillane Apr 9, 2026
a101fc8
Add WBC-AGILE end-to-end velocity policy for G1 (#489)
lgulich Apr 9, 2026
d652ed4
Remove RLFramework enum, replace with plain string (#544)
cvolkcvolk Apr 9, 2026
012b8e3
Add NIST gear insertion task with RL-Games training pipeline
seun-doherty Apr 7, 2026
21b1e7b
Migrate quaternion convention from wxyz to xyzw for Isaac Lab 3.0
seun-doherty Apr 7, 2026
4397017
Refactor NIST task for upstream alignment and reduce code duplication
seun-doherty Apr 8, 2026
d93c4a5
Fix rl_training_mode success termination and loosen insertion threshold
seun-doherty Apr 9, 2026
93e071e
Add NIST gear insertion docs, assets, and observation hardening
seun-doherty Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,8 @@
*.tar filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
docs/images/ filter=lfs diff=lfs merge=lfs -text
assets/*.usd filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
156 changes: 113 additions & 43 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2025, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# Copyright (c) 2025-2026, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
Expand Down Expand Up @@ -28,16 +28,18 @@ env:


jobs:
test:
name: Run pre commit checks and tests
runs-on: [self-hosted, zurich]
timeout-minutes: 45

pre_commit:
name: Pre-commit
runs-on: [self-hosted, gpu]
timeout-minutes: 30

container:
image: nvcr.io/nvstaging/isaac-amr/isaaclab_arena:latest
credentials:
username: $oauthtoken
password: ${{ env.NGC_API_KEY }}
image: python:3.11-slim

env:
# We're getting issues with the markers on the checked out files.
SKIP: check-executables-have-shebangs

steps:
- &install_git_step
Expand All @@ -54,25 +56,23 @@ jobs:
name: Clean up symlinks in submodules directory
run: |
rm -f .git/modules/submodules/IsaacLab/index.lock || true
rm -rf submodules/IsaacLab || true
rm -rf submodules/* || true

# Fix "detected dubious ownership in repository" inside containers
- &mark_repo_safe_step
name: Mark repo as safe for git
run: git config --global --add safe.directory "$PWD"

# Checkout Code
- &checkout_step
name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
clean: true
submodules: true
# LFS checkout here somehow causes issues when LFS stuff changes over time.
# So I do LFS manually in a step after.
# lfs: true

# Fix "detected dubious ownership in repository" inside containers
- &mark_repo_safe_step
name: Mark repo as safe for git
run: git config --global --add safe.directory "$PWD"

# Pull LFS files explicitly (in case checkout didn't get them all)
- &git_lfs_step
name: Git LFS
Expand All @@ -81,77 +81,147 @@ jobs:
git lfs install --local
git lfs pull

- &setup_python_step
name: Setup Python
uses: actions/setup-python@v3
- name: git status
run: |
git status

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files --verbose
env:
# Avoid "dubious ownership" errors on restored cache dirs — use a
# fresh directory owned by the current process instead.
PRE_COMMIT_HOME: /tmp/pre-commit-cache

test:
name: Run tests
runs-on: [self-hosted, gpu]
timeout-minutes: 80
needs: [pre_commit]

container:
image: nvcr.io/nvstaging/isaac-amr/isaaclab_arena:latest
credentials:
username: $oauthtoken
password: ${{ env.NGC_API_KEY }}

steps:
# nvidia-smi
- &nvidia_smi
name: nvidia-smi
run: nvidia-smi

# Setup
- *install_git_step
- *cleanup_step
- *mark_repo_safe_step
- *checkout_step
- *git_lfs_step

- &install_project_step
name: Install project and link isaac-sim
run: |
pip install --no-cache-dir -e .
/isaac-sim/python.sh -m pip install --no-cache-dir -e .
[ -e ./submodules/IsaacLab/_isaac_sim ] || ln -s /isaac-sim ./submodules/IsaacLab/_isaac_sim

- name: Run pre-commit
# Run the tests.
#
# Note(alexmillane): We have to run the tests in a specific way. To achieve a reasonable test speed,
# we don't close the SimulationApp between tests, where this is possible. We need, however, to restart the
# SimulationApp between tests that require cameras/rendering and those that don't. To make
# matters more complicated, since Isaac Sim 6.0, this persistent SimulationApp scheme is also not
# mixing well with subprocess-spawning tests. We get intermittent hangs if a subprocess-spawning
# test is run while a persistent SimulationApp is still open. For that reason we also need to
# separate those test that spawn subprocess. So in the end, we run
#
# - All tests not requiring cameras in a shared SimulationApp.
# - All tests requiring cameras in a shared SimulationApp.
# - All subprocess-spawning tests (each spawns their own SimulationApp)
#
# To restore sanity here is a goal for Isaac Lab Arena v0.3.
- name: Run in-process Newton tests
run: |
pip install --no-cache-dir --upgrade pip pre-commit
pre-commit run --all-files
/isaac-sim/python.sh -m pytest -sv -m with_newton \
isaaclab_arena/tests/

- name: Run pytest excluding policy-related tests. First we run all tests without cameras.
run: /isaac-sim/python.sh -m pytest -sv -m "not with_cameras" isaaclab_arena/tests/ --ignore=isaaclab_arena/tests/policy/
- name: Run in-process PhysX tests without cameras
run: |
/isaac-sim/python.sh -m pytest -sv -m "not with_cameras and not with_subprocess and not with_newton" \
isaaclab_arena/tests/

- name: Run in-process PhysX tests with cameras
run: |
/isaac-sim/python.sh -m pytest -sv -m "with_cameras and not with_subprocess and not with_newton" \
isaaclab_arena/tests/

- name: Run subprocess-spawning PhysX tests
run: |
/isaac-sim/python.sh -m pytest -sv -m with_subprocess \
isaaclab_arena/tests/

- name: Run pytest excluding policy-related tests. Now we run all tests with cameras.
run: /isaac-sim/python.sh -m pytest -sv -m with_cameras isaaclab_arena/tests/ --ignore=isaaclab_arena/tests/policy/

test_policy:
name: Run policy-related tests with GR00T & cuda12_8 deps
runs-on: [self-hosted, zurich]
timeout-minutes: 30
runs-on: [self-hosted, gpu]
timeout-minutes: 60
needs: [pre_commit]

container:
image: nvcr.io/nvstaging/isaac-amr/isaaclab_arena:cuda_gr00t
image: nvcr.io/nvstaging/isaac-amr/isaaclab_arena:cuda_gr00t_gn16
credentials:
username: $oauthtoken
password: ${{ env.NGC_API_KEY }}
env:
GROOT_DEPS_DIR: /opt/groot_deps
steps:
# nvidia-smi
- *nvidia_smi

# Setup.
- *install_git_step
- *cleanup_step
- *checkout_step
- *mark_repo_safe_step
- *checkout_step
- *git_lfs_step
- *setup_python_step
- *install_project_step

# Run the policy (GR00T) related tests.
- name: Run policy-related pytest
run: /isaac-sim/python.sh -m pytest -sv isaaclab_arena/tests/policy/
run: /isaac-sim/python.sh -m pytest -sv isaaclab_arena_gr00t/tests/


build_docs_pre_merge:
name: Build the docs (pre-merge)
runs-on: [self-hosted, zurich]
runs-on: [self-hosted, gpu]
timeout-minutes: 30
needs: [pre_commit]

container:
image: python:3.11-slim

steps:
# Setup.
- *install_git_step
- *mark_repo_safe_step
- *cleanup_step
- *checkout_step

# Build docs
- name: Checkout Code
uses: actions/checkout@v4

# Build docs for the current branch (validates PR changes)
- name: Build docs
working-directory: ./docs
run: |
cd docs
pip3 install -r requirements.txt
make SPHINXOPTS=-W html
touch ./_build/html/.nojekyll


build_and_push_image_post_merge:
name: Build & push NGC image (post-merge)
runs-on: [self-hosted, zurich]
timeout-minutes: 60
needs: [test, test_policy, build_docs_pre_merge] # only push if tests passed
runs-on: [self-hosted, gpu]
timeout-minutes: 90
needs: [test, test_policy] # only push if tests passed
if: github.event_name == 'push' && github.ref == 'refs/heads/main'

container:
Expand Down Expand Up @@ -192,4 +262,4 @@ jobs:
- name: Build & push image to NGC (GR00T Image)
run: |
chmod +x ./docker/push_to_ngc* || true
./docker/push_to_ngc.sh -p -g -t cuda_gr00t
./docker/push_to_ngc.sh -p -g -t cuda_gr00t_gn16
31 changes: 11 additions & 20 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2025, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# Copyright (c) 2025-2026, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
Expand All @@ -7,7 +7,7 @@ name: GitHub Pages

on:
push:
branches: [ "main" ]
branches: [ "main", "feature/isaac_lab_3_newton" ]

# Concurrency control to prevent parallel runs on the same PR
concurrency:
Expand All @@ -28,11 +28,11 @@ env:
jobs:
deploy_docs:
name: Deploy the docs
runs-on: [self-hosted, zurich]
runs-on: [self-hosted, gpu]
timeout-minutes: 30

container:
image: python:3.11-slim
image: python:3.12-slim

steps:
- name: Install git (and tools needed by hooks)
Expand All @@ -48,33 +48,24 @@ jobs:
with:
clean: true
fetch-depth: 0
fetch-tags: true

# Fix "detected dubious ownership in repository" inside containers
- name: Mark repo as safe for git
run: git config --global --add safe.directory "$PWD"

# Build docs
- name: Build docs
run: |
cd docs
pip3 install -r requirements.txt
make SPHINXOPTS=-W html
touch ./_build/html/.nojekyll
make SPHINXOPTS=-W multi-docs
touch ./_build/.nojekyll

- name: Copy redirect file
run: |
cp ./docs/_redirect/index.html ./docs/_build/index.html

# Upload docs artifact
- name: Upload docs artifact
uses: actions/upload-artifact@v4
with:
name: docs-html
path: ./docs/_build

# Download docs artifact
- name: Download docs artifact
uses: actions/download-artifact@v4
with:
name: docs-html
path: ./docs/_build

# Deploy to gh-pages
- name: Deploy to gh-pages
uses: peaceiris/actions-gh-pages@v3
Expand Down
11 changes: 10 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2025, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# Copyright (c) 2025-2026, The Isaac Lab Arena Project Developers (https://github.com/isaac-sim/IsaacLab-Arena/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
Expand Down Expand Up @@ -66,3 +66,12 @@ repos:
- .github/LICENSE_HEADER.txt
- --use-current-year
exclude: "submodules/"

- repo: local
hooks:
- id: check-contributors
name: Check that CONTRIBUTORS.md lists all contributors
entry: python3 tools/check_contributors.py
language: system
pass_filenames: false
types: [python]
18 changes: 18 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"python.analysis.extraPaths": [
"${workspaceFolder}",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_assets",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_rl",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_mimic",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_tasks",
],
"cursorpyright.analysis.extraPaths": [
"${workspaceFolder}",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_assets",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_rl",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_mimic",
"${workspaceFolder}/submodules/IsaacLab/source/isaaclab_tasks",
]
}
Loading
Loading