11 of 13
Grain
A cut-grade-export editor that opens in two seconds — GPU-graded previews in the browser, renders handled by an FFmpeg pipeline compiled to WASM with a Rust core for the hot paths.
- Year
- 2026
- Disciplines
- Video, Motion, Product
- Platform
- Desktop, Web
- Brief
- Sample client

01Context
Social teams don't need a Premiere licence to ship a 40-second reel. Grain is the 20% of an NLE that covers 95% of social work: trim, sequence, grade, caption, export — with a UI a producer learns in one sitting.
02Strategy
The timeline is a custom React renderer over a Rust document core; colour grades are WebGL shaders applied in real time; export runs FFmpeg in a Web Worker (WASM) with multipart uploads straight to S3 — no render farm, no waiting room.
- Rust edit-graph core, deterministic undo
- WebGL LUT grading at 60fps preview
- FFmpeg-WASM export pipeline in Workers
- Electron shell sharing 100% of the web code
03Design


04Engineering
The edit graph is a Rust core compiled to WASM with deterministic undo; React renders the timeline, WebGL shaders grade the preview at 60fps, and FFmpeg-WASM in Workers exports with multipart S3 uploads.
- Rust document core: every edit replayable
- WebGL LUT pipeline, zero-copy frame path
- Export in Workers — UI never blocks
Also considered. Remotion/server rendering — great for templates, wrong for a hands-on editor's latency budget.
05Details
The mechanism underneath, as a working model. Press the buttons.
lab / graphics / gpu grading in the browser
Colour grades are WebGL shaders applied per frame on a zero-copy path. The preview is graded live in the browser, no render farm.
Loading the model
Figures inside a model are simulated to show how the mechanism behaves. They are not production measurements.
06What shipped
8 modules are in the build below. Each one works.
- 01Per-clip grading with LUTs
- 02Split, delete, undo and redo
- 03Scrub with J K L and space
- 04Caption track with auto-caption
- 059:16, 16:9 and 1:1 export with progress
- 06Multi-project library and media bin
- 07Title presets and music
- 08Share for review with timecoded notes
07Technology
This is the kind of work we do under Graphics & Video Editing.
Now use it.
This is Grain, the whole application. Continue as the sample user, change things, reload. Your data stays in this browser and resets from Settings, then Data.

A full application, not a recording. Sign in as the sample user; your data stays in this browser.
