Open project · Proof of concept · Windows 10 / 11

NV3D Vision Restoration Project

NVIDIA 3D Vision glasses and the original USB IR emitter, working on a modern monitor and graphics card without NVIDIA's discontinued 3D Vision driver.

Personal project, experimental portable release.

Working: side-by-side 3D captured into the app from a game window, a side-by-side video or ReShade, on a 240 Hz OLED monitor.

Not working yet: the in-game hook has never worked. LCD, QLED and Mini-LED displays show ghosting and crosstalk.

v0.3.0 experimental prerelease: Download the portable ZIP and updated README PDF.

Adds Half SBS and Full SBS for VLC movies, stereo images and window capture with correct eye proportions, a movable and resizable windowed 3D preview, and capture from a different monitor than the output. Includes the existing timing, stream-view and BFI improvements. Resident Evil 2 and Metal Gear Solid V still have unresolved failures and are not supported games. Classic NVIDIA stereo rendering is not supplied by this app.

What works today

3D sources

Window capture accepts existing side-by-side or top/bottom stereo. The shared Geo11 adapter receives rendered eye pairs from compatible fixes; AI desktop separately estimates depth from 2D content.

SourceStatus
Window capture of a game rendering side-by-side 3D (proven with Dolphin set to side-by-side)Working
Window capture of any side-by-side 3D videoWorking
Direct VLC 3.x stereo movie playback (SBS or top/bottom)SDR decoding tested; optical validation pending
In-game hookBroken, never worked
Shared Geo11 adapter (x86/x64 DX11)Experimental; renderer/transport tests pass, game failures remain
AI desktop depth conversionAvailable; optical quality still needs validation
Native stereo 3D games, DirectX 9 / 10, VulkanNot started

The shared adapter preserves existing community fixes. Passing renderer and transport tests does not establish compatibility with every game.

Displays

The glasses close each lens while the other eye's image is on screen. It only looks clean if the screen has fully switched images before the lens opens, so your display's pixel response time decides whether it works.

DisplayStatusNotes
OLED at 240 HzProvenClean full-screen 3D through the glasses with software black frame insertion, SDR and HDR.
OLED at 120 HzUser confirmedRP2040 operation confirmed. At 240 Hz, enable BFI for the confirmed cadence.
OLED at 100 or 144 HzNot provenSeparate optical calibration required.
LCD, QLED, Mini-LEDNot working yetSlower pixel response leaves part of the other eye's image on screen: ghosting and crosstalk. Being worked on.

Graphics cards

The app uses standard Windows display APIs (Direct3D 11 / DXGI) instead of NVIDIA's stereo driver, so in theory any graphics card can drive it, not only NVIDIA ones. Game trials used an RTX 5070 Ti; output-only tests also pass on AMD Radeon. Other GPU families still need game validation.

What it does

Original emitter, no NVIDIA stereo driver

Talks to the 3D Vision USB IR emitter over WinUSB and uploads its firmware itself. Your GPU driver stays untouched.

Frame-sequential output

Left / Black / Right / Black with software black frame insertion, SDR and HDR.

Side-by-side capture

Captures a game window or video player showing side-by-side or top/bottom 3D.

Live timing controls

Phase, shutter width, phase sweep and eye swap while you watch through the glasses. Saved per display.

2D stream view

Record or share a steady single-eye SDR picture while the glasses continue receiving stereo.

RP2040 DIY emitter

Scheduled shutter timing, included open-source firmware, and USB clock diagnostics. OLED 240 Hz BFI reconfirmed.

Calibration aids

Built-in 3D test scene and per-eye test patterns.

Diagnostics

Vblank jitter, present timing and emitter command timing, plus self tests that need no hardware.

What you need

Install and set up the emitter

Download the portable release, extract the entire ZIP, and run Start Vision Restoration.cmd. NVIDIA firmware and AI model weights are separate downloads. Building from source is optional.

  1. Optional: build the app from source

    git clone <repository URL>.git
    cd nv3d-vision-restoration
    .\tools\Get-Dependencies.ps1
    .\build.ps1

    Get-Dependencies.ps1 downloads libusb, Dear ImGui, AI runtime components and the ReShade headers from their official releases. The app is built to build\bin\Release\VisionRestoration.exe.

  2. Get the original NVIDIA emitter firmware

    RP2040 owners: follow the DIY emitter guide instead of these NVIDIA firmware/driver steps.

    The emitter has no permanent firmware. The PC uploads it every time it's plugged in, and that firmware lives inside NVIDIA's driver file nvstusb.sys.

    • Download NVIDIA's standalone 3D Vision USB controller package 390.41 directly. This is not a graphics driver; no Quadro GPU is needed to extract the firmware.
    • Don't run NVIDIA's installer. In the portable release, run Prepare NVIDIA Firmware.cmd and select the downloaded EXE. Its included extractor prepares emitter.fw automatically. Source builders can extract nvstusb*.sys from NV3DVisionUSB.Driver with 7-Zip and use the command below.
    .\build\bin\Release\vision_firmware.exe C:\path\to\nvstusb.sys .\build\bin\Release\emitter.fw
  3. Give the emitter the WinUSB driver

    The emitter appears to Windows as two different USB devices: one before its firmware is loaded and one after. The first number (0955, NVIDIA) stays the same; the second number changes. Each needs WinUSB one time per PC.

    Emitter stateUSB ID
    Just plugged in, no firmware yet0955 7003
    Firmware running (after the app uploads it)0955 0007
    • Plug the emitter straight into the PC. Device Manager lists it as NVIDIA stereo controller with no driver.
    • Run Zadig, choose Options > List All Devices, select the NVIDIA device with USB ID 0955 7003, pick WinUSB and click Install Driver.
    • After the app uploads the firmware, the emitter restarts with the other ID, 0955 0007. If the app can't open it, run Zadig again for 0955 0007, install WinUSB, and press Refresh USB.
    • After both are installed, plugging the emitter in again needs no driver step: the app re-uploads the firmware by itself.
  4. Run and calibrate

    • Set the monitor to 240 Hz and run Launch.cmd.
    • Pick your display and refresh rate, click Match output rate, then Start 3D preview. The glasses start shuttering.
    • Turn on Software black frame insertion and use Maximize brightness.
    • Adjust Phase and Shutter until each eye sees only its own image.
  5. Show a game or video in 3D

    • Set the game or video player to output side-by-side 3D (in Dolphin: Graphics > Stereoscopic 3D Mode = Side-by-Side).
    • In Input/Games, choose Capture window, select its window and the matching stereo layout. Existing Geo11 fixes use the separate Connect game / Prepare game workflow.

Help wanted

This is a personal project built for one setup, published to show that the 3D Vision USB emitter can be unlocked for other monitors and newer graphics cards. Where it goes next depends on who jumps in. The most useful areas: LCD/QLED crosstalk, a general in-game hook, and testing on other GPUs and displays.