Skip to content
Vortex · Live Viewer

This is not a video. Touch it.

Vortex is the VoxaVerse web viewer, running in this page right now. The scenes below are native 4D reconstructions* — drag to orbit, scrub the timeline, and when you have a scene of your own, open it here without uploading it anywhere.

Reconstructed end-to-end by the VoxaVerse engine — pipeline provenance, not a stock demo.

Open your own scene

Exported a VoxaVerse Scene from Prism? Drop it anywhere on this page, or pick it below, and it opens right here.

.nx4d .ply .spz .sog .glb .splat .ksplat .usdz

Nothing is uploaded. The file is read by this tab and decoded by the viewer’s own workers on your machine. There is no upload endpoint, no server round-trip and no copy kept — close the tab and it is gone. Your scene never touches our network, because there is nowhere for it to go.

Viewer loads when scrolled into view

* Hero scene: ViVo “athlete” (Azzarelli et al., 2025, University of Bristol), CC BY 4.0 — reconstructed as 4D Gaussians by VoxaVerse. See the benchmarks page for measured render times and delivery sizes.

Your own scenes

It opens your file. It never takes it.

Export a VoxaVerse Scene from Prism, drop it on this page, and it plays here. The reason that is safe is the reason it is fast: the file is read by this tab, not sent to one.

No upload endpoint

There is no server-side receiver for scene files anywhere on voxaverse.ai, so there is nothing for a file to be sent to. The site is a static export; the viewer is a set of ES modules that run in your tab.

Read from a local handle

Your pick becomes a browser-local object URL — a handle to bytes this tab already holds. Fetching it never leaves the process, so the viewer streams from your own disk exactly as it would from the network, progress bar and all.

Checked before it loads

The viewer reads only the container’s header first — a few kilobytes, with bounds checked before anything is allocated — and tells you what the file really is. A file it cannot open gets a sentence you can act on, not “invalid file”.

Gone when the tab is

Nothing is cached to a server, and the local handle is released as soon as the scene finishes decoding. Close the tab and every trace of it goes with it.

Format support

What's native, what's supported, what isn't there yet

Every badge under the viewer is a live capability check from Vortex itself, run in your browser — never hardcoded on this page. A VoxaVerse Scene is the only one of these that keeps time.

FormatViewExportNotes
VoxaVerse Scene (.nx4d)Native, full 4DPLY or GLB at any scrubbed momentThe whole moving scene in one file
VoxaVerse Stream (.nxs4)Native, streams while it playsPLY or GLB at any scrubbed momentCoarse-first: it paints before the file finishes arriving
.plySupportedPLY passthroughThe reference Gaussian-splatting binary layout, plus the compressed variant
.spzSupportedRe-exports to PLY or GLBNiantic’s container
.sogSupportedRe-exports to PLY or GLBCompact web splats, bundled or unbundled
.gltf / .glbSupportedGLB with KHR_gaussian_splattingKhronos Gaussian-splatting extension
.splat / .ksplatSupportedRe-exports to PLY or GLBStatic, and honest about it — a single frame, no view-dependent colour
.usdz / .usdaSupportedRe-exports to PLY or GLBASCII root layers; a binary USD crate is refused with the command that converts it
How it renders

Time lives in the shader. Quality answers to your device.

Two decisions do most of the work, and both are visible from the outside.

One clock drives everything

A moving scene is evaluated at a single time value handed to the shader, so playback is not a sequence of files being swapped — it is one continuous model sampled at whatever instant you scrub to. Audio, where a scene carries it, is slaved to that same clock rather than running beside it.

Adaptive resolution, never adaptive truth

When a device cannot hold the frame rate, the viewer lowers render resolution and climbs back when it can. It does not quietly throw away splats: what you are looking at stays the whole model, drawn at a scale your GPU can sustain.

WebGPU where it is real

WebGL2 is the verified default everywhere. WebGPU compute culling and sorting are opt-in and used only where the device genuinely reports an adapter — the badges under the viewer show which one your browser actually has.

It stops when you are not looking

Scroll the viewer off screen and it pauses; scroll back and it resumes where it was. A volumetric scene should not tax a GPU nobody is watching.

Session entry

How the 2D → immersive handoff works

01 — Default

The viewer renders inline in a 2D canvas on load — orbit, pan, zoom. The universal baseline that works everywhere WebGPU or WebGL2 runs.

02 — Feature detection

Vortex checks WebXR session support for immersive-vr and immersive-ar independently. Buttons appear only for modes your device genuinely supports — never assumed.

03 — Immersive request

The XR session starts inside your click on Enter VR/AR — required by the WebXR spec. A real session begins, rendered and sorted at interactive frame rates.

04 — Session end

Ending the session restores the 2D view exactly where you left off — no reload, no lost state.

Device matrix

Honest on every device

Feature-detected at runtime, documented here in advance — you'll never hit a black screen or a faked button.

Chrome / Edge — desktop & Android
2D WebYes
VRYes
ARPartial
Meta Quest Browser
2D WebYes
VRYes
ARPartial
Apple Vision Pro (Safari)
2D WebYes
VRYes
ARNo
iPhone / iPad Safari
2D WebYes
VRNo
ARPartial
Firefox / non-WebXR browsers
2D WebYes
VRNo
ARNo
EnvironmentWhat actually happens
Chrome/Edge desktop + Android2D everywhere; immersive VR and AR where the device supports them
Meta Quest Browser2D + immersive VR; passthrough AR depends on device/OS build
Apple Vision Pro (Safari)Immersive VR only — visionOS Safari’s WebXR AR module is not yet functional, so no AR button is shown
iPhone / iPad SafariNo handheld WebXR in 2026. The 2D viewer always works; an AR Quick Look link appears only when a scene ships a real USDZ sibling — never faked
Firefox / non-WebXR browsers2D viewer only; XR buttons hidden entirely

Want this pipeline behind your own captures?

Prism — the Mac studio that Solved everything you just orbited — is coming soon, and its exports open right here.