Scene keyframes
Pick an MP4, MOV or WebM file. It stays on your machine and is analyzed in the browser: similar consecutive frames are grouped and one keyframe is suggested per group, such as the different parts of a room.
Tested browsers and formats
From automated browser tests on one machine (macOS 26, Apple M1), run on 9 October 2026
(library 1.1.1, ONNX Runtime Web 1.30.0).
Browser automation on one machine doesn't show that other GPUs, drivers or
devices work. Report: reports/compatibility/2026-10-09-20-06.json.
| Browser | Status | Backends seen | Checks |
|---|---|---|---|
| Chrome 154, macOS 26, Apple M1 | Tested | WebGPU and WASM | 48 passed |
| Chromium 153, macOS 26, Apple M1 | Tested | WASM | 17 passed |
| Firefox 155, macOS 26, Apple M1 | Tested | WASM | 34 passed |
| WebKit 26, macOS 26, Apple M1 | Tested | WebGPU and WASM | 34 passed |
| Chrome / Edge on Windows or Linux | Untested | – | Expected to work; speed depends on GPU support |
| Safari app, iPhone and iPad | Untested | – | The WebKit engine was tested on macOS, not the app or iOS |
| Phones and tablets generally | Untested | – | About 70 MB download (model and runtime) on first use; likely slower |
| Format | Status | Notes |
|---|---|---|
| MP4, H.264 | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| MOV, H.264 | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| WebM, VP9 | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| MP4, AV1 | Tested | Passes in Chrome, Chromium, Firefox; Rejected with a message in WebKit |
| Damaged files | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| Other containers (e.g. AVI) | Not supported | Rejected with a message in Chrome, Chromium, Firefox, WebKit |
| MP4, HEVC (e.g. Pixel phones) | Untested | No automated fixture; needs a browser that can play HEVC |
| MOV, HEVC (iPhone) | Untested | No automated fixture; needs a browser that can play HEVC |
| M4V; WebM with VP8 or AV1 | Untested | Accepted, no automated fixture |
| MOV, ProRes | Untested | Chrome usually can't play ProRes |
Formats a browser can't decode fail cleanly with a "playback" error rather than wrong results; the tests check that too.
The sample-video checks compare keyframe counts with what Chrome gave (±2). Chromium and WebKit decode a little differently and come out 3 off on one clip each, so those checks fail there; decoding itself works (see the format table).
How it works
your video file (stays in the browser, nothing is uploaded)
|
v
1. SAMPLE seek a hidden <video> to 2 frames per second
(max 180), draw each frame once:
- ~224x224 px copy for the model (aspect kept)
- sharpness + brightness score
|
v
2. EMBED DINOv2-small (fp16) via ONNX Runtime Web,
on WebGPU or the WASM fallback:
each frame -> 384 numbers describing what it shows
| runs while the next frame is being seeked
v
3. SELECT re-runs instantly when you move the slider
| a. drop dark, overexposed and blurry frames
| b. mean-center the embeddings for this clip
| c. group consecutive frames of the same view
| d. keep the sharp frame nearest each group's centroid
| e. drop views the camera returns to later
v
4. SHOW keyframe timestamps in time order; thumbnails
are captured on demand; click one to seek
[frame][frame][frame][frame][frame][frame][frame][frame]
\_____ view A _____/ \__ view B __/ \_____ view C ____/
| | |
keyframe keyframe keyframe
Video credits
The sample videos are clips from Apple's ARKitScenes dataset (iPhone captures of real homes), used under the ARKitScenes license. They have been trimmed to 25 seconds and re-encoded (main camera, 1280 px wide, no audio). This demo is not affiliated with or endorsed by Apple.
Dataset: G. Baruch, Z. Chen, A. Dehghan, T. Dimry, Y. Feigin, P. Fu, T. Gebauer, B. Joffe, D. Kurz, A. Schwartz and E. Shulman, "ARKitScenes: A Diverse Real-World Dataset for 3D Indoor Scene Understanding Using Mobile RGB-D Data", NeurIPS 2021 Datasets and Benchmarks Track.
| Sample | Title | Author | License | Source |
|---|---|---|---|---|
bedroom-tv-and-desk.mp4 |
Capture 48018785 (Training), 27–52 s | Apple (ARKitScenes) | ARKitScenes license | ARKitScenes |
bedroom-wall-tv.mp4 |
Capture 47333513 (Training), 27–52 s | Apple (ARKitScenes) | ARKitScenes license | ARKitScenes |
living-room-fireplace.mp4 |
Capture 42445841 (Training), 20–45 s | Apple (ARKitScenes) | ARKitScenes license | ARKitScenes |
living-room-sofa-rug.mp4 |
Capture 47669927 (Training), 33–58 s | Apple (ARKitScenes) | ARKitScenes license | ARKitScenes |
cluttered-bedroom.mp4 |
Capture 47331544 (Training), 15–40 s | Apple (ARKitScenes) | ARKitScenes license | ARKitScenes |