docs: add RFC 0001 for native desktop rewrite (Rust + egui/wgpu)#90
Conversation
Proposes replacing the Remotion-based render pipeline with a native Rust desktop app to fix the confirmed Chromium/Puppeteer render bottleneck and cross-platform hardware inconsistency. Covers language choice, GUI strategy, JSON-schema interop boundary, and a phased, non-blocking migration plan alongside the current pipeline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Answers the most likely first question reviewers will ask before engaging with the Rust-vs-C++ decision: explains why the render bottleneck can't be fixed by staying in the current stack, and why that necessarily narrows the options to a compiled/native language. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
missabawse
left a comment
There was a problem hiding this comment.
LGTMT, Thank you for the detailed RFC!
but I would think we should do a quick spike with Rust to see if we are ok with the dev of it. Claude suggested "port the AudioSyncer FFT correlation function to Rust (self-contained, well-defined I/O, no GPU), verify output matches on all three target machines, and get a real feel for the agent-driven Rust development loop.
Yea that sounds like a good idea, I've been meaning to do a spike too. Will do on separate repo and then we can test on all our machines and see how it goes! |
|
Tracked in #93 — a self-contained spike to port the |
|
Spike issue created in #93 , to work on spike and come back to amend this RFC. Merging RFC in and closing this issue |
What this is
Docs-only PR — adds
docs/rfcs/0001-native-desktop-rewrite.md, no code changes. It proposes replacing our Remotion-based render pipeline with a native Rust desktop app to fix two confirmed, architectural problems:Full reasoning, alternatives considered, and a phased build order are in the RFC. This PR is to get both of you to read it and weigh in before we commit engineering time.
What I need from you two specifically
Please read the full RFC, then give a thumbs up/down (or a counter-argument) on each of these — they're the decisions that actually commit us to a direction:
gstreamer-rs, and whether to carry over our "Agent Implementation Convention" (implementation doc + per-step commits) into the new repo.Also flagged in the RFC as reading material only (not a dependency): gausian-AI/Gausian_native_editor, specifically its native-decoder crate's VideoToolbox/GStreamer decode loops — useful reference, but its license is contradictory (Apache-2.0 file vs. MPL-2.0+commercial claimed in the README) and roughly half its GPU-integration code is dead/decorative, so don't treat it as vetted — no action needed, just context if either of you goes looking at it.
Suggested next step
Comment inline on anything you'd change, or approve if you're aligned — once we have agreement on the checklist above, I'll turn the build-order section into implementation-guide docs and we start Phase 1 (render engine).