Concepts#

Note

This page is a stub. Flesh it out as the API stabilises. The intent is to give a one-page mental model that bridges the Quickstart and the API reference.

The renderer lifecycle#

A NyxRenderer instance progresses through three states:

  1. Constructed, Python object exists, no GPU resources allocated.

  2. Started, the Nyx SDK has been booted with a BridgeStartupParams; GPU context, swapchain, and asset pools are live. The plugin registers the SDK’s start hook with Genesis at import time, so gs.init() triggers this transition for you.

  3. Shut down, all GPU resources have been released and the instance is no longer usable. gs.destroy() (or interpreter teardown) triggers this transition through the same registered stop hook.

Scenes and assets#

A scene is the renderer’s view of “what exists”. It is composed of typed assets:

Asset class

Role

SceneAsset

Container that owns the rest

InstanceAsset

One placed mesh, with a transform and a material binding

CameraAsset

A virtual camera with intrinsics and a pose

LightAsset

A point / directional / area light

MaterialAsset

Shader parameters and texture references

LightFieldAsset

A captured radiance field (Gaussian splat or sparse grid) attached to a camera

EnvironmentMapAsset

Image-based lighting

Each asset has a stable UUID. The renderer is told about changes via BridgeUpdateDesc (which assets exist) and BridgeUpdateData (what their per-frame values are).

Render modes#

ERenderMode selects the rendering algorithm:

  • Forward, rasterisation. Fastest. Suited for visualisation and RL rollouts.

  • FastPathTracer, biased path tracer. Photorealistic with manageable cost.

  • RefPathTracer, reference unbiased path tracer. Slow but ground-truth.

  • Debug, visualise normals, depths, materials, etc. (see EDebugView).

Integrating with Genesis#

The plugin is designed to ingest scene state from a Scene, translate it into Nyx assets, and produce rendered frames that can be returned to Genesis as observations.

See Attaching a camera for the end-to-end pattern.