- Add core/compat.py: compatibility module with try/except imports
supporting both IS 4.x (omni.isaac.*) and IS 5.x+ (isaacsim.*)
- Migrate 152 imports across 47 files from direct omni.isaac.* to core.compat
- Handle class renames: RigidPrim→SingleRigidPrim, GeometryPrim→SingleGeometryPrim,
XFormPrim→SingleXFormPrim, Articulation→SingleArticulation (aliased for compatibility)
- Add migerate/migrate_imports.py: automated migration script for future use
- Leave debug_draw and env_loader try/except imports as-is
This eliminates ~100 deprecation warnings from our code on IS 5.0,
and future-proofs for IS 6.x when old APIs may be removed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Camera.__init__() internally calls UsdGeom.Camera.Define() which
resets aperture to defaults, making it impossible to pre-set values.
The aperture mismatch warnings are cosmetic — IS auto-corrects them
and our values are applied correctly after init.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Camera.__init__() checks aperture consistency against resolution
before we can call set_horizontal_aperture(). Pre-set the aperture
values directly on the USD prim via UsdGeom.Camera API to eliminate
the mismatch warnings.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix USD metersPerUnit/upAxis for IS 5.0.0 (no longer auto-compensated)
- Batch fix all Aligned_obj.usd, table, and art USD files with backups
- Fix DomeLight rotation to Z-axis only (prevent tilted environment map)
- Fix scene reuse across episodes (arena_file caching, task clearing, prim guard)
- Add migration tools: scan_usd_metadata.py, fix_usd_metadata.py
- Add migration guide: migerate/migerate.md
- Add nvidia-curobo to .gitignore
- Fix sort_the_rubbish config: obj_0 -> obj_1 (obj_0 does not exist)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add scipy Rotation scalar_first monkey-patch for older scipy (<1.11)
- Fix SimulationApp import to support both IS 4.x and 5.x
- Reuse task object across reset() calls to prevent duplicate prims
- Add _scene_initialized guard in set_up_scene() for repeated resets
- Cache arena_file_path to survive task_cfg.pop()
- Clean up collision groups before re-creating
- Switch to PathTracing renderer for clean output on Blackwell GPU
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>