Your camera, live in a browser tab anywhere on Earth — seconds after you plug it in.
Point any HDMI, SDI, or NDI source at a URL and it lands, live and moving, in a plain browser tab — no app to install, no encoder box, no streaming server. WAVE Crest mints the session and meters the minutes; the media streams device → relay → tab, never landing on a transcode farm or CDN, metered by the minute and $0 when nothing's flowing.
The worker never sees your video
Your device publishes H.264 straight to a media-over-QUIC relay (MoQ draft-18) that forwards it untouched — no transcode farm to rent, no CDN to propagate through — and the browser decodes it natively with WebCodecs, so there's no player SDK to embed and no viewer app to ship. Crest only mints the ingest session and meters the minutes; auth, scope, and billing federate through the WAVE gateway (api.wave.online).
device (crest-publish)
│ H.264 access-units, 1 per MoQ object
▼ wss://moq.wave.online (draft-18)
relay ─▶ /console live browser preview (WebCodecs → canvas)
│
└─ session, auth + metering federate through api.wave.online
One edge of the WAVE protocol plane
The same session that lights up a live browser preview turns your source into an AI-native, addressable ingest node — and once a feed is on WAVE transports, it composes with everything else WAVE can run against a moving picture: sensing, captions, routing, metering, injection. Every source you plug in becomes entitled and billable through one gateway. Today it's a live console; tomorrow the same pipe feeds anything WAVE can run against a moving picture.
Federated — auth, entitlement, and metering run through api.wave.online; this spoke mints the ingest session and renders the console. The media never touches this worker — it flows device → relay → browser.