Spot walking procedural terrain: Isaac base policy + transfer learning, all driven from Python on my own Vulkan renderer

Short clip of Spot crossing procedural terrain. The base policy came from Isaac Lab, everything else is mine.

Policy: chain of PPO transfers, not zero-shot. Isaac Lab flat walker → fine-tuned for rough terrain → fine-tuned again for discrete stairs.

Keeping the Isaac gait while learning new terrain: I keep a frozen copy of the original Isaac policy as a teacher and add a scan-gated imitation reward. On flat ground the policy is penalized for drifting from the teacher's actions, so it only deviates where the terrain actually demands it. Plus a per-env adaptive curriculum (1024 parallel envs, each promotes/demotes its own step height).

Obs/action: 94-d obs (48-d Isaac proprio + base height + a 45-cell forward height-scan), 12-d joint-target actions. Training is my own PPO loop over batched PhysX on GPU.

The stack (all mine, driven from Python): C++ engine with Python bindings (threepp). A Vulkan deferred renderer with procedural terrain, PhysX physics, and the live SLAM map. No Isaac Sim / Omniverse at runtime; the base policy is the only imported piece.

The current policy largely ignores the depth sensor data. Working on it, but has very good stability nonetheless.

UPDATE: Due to license issues, I have now generated a new similar gait that is not warm-started from a Isaac policy.

u/laht1 — 8 days ago

Real-time hybrid ray-traced ocean in C++, FFT waves, RT shadows/reflections/GI, no shadow maps (open source)

This is the updated ocean demo from threepp, an open-source C++ library I maintain. A scene-graph API in the spirit of three.js, but with its own Vulkan backend that uses hardware ray tracing (plus OpenGL and WebGPU backends sharing the same scene API).

What's in the shot:

  • FFT ocean - multi-cascade spectrum synthesis on the GPU, with an adaptive mesh that concentrates vertex density around the vessel, and world-anchored foam so it doesn't move with the geometry
  • Hybrid pipeline - raster G-buffer for primary visibility; everything lighting-related is hardware ray queries against the scene BVH: shadows, reflections, AO/GI, emissive occlusion. No shadow maps, no SSR, no light probes. (A full path-tracing mode exists as ground-truth reference.)
  • Ray-traced water - real reflections of the hull in the waves, Beer–Lambert absorption in the water body

At 1080p this scene runs at 40 FPS on laptop RTX4060 and 110 FPS on desktop RTX4070.

Code: https://github.com/markaren/threepp. Demo is examples/vulkan/vulkan_ocean

u/laht1 — 24 days ago

HW Pathtraced Ocean with Vulkan

This is the current state of the pathtraced Ocean found in my threepp renderer. I added Vulkan Pathtracing after the software WGPU Pathtracer implemention hit a performance ceiling. The Vulkan PT will eventually fully replace it in the codebase.

u/laht1 — 2 months ago