| name | stepping-and-rendering |
| description | Running a simulation step to produce rendered frames. Use when user asks to render a frame, step the renderer, simulate a sensor, or get an image from ovrtx.
|
| license | LicenseRef-NvidiaProprietary |
| version | 0.3.0 |
| author | NVIDIA ovrtx |
| tags | ["ovrtx","rendering","stepping"] |
| tools | ["Read","Grep"] |
Stepping and Rendering
When to Use
Use this skill when the user asks to render a frame, step the renderer, simulate a sensor, or get an image from ovrtx.
Inputs
Resolve inputs in this order: existing repository files and referenced snippets, explicit user request, then broader agent context.
- Target API surface: Python, C/C++, or both.
- Application lifecycle stage: renderer creation, scene loading, stepping, warmup, output readback, or cleanup.
- Repository source snippets referenced below. Treat these snippets as the API source of truth.
Prerequisites
- Use an ovrtx checkout that contains the referenced examples and docs tests.
- Read the relevant
> **Source:** snippet before writing or explaining API usage.
- For code changes, preserve renderer lifecycle ordering and cleanup semantics for the selected language.
Instructions
- Identify the requested language and lifecycle stage before choosing an example.
- Read the referenced snippet that matches the requested stage and language.
- Preserve the normal ovrtx order: create or initialize the renderer, load or compose USD, step or wait for work, read outputs when needed, then release C resources explicitly.
- Apply the async, status-query, error-handling, and warmup skills when the workflow crosses those concerns.
- When changing code, run the narrow example or docs test that owns the snippet whenever practical.
Output Format
- For explanations, cite the relevant API names, source snippets, and caveats.
- For code changes, summarize the files changed, snippets affected, and validation run.
Scripts
This skill has no scripts.
Limitations
- The referenced snippets remain the source of truth; update or add tested snippets before documenting new API usage.
Overview
After loading USD content, you render frames by calling step(). Each step advances the simulation by delta_time and produces output for the specified render products (cameras/sensors). The result contains a hierarchy of products, frames, and render variables that can be mapped to access pixel data.
Python
Single frame
Source: examples/python/minimal/main.py snippet step
Iterate over results
Source: examples/python/minimal/main.py snippet read-render-output
Render loop
Source: tests/docs/python/test_camera_sensors.py snippet doc-step-and-map-camera-outputs
Reset simulation time
Source: tests/docs/python/test_support_api.py snippet doc-reset-async
renderer.reset(time=0.0) resets accumulated simulation time (distinct from reset_stage()).
C
Step, wait, fetch
Source: examples/c/minimal/main.cpp snippet step-renderer
Followed by: examples/c/minimal/main.cpp snippet fetch-results
Iterate over C results
Source: examples/c/minimal/main.cpp snippet find-output-helper
Key Types / Functions
| Python | C |
|---|
renderer.step(products, dt) | ovrtx_step() + ovrtx_wait_op() + ovrtx_fetch_results() |
renderer.step_async(products, dt) | ovrtx_step() (always async) |
renderer.reset(time) | ovrtx_reset(renderer, time) |
RenderProductSetOutputs | ovrtx_render_product_set_outputs_t |
ProductOutput | ovrtx_render_product_output_t |
FrameOutput | ovrtx_render_product_frame_output_t |
RenderVarOutput | ovrtx_render_product_render_var_output_t |
Result hierarchy:
RenderProductSetOutputs
-> ProductOutput (one per render product path)
-> FrameOutput (one per frame produced during the step)
-> RenderVarOutput (one per output variable: LdrColor, HdrColor, depth, etc.)
Troubleshooting
- In C, you must call
ovrtx_destroy_results() after processing to free resources. ovrtx will warn if results are leaked.
delta_time controls sensor simulation timing. A camera without motion blur produces one frame per step regardless of delta.
- The render product paths must match actual RenderProduct prims in the USD stage.
- In Python,
RenderProductSetOutputs auto-destroys on garbage collection. Step result metadata is released when products falls out of scope; live render-var mappings and their DLPack views are unaffected (they have their own independent lifetime).
References
- Use the
> **Source:** directives in this skill to locate tested snippets before reusing API patterns.
- Keep related skills, docs, and snippets synchronized when changing the workflow.