Supported features#
A quick map of what the Nyx plugin renders and what it doesn’t. Use this page to decide whether your Genesis scene will work as-is, need a small tweak, or hit a hard limit.
Legend: ✅ supported · ⚠️ partial / has caveats · ❌ not supported
Solvers#
The plugin reads geometry from four Genesis solvers. Anything else is invisible to Nyx.
Solver |
Status |
Notes |
|---|---|---|
Rigid |
✅ |
Drives rigid bodies, URDFs, MJCFs, drones, primitives, terrain. |
FEM |
✅ |
Live vertices, fixed topology (no remeshing). |
PBD |
✅ |
Same path as FEM. Only PBD entities backed by a mesh or primitive morph render — particle-only PBD is filtered out. |
MPM |
⚠️ |
Solids render through a skinned mesh; fluids (liquid/sand/snow) via per-frame marching-cubes reconstruction. |
SPH |
❌ |
Particle fluids — no surface to render. |
SF (smoke) |
❌ |
Eulerian grid not consumed. |
Tool, Avatar |
❌ |
Not consumed. |
Note
Genesis’s MPM tutorial defaults to vis_mode="particle". Switch it to "visual" (solids) or "recon" (fluids) when porting that tutorial to Nyx.
Entities and morphs#
Morph |
Status |
Notes |
|---|---|---|
|
✅ |
Native Nyx primitives — no mesh triangulation. |
|
✅ |
|
|
❌ |
Passed through, but Nyx has no Collada or USD importer — load will fail. |
|
✅ |
Picking works at link-name granularity. |
|
✅ |
Visual geometry is transcoded to OBJ at export time. |
|
✅ |
Renders fine; propeller spin shows up only if the rigid solver writes the propeller transforms. |
|
✅ |
Procedural OBJ export per build. |
Capsule / ellipsoid (URDF/MJCF visual geom) |
⚠️ |
Falls back to a triangulated mesh instead of Nyx’s native capsule primitive. Renders correctly, just less efficient. |
|
❌ |
No particle visualization. |
For texture files, .png, .jpg, .bmp, .tga, .hdr, and .exr are all supported. .webp and .tiff will fail to load on the Nyx side.
Surfaces and materials#
The plugin maps genesis.surfaces.* to a single Disney-style PBR slot.
Surface |
Status |
Notes |
|---|---|---|
|
✅ |
Generic PBR. |
|
✅ |
8 named metals via a color lookup; no spectral complex IOR. |
|
⚠️ |
Emission is set, but the surface’s base albedo is forced to black and metalness to 1.0 — emissive geometry reads as self-lit only. |
|
⚠️ |
Renders, but transmission, IOR, thickness, subsurface and transparency are dropped. Looks closer to plastic than to glass. |
|
✅ |
Treated as plastic. |
PBR properties#
Property |
Status |
|---|---|
|
✅ |
|
⚠️ folded into albedo alpha; not flipped to a true transparent material |
|
✅ |
|
✅ |
|
❌ |
|
❌ |
Textures#
Slot |
Status |
|---|---|
|
✅ |
|
✅ |
|
✅ |
|
❌ — only the scalar values |
|
⚠️ |
|
❌ |
Lighting and environment#
Important
Lighting is configured through NyxCameraOptions, not Genesis VisOptions. Any lights you set on gs.options.VisOptions(lights=...) are ignored by Nyx — see Lights.
Feature |
Status |
|---|---|
Point light |
✅ |
Directional light |
✅ |
Spot light |
✅ |
Ambient light |
❌ |
Shadow toggle |
✅ |
HDRI environment map |
✅ via |
Light fields (gaussian splats) |
✅ |
Area lights (rectangle / sphere / disc / tube) |
❌ |
Cameras#
Property |
Status |
|---|---|
Pinhole model |
✅ |
Thin-lens / fisheye / orthographic |
❌ |
|
✅ |
|
✅ |
Render mode ( |
✅ — must be the same across all cameras in the scene |
Attached camera (mount on entity/link with offset) |
✅ — see Attaching a camera |
Runtime pose update |
✅ |
|
❌ |
Sensors / output channels#
Channel |
Status |
|---|---|
RGB ( |
✅ |
Depth |
❌ |
Segmentation |
❌ |
Normals / world-position / optical-flow passes |
❌ |
Non-visual sensors (IMU, contact, force, proximity, temperature grid) are unaffected — they run through Genesis directly.
Multi-environment#
Multi-env (n_envs > 1) works, but the plugin renders each environment in a Python loop rather than batching across the GPU. Cost grows linearly with n_envs. Each environment can show a different HDRI for domain randomization.
Bottom line#
You’re on the well-trodden path if your scene uses rigid bodies, articulated robots (URDF/MJCF), FEM/PBD cloth, MPM solids, simple PBR materials, point/directional/spot lights, and HDRI environments.
Expect rough edges if you rely on refractive glass, fluids/smoke, particle rendering, area lights, depth-of-field, depth or segmentation passes, ambient lighting from Genesis VisOptions, or runtime topology changes.
For the operational details behind these caveats (scene-lifecycle, CUDA requirement, multi-camera constraints), continue to Sensor lifecycle.