feat: bring desktop Studio UI and local playback to web - #2312
richiemcilroy wants to merge 172 commits into
Conversation
|
hey @greptileai, please re-review the PR |
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR at d6ff28e. Firefox H.264 color correction now reaches the WebCodecs bitmap path, and the browser/native replay records its source color path. |
|
hey @greptileai, please re-review PR #2312 at commit 5c6a06d. The prior Firefox color-path finding is addressed with an assertion that a WebCodecs frame is actually used when H.264 WebCodecs support is reported; the adaptive Safari blur assertion now scales with preview size. Please assess actionable issues on this exact head. |
|
hey @greptileai, please re-review the PR |
1 similar comment
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
The Next.js editor page mounts the desktop Solid Studio interface. Browser playback renders locally on the viewer's GPU through Rust/WASM, using WebGPU when presentation is healthy and WebGL2 as the fallback. Native editor workers render exports and are acquired only when Export opens. The two paths share project/timeline mapping, video composition, transition and image shaders, gradients, and blur so saved playback can be compared against exported frames. Web and Chrome-extension recordings preserve synchronized screen and webcam clips, with mic, system audio, and input events stored separately. Web captions require Cap Pro and use the existing AssemblyAI transcription path; desktop captions keep their local models.
This revision brings image segments into local playback. The browser decodes EXIF orientation, premultiplied RGBA, and mipmaps using the native image algorithm, uploads bounded GPU textures, and draws image overlays with the desktop shader. A 20-image fixture verifies that active textures stay resident. It also bounds corrective seeks in the HTML-video fallback when a slow decoder trails playback, while scrubs and discontinuities still seek to the requested frame.
Validation
Release gates
Studio remains a draft and is off by default behind
CAP_WEB_EDITOR_STUDIO_ENABLED=enabled. Local playback still lacks faithful desktop frame/notch, cursor/click/zoom, camera cutout/blur/3D, captions/text/keyboard, masks, and scenes. Native export can render effects that browser playback cannot, so complete 1:1 playback/export parity and every desktop editor feature are not yet delivered. Chrome, Firefox, and Safari authenticated record-to-edit-to-export flows, sustained low-end speed, Safari cold start, memory/battery use, and paired audio synchronization need hosted testing. Machines without WebGPU or WebGL2 currently lack preview. Deployment requires an editor-worker pool and recording-bucket ranged CORS exposingContent-Range; no database migration is required.The changes since the previous review appear safe to merge, with no new actionable failures identified.
Summary
This revision makes two narrowly scoped follow-up changes:
Reviews (141) · Last reviewed commit: "fix: skip Windows base comparison for ne..."