PassthroughForge cuts custom-shaped windows into your VR view - exactly where your real HOTAS, keyboard, knee-board or coffee mug sits. Switch profiles in one click and you're rigged for any cockpit.
Every VR pilot knows the moment: you need to adjust a real-world control mid-flight - a switch on the HOTAS, a key on the keyboard, a glance at the knee-board - but reaching it accurately means lifting the headset and breaking immersion. The result: you either fly blind to your own hardware, or you trade the VR experience for a quick peek at reality. PassthroughForge removes the trade-off.
PassthroughForge sits transparently between your sim and your VR runtime as an OpenXR API layer. You decide where reality breaks through.
The 2D editor lets you draw the exact contours where your VR image should turn transparent. Bezier curves for smooth edges, live mirroring for symmetric layouts, reference images so you can trace right over a cockpit photo.
Build a layout once, save it under any name, load it whenever you fly that bird. Each profile holds the full mask geometry, positions, gaze settings, and group offsets - independent of any in-session recenter you might do later.
When the VR runtime re-anchors your stage origin (Oculus button, Virtual Desktop reset, headset off and on again), the masks would normally drift away. Hit Ctrl+Delete and the entire mask group rigidly rotates around your head until the centroid lines up with your forward direction again - distances and heights preserved.
Load approach charts, mission briefings or system diagrams as PDFs or image series. PassthroughForge turns them into floating VR panels - paged, freely positioned, and immune to chroma-key bleed thanks to a built-in Color Anti-Bleed pass.
Any mask can be attached to your left or right Quest 3 controller - the cutout follows the controller's pose in real time. Beyond handheld use, this opens up an interesting workflow for motion rig owners: strap a controller to your rig frame and the masks track every pitch, roll and yaw the motion platform produces. No more drift between your real cockpit panel and its VR cutout when the rig moves.
Your first mask, step by step:
Click + Add Mask and pick the polygon tool.
Click around the area you want to see (HOTAS, keyboard, controls).
Use sliders or keyboard shortcuts to push the mask onto your real gear.
Save As "DCS Hornet" - next session everything sits exactly right.
The full step-by-step walkthrough: setting up multiple masks on a real cockpit, in real time. ~6 minutes.
Everything you need for fast mask creation, editing, and in-flight
adjustment. Hotkeys are remappable under Settings -> Mask Shortcuts...
For the full list of every action and binding, see the
manual.
Battle-tested features that make the difference.
Tray mode with low-level keyboard hook. Ctrl+F1 toggles mask 1 even when DCS holds focus and blocks every other tool.
Forgot which hotkey does what? One click and your entire keymap appears as a floating 3D panel in front of you.
Masks appear only when you look at them. Cockpit stays clean, info shows up exactly when you need it.
Cockpit symmetric? Draw one mask, get the mirrored copy automatically generated. Bezier handles included.
Async texture upload, cross-process keyed mutex sync, color anti-bleed. No FPS hit, no chroma-key shimmer.
Snap to View modifies a global pivot offset, never your mask data. Iterate as much as you want without fear of corrupting the layout.
PassthroughForge is built like a piece of professional software, not a hobby tool. Here's the architecture - and why we made these choices.
The heart of PassthroughForge is a native OpenXR API layer -
a DLL that the runtime loads into your sim's process. It registers
composition layer quads with the OpenXR compositor, so your masks
render with the same quality and synchronization as your sim's own
frames. No external overlay program, no extra GPU pass.
Why: OpenXR layers are the standardized, performance-sound way to inject content into a VR session. They work with every conformant runtime - Quest, Index, Reverb, Pico - without per-headset hacks.
The desktop editor (where you draw masks) and the OpenXR layer (which
renders them) live in different processes. They talk over a
named shared-memory segment with a Win32 mutex
and an explicit version handshake. Mask transforms stream to the
layer at every frame; updates are picked up immediately.
Why: Decoupling editor from renderer means the editor can run while the sim is starting, can be minimized to tray, can crash and restart - all without disturbing the in-VR view.
Mask textures are uploaded to a
DXGI shared D3D11 texture with KEYEDMUTEX.
The editor process writes RGBA pixels into a staging buffer, copies
to the shared texture under mutex, and the layer process opens the
same texture and copies it into the OpenXR swapchain - also under
mutex.
Why: Without keyed mutex sync, the layer would read the texture mid-write and you'd get top-to-bottom build-up artifacts and chroma-key bleed. This was the single biggest fix in the v2.26 release.
Virtual Desktop's chroma-key has a tolerance ring around the passthrough color. Photo content with pixels close to that color gets partially keyed and looks washed out. PassthroughForge scans every Document Mask pixel and shifts any RGB inside the ring radially outward so VD never confuses image content with passthrough.
Why: A few-percent shift in shadow tones is imperceptible to humans but takes the chroma-key out of the picture. Lets you use any passthrough color without restricting your imagery.
Snap to View doesn't mutate the mask poses - it stores a
pivot point + rotation quaternion that the layer
applies on top of every world-anchored quad. Mask data on disk
stays exactly as you authored it.
Why: Iterating on a layout is dangerous if every recenter writes back to the profile. Separating session state from authored state means undo is always one click away, and profiles stay portable across machines.
When PassthroughForge is in tray mode, a
WH_KEYBOARD_LL hook intercepts keys before any
foreground process - including DCS - sees them. Matched
shortcuts post a custom message to our window and the keystroke
is swallowed.
Why: Many sims use DirectInput / RawInput which bypasses Win32 RegisterHotKey. Without the LL hook your shortcuts would silently fail the moment you put your hands on the controls.
Every feature on this page started as a real-world issue from a real pilot - the gaze flicker, the keyed-mutex fix, the Snap to View math, the controller-tracked overlay for motion rigs. PassthroughForge iterates fast and we listen hard.
Drop a bug report, a feature request, a screenshot of your setup, or a 30-second screen recording of "this isn't working how I want" - we read all of it and most of it ends up in the next build.
PassthroughForge is currently in public testing. Drop your email and we'll send new features, bug fixes and setup tutorials straight to your inbox. No spam, opt-out with one click.
Double opt-in, GDPR-compliant. Unsubscribe with one click anytime.