Skip to content

feat: add demo_object_mesh_vis.py with visual mesh rendering#4

Open
alexhegit wants to merge 3 commits into
NVlabs:mainfrom
alexhegit:visual-mesh-demo
Open

feat: add demo_object_mesh_vis.py with visual mesh rendering#4
alexhegit wants to merge 3 commits into
NVlabs:mainfrom
alexhegit:visual-mesh-demo

Conversation

@alexhegit

Copy link
Copy Markdown

Summary

Adds demo_object_mesh_vis.py — a new demo script that renders the gripper's visual mesh (detailed shape) instead of collision mesh (simple bounding box) at grasp poses.

Problem

demo_object_mesh.py uses gripper.collision_mesh for rendering gripper meshes at grasp poses. The collision mesh is a simple bounding box (8 vertices), so grippers appear as opaque boxes.

Solution

New script demo_object_mesh_vis.py uses gripper.visual_mesh (detailed model, e.g. 28K vertices) with fallback to collision_mesh when visual mesh is not available.

Usage

uv run python scripts/demo_object_mesh_vis.py \
    --mesh_file assets/sample_data/object_mesh/banana.obj \
    --gripper_name openarm \
    --assets_dir assets \
    --plot_mesh

Verified

  • Renders detailed gripper mesh at top 5 grasp poses
  • Falls back gracefully when vis_mesh.obj is missing
  • All other features (threshold tuner, output saving) unchanged

Signed-off-by: alexhegit alexhegit@users.noreply.github.com

AlexHe99 added 3 commits June 9, 2026 21:22
Add explicit ROCm 7.2 support via uv extras while preserving the existing
CUDA workflow (uv sync picks up PyPI CUDA wheels on Linux).

Changes:
- pyproject.toml: Add rocm extra with ROCm 7.2 index routing, conflict
  resolution (rocm + end2end are mutually exclusive), remove torch-backend=auto
  in favor of explicit [tool.uv.sources] index routing, relax torch upper
  bound to allow ROCm 2.12+ wheels
- AGENTS.md: Add ROCm support documentation with what works / what doesn't

Verified on AMD Radeon PRO W7900 (48GB VRAM) + ROCm 7.2:
- torch==2.12.0+rocm7.2 detects GPU correctly
- ptv3_vanilla backbone forward pass runs on GPU
- 93/96 tests pass (3 skipped = integration tests needing live server)
- pointnet2_ops gracefully degrades (warning only)
- All demo scripts, ZMQ server/client, gripper wizard work

What works on ROCm:
- Base inference (point clouds, meshes, scenes)
- All demo scripts (demo_object_pc, demo_scene_pc, demo_object_mesh)
- ZMQ server/client (uv sync --extra rocm --extra serve)
- Gripper config wizard (browser GUI)
- Tests (uv run pytest -m "not end2end")

What does NOT work on ROCm:
- End-to-end pipeline (nvidia-curobo, newton, warp are CUDA-only)
- Docker training (NGC base image is NVIDIA-only)
- pointnet2_ops PointNet++ backbone (gracefully degrades, use ptv3_vanilla)

Usage:
  uv sync              # CUDA (unchanged)
  uv sync --extra rocm # AMD ROCm

Signed-off-by: AMD <amd@amd.com>
Signed-off-by: AlexHe99 <alehe@amd.com>
Add OpenArm 7DOF bimanual arm's pinch gripper as a new proc_gripper.
The gripper is a symmetric 2-finger revolute design with mimic joints.

Files:
- config.json: gripper parameters derived from openarm_description URDF
- gripper.urdf: minimal URDF matching config joint/link names
- vis_mesh.obj: combined visual mesh from openarm_description DAE files
- coll_mesh.obj: bounding box collision mesh

URDF source: enactic/openarm_description (output.urdf)
Finger joints: openarm_left_finger_joint1/2 with mimic multiplier=-1
Joint limits: [-1.5708, 0] rad (±90°)

Signed-off-by: beininghan <beininghan@gmail.com>
Signed-off-by: AlexHe99 <alehe@amd.com>
New demo script based on demo_object_mesh.py that renders the
gripper's visual mesh (detailed shape) instead of collision mesh
(simple bounding box) at grasp poses.

Usage:
  uv run python scripts/demo_object_mesh_vis.py \
      --mesh_file assets/sample_data/object_mesh/banana.obj \
      --gripper_name openarm --plot_mesh

Falls back to collision_mesh when visual_mesh is not available.

Signed-off-by: alexhegit <alexhegit@users.noreply.github.com>
Signed-off-by: AlexHe99 <alehe@amd.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.

2 participants