Skip to content

Add headless window capture API#281

Open
yuecideng wants to merge 44 commits into
mainfrom
feat/window-capture
Open

Add headless window capture API#281
yuecideng wants to merge 44 commits into
mainfrom
feat/window-capture

Conversation

@yuecideng

@yuecideng yuecideng commented May 25, 2026

Copy link
Copy Markdown
Contributor

Description

Adds SimulationManager.capture_window() for single-frame RGB capture using the same hidden-camera approach as viewer window recording. When a viewer window is open, the capture camera follows the current viewer pose; in headless runs it renders from a provided pose or a default look-at pose.

Also updates scripts/tutorials/sim/create_scene.py with --capture-window, --capture-path, and --max-steps so the feature can be verified non-interactively.

Fixes #

Type of change

  • New feature (non-breaking change which adds functionality)
  • Enhancement (non-breaking change which improves an existing functionality)

Screenshots

Not applicable. Verification writes ./outputs/window_capture/create_scene_verify.png locally.

Verification

  • python -m py_compile embodichain/lab/sim/sim_manager.py scripts/tutorials/sim/create_scene.py
  • black --check embodichain/lab/sim/sim_manager.py scripts/tutorials/sim/create_scene.py
  • python scripts/tutorials/sim/create_scene.py --headless --max-steps 5 --capture-window --capture-path ./outputs/window_capture/create_scene_verify.png
  • Verified generated image is 1920x1080 RGB and nonblank.

Checklist

  • I have run the black . command to format the code base.
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • Dependencies have been updated, if applicable.

yuecideng and others added 30 commits April 12, 2026 14:58
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: Jietao Chen <chenjietao@dexforce.com>
Co-authored-by: Yueci Deng <dengyueci@qq.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: yuanhaonan <yuanhaonan@dexforce.top>
…entation (#247)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: yuecideng <dengyueci@qq.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ration (#239)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Chen Jian <mtfl1996@outlook.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: WaferLi <63717327+WaferLi@users.noreply.github.com>
Co-authored-by: liwenfeng <liwenfeng@dexforce.top>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: daojun <lookangela@qq.com>
Co-authored-by: Chen Jian <mtfl1996@outlook.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
yuecideng and others added 14 commits May 12, 2026 16:46
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The publish job was left with the JamesIves/gh-pages-branch approach
from a prior iteration, while GitHub Pages source had drifted to
main/docs (serving raw Sphinx source, not built HTML).

Changes:
- Replace actions/upload-artifact@v4 (name: docs-build) with
  actions/upload-pages-artifact@v3 — required by actions/deploy-pages
- Replace the entire JamesIves publish job with a minimal
  actions/deploy-pages@v4 job (pages: write + id-token: write)
- GitHub Pages source switched to build_type=workflow (GitHub Actions)
  via API, so deploy-pages is the authoritative deployment mechanism

The shared full-site cache in the build job (from the previous fix)
is preserved and continues to ensure all versioned dirs survive across
main-branch pushes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: chenjian <chenjian@dexforce.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Yueci Deng <dengyueci@qq.com>
Co-authored-by: Yueci Deng <dengyueci@qq.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
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.

7 participants