What problem does it solve? Running Kit-CAE as an interactive application that remote clients can watch and control requires wiring WebRTC streaming, a JSON wire protocol, and long-lived message handlers by hand. This Skill packages the streaming-enabled .kit configuration, the protocol references, and a reusable Python handler framework so a browser, agent, or dashboard can view and drive a live Kit-CAE session. ## Core Features & Use Cases - WebRTC streaming server: Launch a headless, viewport-only Kit-CAE app via scripts/launch_streaming.sh with the omni.kit.livestream.messaging extension preconfigured. - Request/response handler framework: scripts/omniverse_api.py provides @api.request and @api.signal decorators that handle sync and async handlers, payload unpacking, id correlation, and error-to-JSON conversion. - Runnable reference handler: scripts/serve.py implements load_scene, list_scenes, register_scene, and deregister_scene against a scene registry, demonstrating the end-to-end pattern. - Use Case: An ML pipeline needs to load CAE datasets into a live Omniverse viewport and push results to a browser dashboard; it connects over the WebRTC data channel, sends load_scene_request messages, and receives responses plus scene_loaded signals. ## Quick Start Run bash skills/cae-streaming/scripts/launch_streaming.sh from the Kit-CAE repo root, then connect a WebRTC client and send a load_scene_request message for the static_mixer scene.