Fast, deterministic, open-source Windows non-linear video editor built with C# / .NET 10, WPF, and a native C++20 / Direct3D 11 media engine.
Overview • Screenshots • Capabilities • Quick Start • Shortcuts • Architecture • Contributing
OpenRend is an open-source non-linear video editor designed for high-throughput Windows desktop workflows. It pairs a managed WPF / .NET 10 studio interface with a native C++20 media engine accelerated by Direct3D 11 and the FFmpeg SDK.
Unlike traditional editors that approximate preview quality or decouple the playback engine from final encoding, OpenRend evaluates timeline composition deterministically using rational arithmetic. What scrubs in the viewport matches final master exports frame-for-frame across colorspaces, velocity curves, and transition geometries.
Live timeline scrubbing across automatic crossfades, multi-track audio waveforms, and GPU preview in OpenRend (Download MP4 video).
- Multi-Track Compositing: Unlimited video and audio tracks with per-track opacity, gain, pan, mute, solo, and composite modes (Source Alpha, Add, Multiply, Screen).
- Vegas Pro 1:1 Editing Workflow: High-speed split (
S), automatic crossfades, magnetic ripple editing (Auto-Ripple), and grouped clip pairs (G/U). - Velocity & Fade Envelopes: Clip velocity envelopes (-100% to +300%) and 5×5 reciprocal fade curves evaluated with integer project frame precision.
- Sub-Frame Audio Alignment: Multi-track audio editing with sample-accurate cuts and zero-crossing transitions.
- 3-Way Color Wheels: Interactive Lift, Gamma, Gain, and Offset controls with numerical readout and real-time GPU preview.
- Hardware Scopes: Real-time RGB Parade, Waveform Monitor, and Vectorscope for broadcast compliance and color balancing.
- 3D LUT Integration: Direct import and evaluation of
.cube3D lookup tables with intensity and interpolation controls.
- 63 Built-In Video Effects: Color balance, separable Gaussian blur, levels, unsharp mask, chroma keying, glow, and stylize filters.
- 18 OFX Video Transitions: Full transitions catalog including Linear Wipe, Clock Wipe, Barn Door, Push, Slide, Zoom, Page Peel, and Crossfade.
- Audio DSP Chain: Built-in 4-band parametric Track EQ, Track Compressor, and Track Noise Gate with real-time dB peak/RMS metering.
- Pyramidal Optical Flow: Multi-scale Lucas-Kanade feature tracking with confidence scoring.
- Affine & Homography Solvers: 6-parameter affine stabilization and Direct Linear Transform (DLT) 4-point planar tracking.
- Direct3D 11 GPU Compositing: Zero-copy surface presentation directly into WPF via DirectX swapchain interop.
- Multithreaded Asynchronous Decode: Background frame pre-fetching, audio ring buffering, and asynchronous thumbnail generation.
- Real-Time Debounced Crash Recovery: Timeline edits automatically persist recovery snapshots within 3 seconds of settling. Normal sessions exit cleanly with zero orphaned temp files.
- Zero-Codec Portable Bundle: Self-contained x64 deployment without system-wide codec installations or registry modifications.
Pre-compiled, self-contained standalone bundles are available under Releases.
- Download
OpenRend-win-x64.zip. - Extract the archive to any directory.
- Run
OpenRend.exe.
Supported Operating Systems: 64-bit Windows 10 (version 1903+) and Windows 11.
- 64-bit Windows 10 or 11
- .NET 10 SDK (v10.0.303 or newer, configured via
global.json) - Visual Studio 2022 / 2026 with Desktop development with C++, MSVC v143/v144 tools, and Windows 10/11 SDK
- Git
# Clone the repository
git clone https://github.com/jamiejustcodes/OpenRend.git
cd OpenRend
# Execute unified build script (configures CMake, builds C++20 engine, compiles WPF app, runs test suite)
.\tools\build.ps1
# Run the compiled executable
.\src\OpenRend.App\bin\Release\net10.0-windows\win-x64\OpenRend.exe# Fast build: skip native compilation when editing managed WPF UI
.\tools\build.ps1 -SkipNative
# Quick build: compile without running tests
.\tools\build.ps1 -SkipTests
# Package a self-contained portable distribution in .\dist\OpenRend
.\tools\build.ps1 -Package| Shortcut | Context | Action |
|---|---|---|
Space |
Playback | Play / Pause |
Enter |
Playback | Pause at cursor |
Escape |
Workspace | Stop playback / Cancel active edit drag |
Alt + Left / Right |
Timeline | Step one frame backward / forward |
Ctrl + Home / End |
Timeline | Seek to project start / end bounds |
Ctrl + Mouse Wheel |
Timeline | Zoom timeline in / out |
Shift + Mouse Wheel |
Timeline | Scroll timeline horizontally |
S |
Editing | Split selected clips at playhead |
Delete |
Editing | Delete selected clips |
Ctrl + Shift + Delete |
Editing | Ripple delete time selection |
G / U |
Clips | Group / Ungroup selected clips |
M / Shift + M |
Tracks | Toggle track Mute / Solo |
Ctrl + I |
Media | Import media files |
Ctrl + Shift + E |
Export | Open Render As dialog |
Ctrl + S |
Project | Save project document |
flowchart TD
subgraph UI ["Managed UI (.NET 10 / WPF)"]
MainWindow["MainWindow (Dockable Studio Workspace)"]
TimelineView["TimelineView (Sub-Frame Virtualized Tracks)"]
VideoPreview["DirectX 11 Preview Viewport"]
Inspector["Color Wheels / Pan & Crop / Effects Host"]
end
subgraph Core ["OpenRend.Core"]
TimelineEditor["TimelineEditor (Deterministic Edit Commands)"]
ProjectDoc["Project Document (JSON Schema v10)"]
CurveEngine["Velocity & Fade Curve Mathematics"]
MotionTracker["Lucas-Kanade & Homography Tracker"]
end
subgraph Native ["Native Media Core (C++20)"]
InteropBridge["P/Invoke Native Boundary (OpenRend.Native.dll)"]
FFmpegDecoder["FFmpeg Demuxer & Codec SDK"]
D3DCompositor["Direct3D 11 Hardware Compositor"]
AudioDSP["64-bit Float Audio Engine & Filters"]
Muxer["Master H.264 / AAC MP4 Exporter"]
end
UI --> Core
Core --> InteropBridge
InteropBridge --> FFmpegDecoder
InteropBridge --> D3DCompositor
InteropBridge --> AudioDSP
D3DCompositor -->|D3D Surface Pointer| VideoPreview
AudioDSP -->|Float Audio Samples| UI
FFmpegDecoder --> D3DCompositor
D3DCompositor --> Muxer
Contributions are welcome. Please read our Contributing Guidelines and review the Security Policy before opening a pull request.
- Check open issues or start a discussion for larger feature proposals.
- Ensure all native and managed test suites pass (
.\tools\build.ps1). - Stage explicit file paths and use descriptive, atomic commit messages.
- OpenRend is licensed under the GNU General Public License v3.0 (GPL-3.0-or-later).
- Third-party libraries (including FFmpeg, GoogleTest, and community icons) retain their respective open-source licenses. Detailed notices and attributions are available in THIRD-PARTY-NOTICES.md.



