Eagle 3D Streaming streams NVIDIA Omniverse Kit apps to a browser: the Kit app runs on an Eagle 3D Streaming GPU machine, and the viewer sees and controls it in a web page, with no static IP, no server and no install of their own. Omniverse streaming is in beta and free while in beta.
kit-app-template has
a streaming variant of its .kit file that adds omni.kit.livestream.webrtc; that is the one
to stream.repo.bat package). The result is one ZIP that runs on a machine without the Kit SDK or NVIDIA's
caches installed. The folder under _build is not enough on its own: most of it points into caches on
the machine it was built on.Verified with Kit 107.3 and the template's USD Viewer app. Other Kit versions are expected to work the same way but have not been tried; mention the version when you get in touch.
| Eagle 3D Streaming player | NVIDIA's web viewer page | |
|---|---|---|
| Look | the same player as every Eagle 3D Streaming app: full window, settings button | NVIDIA's sample page with its own panel |
| Viewer input | mouse, wheel and keyboard; a touch acts as the left mouse button | NVIDIA's own input handling |
| Talk to the app from your website | yes, through the iframe (below) | through NVIDIA's page only |
A Kit app can define its own messages - the USD Viewer template, for example, answers openStageRequest
by opening a file and getChildrenRequest by listing what is in the scene. With the Eagle 3D Streaming
player in an <iframe> on your page, your page sends those messages to the player, and the player
passes them to the app:
// your page -> the Kit app
iframe.contentWindow.postMessage(JSON.stringify({
type: "omniverseMessage",
event_type: "openStageRequest",
payload: { url: "${omni.usd_viewer.samples}/samples_data/stage02.usd" }
}), "*");
// the Kit app -> your page
window.addEventListener("message", (e) => {
const m = JSON.parse(e.data);
if (m.type === "omniverseReady") { /* the app can now receive messages */ }
if (m.type === "omniverseEvent") { console.log(m.event_type, m.payload); }
});
Which event_type names exist, and what is in each payload, is decided by your Kit app's
own extension, not by Eagle 3D Streaming. Verified with the USD Viewer template: choosing a file, listing the scene,
selecting objects from a list and resetting the stage all work this way, exactly as in NVIDIA's own viewer.
Yes. Kit's streaming normally expects the browser to reach the GPU machine directly. With Eagle 3D Streaming, the viewer opens an ordinary HTTPS link and the connection to the app is set up through Eagle 3D Streaming's servers, so the machine needs neither a static IP nor a public address of its own.
No. The app renders on Eagle 3D Streaming's GPU machine; the viewer only decodes a video in the browser.
Kit apps that include Kit's WebRTC streaming extension, packaged as a self-contained ZIP - such as apps made from
NVIDIA's kit-app-template. Verified with Kit 107.3.
Nothing during the beta. Email support@eagle3dstreaming.com to join.
Other kinds of app: Stream any app in the browser.
Last updated