composing-libraries
Installation
SKILL.md
Composing OV Libraries into a Streaming Application
Overview
ovstream delivers frames; it does not render, own a scene or draw UI. An application built from the OV libraries gives each library one job and keeps the frame path on the GPU:
| Library | Owns | Hands over |
|---|---|---|
| ovstage | the USD scene, per-frame writes under ordinals | a stage the renderer attaches to |
| ovrtx | rendering, DLSS Frame Generation | RGBA8 render vars mapped to CUDA |
| ovui | the application chrome (headless Vulkan, full frame) | an RGBA8 image exported to CUDA |
| the application | CUDA stream, frame ring, cadence, input routing | BGRA8 frames with a CUDA event |
| ovstream | transports, encoding, the browser control channel | callbacks on a worker thread |
The reference implementation is examples/python/app_stream; the minimal ovrtx + ovstream pairing is examples/python/ovrtx_stream.
One loop, two cadences
The application loop ticks at the delivered rate with ovstream_utils.Loop; a render step is owed at the base rate, which is the delivered rate divided by the frames the renderer returns per step (see the frame-generation-streaming skill). The renderer is stepped asynchronously and polled without blocking, at most one step in flight; a step owed while one is running is counted as missed rather than stalling presentation.