Skip to content

Disable backface culling by default for newton warp renderer - #6959

Open
huidongc wants to merge 1 commit into
isaac-sim:developfrom
huidongc:disable-backface-culling-on-newton-warp-by-default
Open

Disable backface culling by default for newton warp renderer#6959
huidongc wants to merge 1 commit into
isaac-sim:developfrom
huidongc:disable-backface-culling-on-newton-warp-by-default

Conversation

@huidongc

@huidongc huidongc commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Description

Disable backface culling by default for newton warp renderer. User can opt out if needed by setting NewtonWarpRendererCfg.enable_backface_culling.

Fixes OMPE-103486

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

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

State Screenshot
Before franka_cloth-ovphysx-newton_renderer-rgb-before
After franka_cloth-ovphysx-newton_renderer-rgb-after

Dexsuite runtime benchmark

Performance and memory impact of disabling Newton Warp backface culling by default
(NewtonWarpRendererCfg.enable_backface_culling: True → False).

Comparison — before vs. after

Δ = after (afc3ebd9) − before (50a244ec / develop). Positive FPS Δ% means after is faster; negative GPU-mem / RAM Δ% means after uses less memory.

Variant Envs FPS Δ% Env create Δ% First step Δ% GPU mem peak Δ% RAM peak Δ%
homogeneous 4096 +2.98% -1.14% -2.87% +4.15% -0.24%

Takeaways:

  • FPS change is within typical run-to-run noise for this single-config sample.
  • GPU memory peak and host RAM peak are essentially unchanged.
  • Env-creation / first-step times are also within noise for this setup.

Before — 50a244ec70a (develop)

Baseline with enable_backface_culling=True (previous default).

Item Value
Commit 50a244ec70a Handle single-world coupled MPM resets (#6955)
Setting NewtonWarpRendererCfg.enable_backface_culling = True
Results dir huidongc/benchmarks/20260807_newton_bfc_before_develop/
Variant Envs FPS mean FPS peak Iter s mean GPU mem mean (GB) GPU mem peak (GB) RAM mean (GB) RAM peak (GB) GPU util % Env create s First step s
homogeneous 4096 42192.8 48652.8 0.0971 4.82 4.82 4.14 4.14 87.9 35.9 0.8

After — afc3ebd9 (enable_backface_culling=False)

Same benchmark after disabling backface culling by default.

Item Value
Commit afc3ebd9 Disable Newton Warp backface culling by default
Setting NewtonWarpRendererCfg.enable_backface_culling = False
Results dir huidongc/benchmarks/20260807_newton_bfc_after_7a64e7b/
Variant Envs FPS mean FPS peak Iter s mean GPU mem mean (GB) GPU mem peak (GB) RAM mean (GB) RAM peak (GB) GPU util % Env create s First step s
homogeneous 4096 43450.7 49929.3 0.0943 4.93 5.02 4.13 4.13 87.2 35.5 0.8

Setup

Item Value
GPU NVIDIA RTX A6000
Task Isaac-Lift-KukaAllegro-Camera
Physics newton_mjwarp
Renderer newton_renderer
Homogeneous presets rgb64,single_camera,cube
Seed 42
Iterations 1000 (after warmup)
Command huidongc/benchmark_dexsuite.sh

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

Double-sided surfaces were being culled with the previous True default.
Set enable_backface_culling=True to restore the old behavior.
@huidongc
huidongc requested a review from a team August 7, 2026 08:04
@huidongc
huidongc marked this pull request as draft August 7, 2026 08:05
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 7, 2026
@greptile-apps

greptile-apps Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Changes the Newton Warp renderer’s default to preserve back-facing triangles while retaining an explicit opt-in for the previous culling behavior.

  • Sets NewtonWarpRendererCfg.enable_backface_culling to False by default.
  • Adds a changelog fragment documenting the new default and compatibility setting.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
source/isaaclab_newton/isaaclab_newton/renderers/newton_warp_renderer_cfg.py Changes the backface-culling configuration default from enabled to disabled as intended.
source/isaaclab_newton/changelog.d/huidongc-disable-backface-culling-on-newton-warp-by-default.rst Accurately documents the renderer default change and how to restore the previous behavior.

Reviews (2): Last reviewed commit: "Disable Newton Warp backface culling by ..." | Re-trigger Greptile

@huidongc
huidongc requested a review from daniela-hase August 7, 2026 15:49
@huidongc
huidongc marked this pull request as ready for review August 7, 2026 22:49

@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

Reviewed the Newton Warp renderer’s backface-culling default change and its package changelog. The change makes double-sided surfaces visible by default while preserving explicit opt-in to the previous behavior.

  • Design and architecture: The behavior remains isolated to NewtonWarpRendererCfg; shared renderer infrastructure and backend selection are unchanged. This is an appropriate renderer-specific configuration decision.
  • API: The public field name and type remain stable, but its default behavior changes from enabled to disabled. The changelog clearly documents the compatibility surface and explains that setting enable_backface_culling=True restores the prior behavior.
  • Implementation: The implementation is a direct default-value change, accompanied by a correctly located and formatted changelog fragment. The supplied benchmark indicates no clear throughput regression, with a modest observed GPU-memory increase remaining as a non-blocking tradeoff.

No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.

Automated review; human maintainers own approval decisions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants