Skip to content

feat(docker_modules): Add Isaac Sim 6.0.0 beta (build from source) and Isaac Lab 3.0 beta support#116

Merged
j3soon merged 1 commit intomainfrom
feat/isaac-sim-6-0-0
Mar 31, 2026
Merged

feat(docker_modules): Add Isaac Sim 6.0.0 beta (build from source) and Isaac Lab 3.0 beta support#116
j3soon merged 1 commit intomainfrom
feat/isaac-sim-6-0-0

Conversation

@j3soon
Copy link
Copy Markdown
Owner

@j3soon j3soon commented Mar 30, 2026

Closes: #115

Only tested basic examples:

~/isaacsim/isaac-sim.sh
~/isaacsim/isaac-sim.newton.sh
# - Humanoid policy example can run but will fall over

Summary by CodeRabbit

  • New Features

    • Added support for building Isaac Sim and Isaac Lab from source using the develop branch.
    • Optional components (Cartographer, RTAB-Map, RealSense, Claude Code, Codex) are now enabled by default during container builds.
  • Documentation

    • Updated installation guides to document binary and source build options for Isaac simulation tools.
    • Clarified supported configuration modes in compose templates.
  • Chores

    • Modified container device mounting strategy for broader host device access.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 30, 2026

Walkthrough

This PR extends Isaac Sim and Isaac Lab support from binary installations (versions 5.1.0 and 2.3.2) to source builds via develop branch, adds build-time enablement of optional features across multiple ROS2 workspace Docker Compose configurations, and reorganizes device passthrough mounts to favor broader /dev access over selective device nodes.

Changes

Cohort / File(s) Summary
Documentation Updates
README.md, docs/docker-modules/isaac-sim.md, docs/docker-modules/isaac-lab.md
Updated version descriptors and added documentation for source-build workflows via ISAAC_SIM_VERSION: "develop" and ISAAC_LAB_VERSION: "develop", alongside existing binary install options.
Installation Script Enhancements
docker_modules/install_isaac_lab.sh, docker_modules/install_isaac_sim.sh
Added conditional support for building from develop branch: install_isaac_lab.sh derives git ref from version string; install_isaac_sim.sh adds build dependency installation, source compilation via upstream standalone packaging, and archive extraction for develop mode.
Workspace Docker Compose Configuration
aloha_ws/docker/compose.yaml, delto_gripper_ws/docker/compose.yaml, gazebo_world_ws/docker/compose.yaml, go2_ws/docker/compose.yaml, h1_ws/docker/compose.yaml, husky_ws/docker/compose.yaml, kobuki_ws/docker/compose.yaml, orbslam3_ws/docker/compose.yaml, stretch3_ws/docker/compose.yaml, turtlebot3_ws/docker/compose.yaml, ur5_ws/docker/compose.yaml, vlp_ws/docker/compose.yaml
Enabled feature flags (CARTOGRAPHER, RTABMAP, REALSENSE, CLAUDE_CODE, CODEX set to "YES"), expanded Isaac version comments to document binary/source build modes, and toggled device mounts (disabled /dev/dri, /dev/snd, /dev/shm; enabled /dev:/dev).
Template and Base Configuration
template_ws/docker/compose.yaml, tests/diff_base/docker/compose.yaml
Updated build argument documentation and examples for Isaac Sim/Lab; replaced placeholder-based configuration with explicit settings for feature toggles and device passthrough; renamed volume-instantiation container naming convention.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

  • #105 — Modifies Isaac Sim/Lab documentation files (docs/docker-modules/isaac-sim.md and docs/docker-modules/isaac-lab.md) with overlapping content changes.
  • #104 — Modifies install_isaac_lab.sh and install_isaac_sim.sh to alter ISAAC version install gating and conditional flow logic.
  • #114 — Modifies Isaac Sim/Lab install scripts and Docker Compose build-arg handling for version management and installation behavior.

Suggested labels

enhancement

Poem

🐰 Source builds now bloom, alongside binaries bold,
Feature flags dance in compose files of gold,
Device mounts shift wide, embracing the sky,
Isaac grows taller—develop branch high!

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (3 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title mentions Isaac Sim 6.0.0 beta and Isaac Lab 3.0 beta support, but the actual changes support only develop branches (versions 5.1.0 and 2.3.2 with develop option), not the specific 6.0.0 or 3.0 beta versions. Revise the title to accurately reflect that the PR adds support for building from the develop branch (Isaac Sim develop, Isaac Lab develop) rather than specific 6.0.0/3.0 beta versions.
Linked Issues check ⚠️ Warning The PR adds develop branch support for Isaac Sim and Lab but does not explicitly implement Newton physics backend integration or any Newton-specific features required by issue #115. Add Newton physics backend integration code or clarify in documentation how to enable Newton physics features when building from the develop branches.
Out of Scope Changes check ⚠️ Warning The PR includes extensive Docker Compose configuration changes (enabling feature flags like CARTOGRAPHER, RTABMAP, REALSENSE, CLAUDE_CODE, CODEX) and device mount modifications across 13+ workspace configurations that appear unrelated to the stated objective of adding Isaac support. Separate the feature flag enablement and device mount configuration changes into a distinct PR, keeping this PR focused solely on Isaac Sim 6.0.0 and Isaac Lab 3.0 support.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/isaac-sim-6-0-0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (6)
docker_modules/install_isaac_sim.sh (2)

97-104: Clarify the comment about compression/extraction.

The comment on lines 98-99 mentions "source build" but appears in the 5.1.0 binary install block. This could confuse future maintainers. The comment may have been intended to explain the consistent extraction approach, but currently reads as if it applies to source builds.

📝 Suggested clarification
 elif [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then
-    # It's a bit unfortunate that we are currently manually compressing the source build and then extracting
-    # it again to install, but without this process, the build will not be standalone (depends on `.cache`).
+    # Extract the pre-built archive to ISAACSIM_PATH (same destination as the source build path for consistency).
     echo "Extracting standalone package to $ISAACSIM_PATH..."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker_modules/install_isaac_sim.sh` around lines 97 - 104, The comment in
the ISAAC_SIM_VERSION == "5.1.0" block incorrectly refers to a "source build"
and should be clarified to reflect that this branch extracts a prebuilt
standalone binary archive; update the comment above the extraction (near the
echo "Extracting standalone package...") to explain that we compress the built
standalone package elsewhere and here we extract the prebuilt standalone archive
(referencing ISAAC_SIM_STANDALONE_ARCHIVE and ISAACSIM_PATH) so maintainers
understand this is a binary/archive extraction path for version 5.1.0 rather
than a source build step.

119-120: Update comment to reflect both supported versions.

The condition on line 119 now covers both develop and 5.1.0, but the comment on line 120 still says "Isaac Sim 5.1.0 specific directories". Consider updating it to avoid confusion.

📝 Suggested comment update
 if [ "$ISAAC_SIM_VERSION" = "develop" ] || [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then
-    echo "Creating Isaac Sim 5.1.0 specific directories with correct ownership to avoid permission issues after volume mount..."
+    echo "Creating Isaac Sim cache directories with correct ownership to avoid permission issues after volume mount..."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker_modules/install_isaac_sim.sh` around lines 119 - 120, Update the echo
comment that currently reads "Creating Isaac Sim 5.1.0 specific directories..."
to reflect both supported values checked by the condition (ISAAC_SIM_VERSION
being "develop" or "5.1.0"); locate the conditional that checks
ISAAC_SIM_VERSION and the echo statement and change the message to mention both
"develop" and "5.1.0" or to use a generic phrase like "Isaac Sim specific
directories" so it accurately describes the behavior.
orbslam3_ws/docker/compose.yaml (1)

117-123: Device passthrough change is acceptable given privileged: true.

Switching from selective device mounts (/dev/dri, /dev/snd, /dev/shm) to broad /dev:/dev access is acceptable since the container already runs with privileged: true (line 68). The TODO comment on line 122 is now outdated.

📝 Consider updating the TODO comment
-      # TODO: Uncomment the line below and comment out the three entries above to enable USB support.
+      # Mounting /dev:/dev for full device access (requires privileged: true).
       - /dev:/dev
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@orbslam3_ws/docker/compose.yaml` around lines 117 - 123, Update the outdated
TODO comment next to the device mount change: since the service already uses
privileged: true, replace or remove the TODO that suggests
commenting/uncommenting the selective mounts and the broad '- /dev:/dev' line;
specifically edit the compose.yaml comment block containing the selective mounts
(/dev/dri, /dev/snd, /dev/shm), the TODO line, and the '- /dev:/dev' entry so
the comment accurately reflects that broad device passthrough is intentional
when privileged: true (or document the security implications and alternative of
selective mounts if you want to keep that option).
vlp_ws/docker/compose.yaml (1)

117-123: Stale TODO comment after device mount switch.

The TODO at line 122 reads "Uncomment the line below and comment out the three entries above to enable USB support" but now /dev:/dev is already uncommented and the three entries are already commented. The comment is misleading in its current state.

📝 Suggested comment update
       # Mount shared memory for ROS2 communication.
       # - /dev/shm:/dev/shm
-      # TODO: Uncomment the line below and comment out the three entries above to enable USB support.
+      # Note: /dev:/dev provides full device access including USB, DRI, sound, and shared memory.
+      # For minimal device access, comment the line below and uncomment /dev/dri, /dev/snd, /dev/shm above.
       - /dev:/dev
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@vlp_ws/docker/compose.yaml` around lines 117 - 123, The TODO comment is now
stale because /dev:/dev is already uncommented and the three device mount lines
are commented; update or remove the TODO in the docker/compose.yaml block so it
accurately reflects the current configuration (either remove the instruction or
change it to explain that /dev:/dev enables USB support and the former
individual mounts are disabled). Locate the comment lines referencing
"/dev/dri:/dev/dri", "/dev/snd:/dev/snd", "/dev/shm:/dev/shm" and the active "-
/dev:/dev" entry and adjust the TODO text accordingly.
h1_ws/docker/compose.yaml (1)

117-123: Same stale TODO comment pattern across all workspace files.

Consider a bulk update to fix the misleading TODO comment in all affected compose.yaml files for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@h1_ws/docker/compose.yaml` around lines 117 - 123, The TODO comment is stale
and misleading: update the commented block around the device mounts so it
accurately reflects current behavior (explain that /dev is mounted for full
device/USB support and the other individual mounts are optional examples) and
remove the "TODO: Uncomment..." instruction; apply the same change consistently
across all compose.yaml files that contain the same commented entries (look for
the comment lines containing "/dev/dri", "/dev/snd", "/dev/shm", the "TODO:
Uncomment" text, and the "- /dev:/dev" entry) so the documentation matches the
actual configuration.
turtlebot3_ws/docker/compose.yaml (1)

117-123: Same stale TODO comment issue as other workspace files.

The TODO comment at line 122 is now misleading since /dev:/dev is active and the individual device mounts are commented out. Consider updating to reflect the current state.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@turtlebot3_ws/docker/compose.yaml` around lines 117 - 123, The TODO comment
is stale because the catch‑all mount "- /dev:/dev" is active while the
individual device mounts are commented out; update or remove the TODO so it
accurately reflects current behavior by either deleting the TODO and explaining
that "/dev:/dev" is enabled (and why), or change it to instruct maintainers to
comment out "- /dev:/dev" if they prefer fine‑grained mounts like "-
/dev/dri:/dev/dri", "- /dev/snd:/dev/snd", and "- /dev/shm:/dev/shm"
(referencing the "- /dev:/dev" line and the three commented mount lines).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docker_modules/install_isaac_sim.sh`:
- Around line 97-104: The comment in the ISAAC_SIM_VERSION == "5.1.0" block
incorrectly refers to a "source build" and should be clarified to reflect that
this branch extracts a prebuilt standalone binary archive; update the comment
above the extraction (near the echo "Extracting standalone package...") to
explain that we compress the built standalone package elsewhere and here we
extract the prebuilt standalone archive (referencing
ISAAC_SIM_STANDALONE_ARCHIVE and ISAACSIM_PATH) so maintainers understand this
is a binary/archive extraction path for version 5.1.0 rather than a source build
step.
- Around line 119-120: Update the echo comment that currently reads "Creating
Isaac Sim 5.1.0 specific directories..." to reflect both supported values
checked by the condition (ISAAC_SIM_VERSION being "develop" or "5.1.0"); locate
the conditional that checks ISAAC_SIM_VERSION and the echo statement and change
the message to mention both "develop" and "5.1.0" or to use a generic phrase
like "Isaac Sim specific directories" so it accurately describes the behavior.

In `@h1_ws/docker/compose.yaml`:
- Around line 117-123: The TODO comment is stale and misleading: update the
commented block around the device mounts so it accurately reflects current
behavior (explain that /dev is mounted for full device/USB support and the other
individual mounts are optional examples) and remove the "TODO: Uncomment..."
instruction; apply the same change consistently across all compose.yaml files
that contain the same commented entries (look for the comment lines containing
"/dev/dri", "/dev/snd", "/dev/shm", the "TODO: Uncomment" text, and the "-
/dev:/dev" entry) so the documentation matches the actual configuration.

In `@orbslam3_ws/docker/compose.yaml`:
- Around line 117-123: Update the outdated TODO comment next to the device mount
change: since the service already uses privileged: true, replace or remove the
TODO that suggests commenting/uncommenting the selective mounts and the broad '-
/dev:/dev' line; specifically edit the compose.yaml comment block containing the
selective mounts (/dev/dri, /dev/snd, /dev/shm), the TODO line, and the '-
/dev:/dev' entry so the comment accurately reflects that broad device
passthrough is intentional when privileged: true (or document the security
implications and alternative of selective mounts if you want to keep that
option).

In `@turtlebot3_ws/docker/compose.yaml`:
- Around line 117-123: The TODO comment is stale because the catch‑all mount "-
/dev:/dev" is active while the individual device mounts are commented out;
update or remove the TODO so it accurately reflects current behavior by either
deleting the TODO and explaining that "/dev:/dev" is enabled (and why), or
change it to instruct maintainers to comment out "- /dev:/dev" if they prefer
fine‑grained mounts like "- /dev/dri:/dev/dri", "- /dev/snd:/dev/snd", and "-
/dev/shm:/dev/shm" (referencing the "- /dev:/dev" line and the three commented
mount lines).

In `@vlp_ws/docker/compose.yaml`:
- Around line 117-123: The TODO comment is now stale because /dev:/dev is
already uncommented and the three device mount lines are commented; update or
remove the TODO in the docker/compose.yaml block so it accurately reflects the
current configuration (either remove the instruction or change it to explain
that /dev:/dev enables USB support and the former individual mounts are
disabled). Locate the comment lines referencing "/dev/dri:/dev/dri",
"/dev/snd:/dev/snd", "/dev/shm:/dev/shm" and the active "- /dev:/dev" entry and
adjust the TODO text accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3f721681-8605-47be-9dd4-ff10c10d55ef

📥 Commits

Reviewing files that changed from the base of the PR and between e2262e8 and e9846c9.

📒 Files selected for processing (19)
  • README.md
  • aloha_ws/docker/compose.yaml
  • delto_gripper_ws/docker/compose.yaml
  • docker_modules/install_isaac_lab.sh
  • docker_modules/install_isaac_sim.sh
  • docs/docker-modules/isaac-lab.md
  • docs/docker-modules/isaac-sim.md
  • gazebo_world_ws/docker/compose.yaml
  • go2_ws/docker/compose.yaml
  • h1_ws/docker/compose.yaml
  • husky_ws/docker/compose.yaml
  • kobuki_ws/docker/compose.yaml
  • orbslam3_ws/docker/compose.yaml
  • stretch3_ws/docker/compose.yaml
  • template_ws/docker/compose.yaml
  • tests/diff_base/docker/compose.yaml
  • turtlebot3_ws/docker/compose.yaml
  • ur5_ws/docker/compose.yaml
  • vlp_ws/docker/compose.yaml

@j3soon j3soon merged commit 96f1034 into main Mar 31, 2026
2 checks passed
@j3soon j3soon deleted the feat/isaac-sim-6-0-0 branch March 31, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Newton Support

1 participant