Skip to content

[Docs] Update environments page and commands builder - #7160

Merged
kellyguo11 merged 3 commits into
isaac-sim:developfrom
StafaH:docs/environment-command-builder
Aug 19, 2026
Merged

[Docs] Update environments page and commands builder#7160
kellyguo11 merged 3 commits into
isaac-sim:developfrom
StafaH:docs/environment-command-builder

Conversation

@StafaH

@StafaH StafaH commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Description

Important

Confirm the pull request base before submitting. Target develop for all
contributions. The release/3.0.0-beta2 branch is a frozen stable landing
snapshot and is not used for ongoing maintenance.

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

Please attach before and after screenshots of the change if applicable.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have added a changelog fragment under source/<pkg>/changelog.d/ for every touched package (do not edit CHANGELOG.rst or bump extension.toml — CI handles that)
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@StafaH
StafaH requested a review from a team August 19, 2026 04:03
@github-actions github-actions Bot added documentation Improvements or additions to documentation infrastructure labels Aug 19, 2026
@greptile-apps

greptile-apps Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR expands the environments page to cover core and contributed tasks and adds richer command, preview, and benchmark interfaces.

  • Generates browser metadata for contributed tasks, compatible agent presets, and curated preview images.
  • Adds video previews, benchmark history and VRAM display, category filtering, backend extras, and checkpoint controls.
  • Extends documentation-generation tests and updates Sphinx static assets.

Confidence Score: 3/5

The PR should not merge until the builder stops generating malformed commands for tasks without RL libraries and uses the actual published-checkpoint workflow.

Newly selectable contributed tasks can produce a value-less --rl_library argument, while the checkpoint toggle supplies pretrained as a nonexistent explicit path rather than invoking published-checkpoint discovery.

Files Needing Attention: docs/source/_static/css/environment-browser.js and tools/environ_docs.py

Important Files Changed

Filename Overview
docs/source/_static/css/environment-browser.js Adds contributed tasks, command options, previews, and benchmark rendering, but produces invalid commands for no-RL tasks and the pre-trained checkpoint toggle.
tools/environ_docs.py Extends generated browser rows with contributed tasks, agent/preset compatibility, and curated preview-image metadata.
docs/source/setup/environments.rst Updates the environments UI markup with checkpoint, video-preview, benchmark, and contributed-task controls.
tools/test/test_environ_docs.py Adds coverage for compatibility metadata, contributed browser rows, and preview-image extraction, but does not cover generated command validity.
docs/source/_static/benchmarks/environment-performance.csv Adds static historical performance and VRAM data consumed by the environment browser.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Registry[Gym task registry] --> Generator[Environment docs generator]
  Curated[Curated environment tables] --> Generator
  Generator --> Rows[Generated browser task rows]
  CSV[Benchmark CSV] --> Browser[Environment browser]
  Rows --> Browser
  Browser --> Command[Generated Isaac Lab command]
  Browser --> Preview[Image or video preview]
  Browser --> Chart[Performance and VRAM views]
Loading

Reviews (1): Last reviewed commit: "Update docs commands builder" | Re-trigger Greptile

for (const extra of extras) {
parts.push("--extra", extra);
}
parts.push("isaaclab", state.mode, "--rl_library", fields.rl.value, "--task", state.task);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Empty RL library breaks commands

When a user selects a contributed task with no registered RL library, the builder still emits --rl_library with an empty value, causing argument parsing to fail with “expected one argument” instead of running the task.

Comment on lines +308 to +309
if (fields.checkpoint.checked) {
parts.push("--checkpoint", "pretrained");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Pretrained checkpoint value is invalid

When “Use Pre-trained Checkpoint” is enabled, the builder emits --checkpoint pretrained; the CLI treats that value as an explicit path rather than invoking published-checkpoint discovery, so the generated command fails to load the published model.

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Isaac Lab Review Bot

The expanded environment browser has four concrete issues to address before publication: prototype-duplicated benchmark rows are presented as historical measurements, CSS display declarations can defeat hidden-state toggling, RL-less contributed tasks generate invalid commands, and filtering removes the selected-task highlight.

  • Design and architecture: The generator-to-JavaScript task-row contract remains backward-compatible through optional fields and destructuring defaults. However, the benchmark pipeline does not distinguish duplicated_for_prototype rows from measured results, causing synthetic copies to be plotted and described as performance history. Non-measured rows should be removed, filtered, or clearly represented as synthetic.
  • API: The optional preview_images argument and defaulted agent_preset_compatibility field preserve existing Python callers. The user-facing command-builder contract is not valid for newly included tasks with no RL library: it emits --rl_library without a value, so those tasks must either omit that option or be excluded from train/play command generation.
  • Implementation: Preview and benchmark elements rely on the HTML hidden attribute, but new author-level display declarations can keep the media and benchmark toolbar visible; explicit [hidden] rules are needed. Task-list rebuilding after search or category changes also omits the is-selected class, so the current selection loses its visual highlight. Benchmark rendering additionally needs to account for data_origin rather than charting prototype duplicates as measured history.

Minor fixes needed. Posted 4 actionable findings inline.

Automated review; human maintainers own approval decisions.

@@ -0,0 +1,113 @@
benchmark_date_utc,data_origin,recorded_at_utc,task,workload,rl_library,physics_backend,rendering_backend,num_envs,seed,measured_iterations,total_fps_mean,total_fps_std,total_fps_peak,vram_mean_gb,vram_std_gb,vram_peak_gb,gpu_util_mean_pct,gpu_util_std_pct,gpu_name,gpu_memory_total_gb,cpu_name,physical_cpu_count,ram_total_gb,cuda_bindings_version,nvidia_driver_version,git_commit
2026-07-28,duplicated_for_prototype,2026-08-19T01:17:37.920242Z,Isaac-Ant,runtime,,newton_kamino,none,4096,42,1000,123800.01,7610.95,139664.34,5.69,0.05,5.82,86.67,21.65,NVIDIA RTX PRO 6000 Blackwell Workstation Edition,94.96,AMD Ryzen Threadripper PRO 7965WX 24-Cores,48,62.30,12.9.7,580.159.03,a384e2f55c5847ca9c0eeeef0c91d0e258bc864e

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Warning · Design Architecture — Prototype rows charted as measured history

Three of the four benchmark dates are marked data_origin=duplicated_for_prototype and are verbatim copies of the single measured run. updateBenchmark filters only on task and workload, so these synthetic points are drawn and tooltipped like real measurements, publishing an invented performance history. Ship only measured rows, or filter/label non-measured origins in the chart.


.environment-preview-stage img {
.environment-preview-stage img,
.environment-preview-stage video {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Warning · Implementation — display rules defeat hidden attribute

Author display: block on .environment-preview-stage img, video (and display: flex on .environment-benchmark-toolbar) overrides the user-agent [hidden] { display: none } rule, so previewImage.hidden/previewVideo.hidden and toolbar.hidden = true have no effect: the empty video renders on load beside the image, and the legend/workload switch stays visible for tasks without data. Add [hidden] overrides as done for .environment-benchmark-stub.

for (const extra of extras) {
parts.push("--extra", extra);
}
parts.push("isaaclab", state.mode, "--rl_library", fields.rl.value, "--task", state.task);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Warning · Implementation — Empty --rl_library for RL-less tasks

Many newly listed contributed tasks (e.g. IsaacContrib-ExhaustPipe-GR1T2-Pink-IK-Abs, IsaacContrib-Stack-Cube-Franka) have an empty RL list, so populateSelect yields an empty value and the command becomes ... isaaclab train --rl_library --task ..., which argparse rejects. Previously every listed task had an RL library. Skip the flag when no library is available, or exclude these tasks from the train/play builder.

taskCount.textContent = `${visibleTasks.length} ${visibleTasks.length === 1 ? "task" : "tasks"}`;
taskEmpty.hidden = visibleTasks.length !== 0;
taskList.hidden = visibleTasks.length === 0;
};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Suggestion · Implementation — Filtering drops selected-task highlight

updateSelection() moved out of renderTasks into initializeTasks, but the rebuilt rows only set aria-pressed, never the is-selected class the CSS styles. After any search keystroke or category change the currently selected task loses its highlight even though the command builder still targets it. Apply the class when creating each row, or call updateSelection() after re-rendering.

@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 19, 2026
@kellyguo11
kellyguo11 merged commit fa4de7d into isaac-sim:develop Aug 19, 2026
74 of 78 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants