Help
Keyboard shortcuts, controls, formats, and settings.
Table of Contents
Keyboard Shortcuts
General
Files
Display
Audio & Subtitles
Playback
Zoom
Picture
Splat Scenes
Format Memory
Shift opens a folder instead of a file. Holding Shift re-labels the entry before you click it: Open Files on the start screen becomes Open Folder, and Files… in the source menu at the top becomes Folder…. Only that one entry changes - Screen, Device and Stream stay as they are. Ctrl+F does the same thing without the mouse. On Windows the folder dialog also carries a checkbox for taking everything in the subfolders along.
A splat scene borrows the keys it has no use for. While one is open, W A S D, E, Q, the arrow keys and R steer the camera instead of cycling subtitles, showing the depth map, seeking or setting the volume - a scene has no soundtrack, no timeline and no depth map to show. Every other kind of file keeps its usual keys.
R snaps rather than adds. Each press lands on the next quarter-turn boundary, so a fine angle set on a 360° view's rotation slider comes back onto the grid instead of drifting off it - four presses always walk you back to upright.
Delete has to be held. Playback pauses and a ring fills on a card that names the file; once it closes, the file goes and the next one plays. A tap deletes nothing, and letting go early keeps the file and plays on. On Windows, a file on a drive without a Recycle Bin, such as a network share, is deleted outright once the ring completes - there is no further confirmation. On Linux, a file that cannot go to the Trash stays where it is.
Mouse & Pointer Interactions
These interactions work on the main picture area (not on the UI controls):
Navigation
Convergence
What middle-click does not reset. It clears zoom, pan, the 360° camera direction, the Depth Preview 3D orbit, convergence, 3D intensity, and depth gamma - but not how the recording itself has been turned or leveled. That is a property of the file rather than of your view, so it stays put until you press Ctrl+R or use the reset inside the rotation popup.
In the Depth Preview 3D visualization, left drag orbits the depth surface instead of panning the picture.
In a splat scene, left drag turns your head and holding the middle button walks the view forward and back, or turns the horizon sideways - the whole scene can be explored without touching the keyboard. Letting go mid-drag carries the movement on and glides it to a stop, in a scene and in a 360° view alike. A middle-click or a right double-click puts you back where the scene opened.
While you drag a splat scene or a 360° view, the pointer is held in place and hidden, so the turn keeps going as long as you keep moving your hand instead of stopping at the edge of the screen. The cursor comes back where the drag started.
Gamepad
Any controller your system recognizes works out of the box - Xbox, PlayStation, Switch Pro, and the usual third-party pads. There is nothing to configure and nothing to map. The pad only steers Oku3D while Oku3D is the window in front, so a game you are playing with the same controller keeps it to itself - including when Oku3D sits on top of that game as a click-through overlay.
Buttons are named by where they sit, not by what is printed on them: the lower button is A on an Xbox pad, Cross on a PlayStation pad and B on a Nintendo pad. They all do the same thing here.
Playback
View & 3D
A splat scene is flown, not played. There the left stick walks and the right stick looks, the shoulder buttons rise and sink, the triggers turn the horizon and the left stick click is the run button. The lower button puts you back where the scene opened, the left button swaps flying for orbiting, and the right stick click puts the horizon back level. Going back with the right button still works the same way it does everywhere else.
The bindings follow what Kodi, Plex and the Windows guidelines have settled on, with two deliberate exceptions. Those players put the volume on a stick; here the right stick turns the view, which is the reason to reach for a controller on a 360° recording in the first place, so the volume sits on the D-pad where it matches the arrow keys. And where they put rewind on the shoulder buttons, the triggers already do that with a rate you can feel, so the shoulders step through files instead.
The settings panel opens from the pad as well, but its rows, the menus and the dropdowns are still set with mouse or keyboard - while one is open, the pad keeps steering playback, and the right button closes it. The one list the pad steps through is the screen-capture source picker on Windows: up and down move the selection, the lower button picks. Two pads connected at once is no problem - whichever one you touch last is the one Oku3D listens to.
Screen Capture
Open Screen Capture from the start screen to pick another application's window or your full desktop and watch it in 3D in real time. Useful for games, browser videos, and any 2D source that isn't a file Oku3D can open directly.
Click-Through Overlay
Press Ctrl + Shift + F11 to toggle click-through overlay mode. Oku3D's window stays visible on top but becomes transparent to mouse and keyboard input - your clicks and typing pass through to the captured application underneath. This lets you play a game while watching it in 3D on a single monitor. Press the hotkey again to disable. The overlay keeps Oku3D's taskbar icon visible - clicking it (or Alt+Tab back) also switches the overlay off.
Both this shortcut and the copy-diagnostics shortcut can be reassigned to any key combination under Settings > General > Hotkeys.
Not on Linux. It needs two things, and no desktop there offers both: putting a window above everything else, which GNOME does not implement, and a key combination that works while another application has focus, which GNOME and KDE allow and the others do not. More on where the two builds differ.
Choosing the Capture Source
On Linux your desktop shows its own picker and asks permission every time, which is the only way any application may capture there. The paragraph below describes the Windows picker. More on where the two builds differ.
Starting Screen Capture opens Oku3D's own in-app source picker with a live preview of every available screen and window - so you can see what you're about to capture before committing, and it stays usable on a glasses-free 3D display or inside a VR headset. Pick either an entire display or a single application window. The picker can also follow the active window - turn that mode on and Oku3D switches to capture whichever window you bring to the foreground, handy for hopping between apps without reopening the picker each time. The right choice depends on the application you want to capture:
- For normal Windows applications (browsers, video players, productivity apps - anything that uses the system mouse cursor): capture the entire desktop, or maximize the application's window to fullscreen. Otherwise the cursor you see on screen will not line up with the captured content inside Oku3D, because Oku3D centers and stretches the captured window to fill its viewport while the real cursor stays at its true screen position.
- For games or applications that draw their own cursor (or hide the system cursor entirely): capturing a single application window works fine. The application renders its own cursor at the correct on-screen position within its own viewport, so it scales together with the captured content.
Crop to Trim Borders
Press C and drag a box around the part of the picture to keep. This is handy when a captured window - or a downloaded 3D video - carries black borders that push the two eye views out of alignment; cropping down to the actual picture lets the stereo line up instead of showing a doubled image. Crop works on any video or image too, not just captures.
For a black band sitting between the two eye views - which 3D recorded off a player or console usually carries - reach for Image Gap in the view menu instead: it takes the band out without cropping anything off the picture. A recording that still carries the untouched signal from a player or console opens with the band already gone.
Control Your PC From VR
While watching a captured screen or window inside a VR headset, aim a controller at the picture to move the desktop mouse, and pull the trigger to click - enough to skip an ad or pick the next video without taking the headset off. Hold the trigger to drag, hold the grip while pulling the trigger for a right-click, and push either thumbstick to scroll. A controller button hides Oku3D's own controls when they cover the part of the window you're trying to reach.
Not on Linux. An application there may not put a click into another application on its own. Watching a captured screen in the headset works; only clicking back into it does not.
Live Streams
Use the Open Stream entry on the start screen to play network streams in 3D. Paste a URL into the dialog, drop a .m3u / .m3u8 playlist file onto the window, or pass a URL on the command line - the ten most recent streams are remembered for one-click reopen.
Supported protocols:
- HLS (
.m3u8over HTTP/HTTPS) - the standard live format on the web. - RTMP / RTMPS - the classic ingest format still used by many encoders.
- RTSP / RTSPS - common on IP cameras and NVRs.
- DASH (
.mpdover HTTP/HTTPS). - MPEG-TS over UDP / TCP / SRT - typical for broadcast and pro contribution feeds.
A red LIVE badge appears on the player bar while a live stream is playing - click it to jump back to the current live edge after pausing or scrubbing. While paused the badge dims to an outline.
Live streams default to Motion-Sync 3D (Settings > Depth > AI) so depth edges stay aligned with the picture even when network delivery jitters.
Open from browser
For sites that embed an HLS, DASH, or progressive-MP4 stream in a regular <video> tag, the Open in Oku3D bookmarklet lets you send the current page's stream to Oku3D with one click - grab it from the Bookmarklets page and drag it to your bookmarks bar. The browser sends the request via the oku3d:// protocol handler, including the page Referer and User-Agent so hotlink-protected streams still load. DRM-protected services (Netflix, Disney+, ...) do not work this way; use screen capture for those.
Blu-ray Discs
Open a Blu-ray ISO image or an unpacked BDMV folder like any other file - Oku3D selects the main feature automatically and plays it with its original audio and subtitle tracks. A disc with several titles - a boxset's episodes or a film's bonus features - lists them in the top bar to pick from, and plays them in sequence. Short discs, sample discs, and 3D-only discs that other players reject open fine.
3D Blu-rays
3D Blu-rays play in real stereoscopic 3D: Oku3D decodes both MVC eye views natively (the frame-packed H.264 MVC format 3D Blu-rays use), so no conversion, remuxing, or extra codec is needed. The format menu shows MVC and the depth AI stays off - the disc's own stereo is shown as mastered. Decoding runs across all your CPU cores, so playback stays smooth even on slower PCs.
MKV files that keep a 3D Blu-ray's MVC video track also play in real 3D - including remuxes named .mk3d - as do raw M2TS / MTS / TS streams that carry the MVC track, and the MP4 a 3D camcorder writes with both eyes in it. Other players show only one eye's picture for these files; Oku3D detects the embedded second view and plays the pair.
A single .ssif file - the stereoscopic stream a 3D Blu-ray keeps its second eye in - plays in 3D on its own as well. One copied out of its disc folder has lost the disc's record of which view is which, so if depth looks inside-out, flip Eye Order in the view menu.
A disc's alternate audio tracks - other languages or commentary - and its subtitle tracks are listed in the top bar to switch between during playback.
Subtitles sit where the disc intends them. A 3D Blu-ray carries its own depth for each subtitle, so the captions move with the scene instead of lying flat on it - reaching the full depth the disc asks for, as on a Blu-ray player, in a VR headset too. When a disc assigns them the wrong plane, Depth plane under Settings > Subtitles picks another.
Limitations
- No AACS decryption. Commercial discs are AACS-encrypted, and Oku3D ships no decryption keys or AACS library. Discs and ISOs must already be unencrypted; a copy-protected disc shows a notice and does not play.
- No disc menus. Oku3D plays titles directly - picking from the top-bar title list on multi-title discs - instead of showing the disc's interactive menu system.
Gaussian Splats
A Gaussian splat scene is a place - a room, a statue, a street corner - stored as millions of tiny colored specks rather than as a picture. Most are scans captured from photos or video, and Oku3D can also build one from a single photo. Oku3D opens one like any other file, and instead of watching it you move through it: the depth is real geometry, so it holds up from wherever you stand.
Drop the file on the window, open it with Ctrl + O, or pick Gaussian splat in the file dialog's format list to see only these.
Formats
| Format | Where it comes from |
|---|---|
| PLY | What the original research code and most training tools write - the plain interchange file. |
| SPLAT, KSPLAT, SPZ | The compact formats the web viewers settled on, a fraction of a PLY's size. |
| SOG | PlayCanvas / SuperSplat, as a single file or as the folder of pieces SuperSplat writes so a browser can load one bit at a time. Point Oku3D at the folder and it opens as the whole scene. |
| SPX | The streaming format of the same family. |
| GLB, USD, USDA, USDC, USDZ | Scenes that carry their splats inside a standard 3D container - what Apple's and the industry's asset pipelines exchange. |
| RAD | World Labs' streaming container, which brings its own levels of detail. |
| LICHT | A LichtFeld Studio project file - the whole training session, opened at its latest saved state. |
A large scene builds up in front of you while it is still loading, so you can look around before it is finished. One too large for your graphics card opens at a coarser level of detail where the file offers one - a split SuperSplat folder or a RAD file - and otherwise opens with its least visible specks left out, rather than refusing to open at all.
A scene that brings no camera position of its own opens where it looks sharp - inside a walk-through capture rather than looking in from outside, in front of an object rather than inside it. While you move, a very demanding scene lowers its render resolution to keep the motion steady, and is back at full sharpness shortly after you stop.
Moving through a scene
Two ways to get around, switched with a button in the bottom bar: flying through the scene, or circling whatever is in front of you. Flying suits a room you want to walk into; circling suits an object you want to look all the way around.
| Control | What it does |
|---|---|
| W A S D | Walk forward, left, back and right. |
| E Q | Rise and sink. |
| Arrow keys | Look around without moving. |
| Left drag | Turn your head, the way the mouse turns a 360° view. Let go while still moving and the turn glides to a stop. |
| Middle button held | Walk the view forward and back, or turn the horizon sideways - the whole scene without the keyboard. |
| Shift / Alt | Hold to cross the scene quickly, or to inch through it. |
| R / Shift + R | Turn the horizon. A tap nudges it a degree, holding sweeps it steadily - a scene has no upright of its own, so this is how a tilted one is put straight. |
| Middle-click or right double-click | Back to the framing the scene opened in. |
Game controller
Plug in a gamepad and it steers the scene straight away - nothing to install, nothing to configure. Xbox, PlayStation and Switch Pro controllers all land on the same layout; the Gamepad section names the buttons by where they sit.
- Left stick moves, right stick looks.
- Shoulder buttons rise and sink.
- Triggers turn the horizon, as slowly or as quickly as you pull them.
- The left button (X on an Xbox pad, Square on a PlayStation pad) switches between flying and circling, the lower button (A / Cross) goes back to the opening framing, and the right button leaves fullscreen as it does everywhere else.
- Press the left stick in to hurry, the right stick in to put the horizon back level.
In a headset and on a 3D display
In VR a scene is walked the way a gamepad walks it: one stick moves, the other looks, and the grips rise and sink.
On a glasses-free 3D display, leaning shifts your viewpoint inside the scene, so you can look around something in the foreground simply by moving your head. A button in the bottom bar holds the view still if you would rather it did not follow you - the display keeps tracking your eyes for the 3D itself either way.
Pop-out. A scene's depth is real geometry rather than an estimate, so the slider next to it in the bottom bar decides how far the nearest parts come towards you before they flatten off. Reads as a multiple, and a comfortable setting depends on your display the same way the depth slider does.
A scene from a photo
Any photo can become a scene you step into. The box button at the bottom left - Turn photo into Gaussian splatting scene - rebuilds the photo in 3D: move, and what stood behind the foreground comes into view. The scene opens in the photo's own frame, circling its subject, so dragging swings the view around it. The same button takes you back to the photo.
- Which photos: any flat photo, and side-by-side or top-bottom stereo photos, which are built from their left eye. Not videos, and not 360° or fisheye pictures. The depth takes its scale from the focal length the camera recorded.
- The model: Apple SHARP, about 1.2 GB, downloaded once. Apple publishes it for non-commercial research use only - Oku3D shows the license before the download, and downloading accepts it.
- On your machine: the scene is built on your own graphics card, like the depth AI. The photo is not uploaded anywhere.
- Graphics memory: a scene needs about 7 GB. On a card with less free, a notice says how much it needs before it starts, and Build anyway goes ahead - it can then be very slow or stop with an error.
- Time: a few seconds on a current graphics card, longer on the very first run. Each step shows its progress, and Cancel stops it.
- Keeping it: the capture panel below saves the scene as PLY, which keeps the photo's framing, or as a smaller .splat for other splat viewers.
Taking a photo of a scene
The camera button at the bottom left opens the capture panel, which photographs any splat scene the way a real camera would.
| Control | What it does |
|---|---|
| Focus plane | The distance that stays sharp. Click its pointer button, then the spot that should be sharp - while you aim, the scene lights up where the focus would land. |
| Depth of field | How softly everything in front of and behind the focus falls away, like a camera's aperture. It stays on while you move, even through a very large scene. |
| Exposure | Brighter or darker, up to three stops either way. |
| Color temperature | Warmer or cooler. The button beside it sets the white balance automatically. |
| Aspect Ratio (view menu) | Frames the scene in 16:9, 3:2, square, portrait and more - or in the original photo's frame for a scene built from one. A saved photo keeps exactly that frame. |
Save asks for the file first, then draws the picture behind a progress bar you can stop, while the window stays usable.
- Flat or all around: a flat photo, or a stereo VR180 or 360° panorama with the depth correct in every direction you turn.
- Layout: side-by-side or top-bottom, anaglyph, a single eye, separate left and right files, or, for a flat photo, RGB-D - color plus a depth map measured from the scene itself rather than estimated.
- File type: PNG (8 or 16 bit), JPEG, JPS, PNS or MPO.
- Size: up to eight times the on-screen size. The picture is rendered again at that size, so it gains real detail instead of enlarging what was on screen.
Focus, depth of field, exposure and color temperature stay with the scene they were set on, and survive a restart when Save per image is switched on.
3D Parameters
Depth / 3D Intensity (D slider)
How strong the 3D effect is. The right value depends on your display - a VR headset needs much less than a monitor because the image fills your whole field of view.
| Output | Comfortable | Strong | Too strong |
|---|---|---|---|
| VR headset (OpenXR or SBS to HMD) | 0.4 - 0.5% | 1% | 2 - 3% |
| Glasses-free 3D (Samsung Odyssey 3D, Acer SpatialLabs) | 1% | 2% | 3% (ghosting) |
The 1% default is tuned for glasses-free 3D displays. In a VR headset, drop it to around 0.5% - the wide field of view makes the 3D effect feel much stronger than the same value would on a monitor.
Depth Mute. The button next to the depth slider instantly flattens the 3D effect and pauses the depth AI to save GPU - useful for a quick 2D glance or to quiet the fans. Click it again to restore the previous depth strength.
Convergence (C slider)
Shifts where the "screen plane" sits in the 3D scene (±20% of viewport width):
- 0 (default) - Neutral. Content at screen depth.
- Positive - Content pops out of the screen.
- Negative - Content sits behind the screen.
Also adjustable via right-click drag. Double-right-click to reset.
Depth Gamma (Gamma Remap filter)
Applies a power curve to redistribute depth:
- < 1.0 - More foreground pop, flatter background. Good for portraits.
- 1.0 (default) - Linear, no adjustment.
- > 1.0 - More background depth. Good for landscapes.
Quick presets:
Convergence
The Convergence slider on the bottom bar shifts the 3D scene forward or back. Click the slider's value to open its popup; drag the bar inside the popup to adjust. Most users find a value that feels right for their display and want every new file to open there - that's what the Pin button is for.
Pin button
The pin icon in the convergence slider popup stores the current value as the default applied to every new file. Workflow:
- Open a 3D image or video.
- Adjust the convergence slider until the 3D feels comfortable on your display.
- Click the pin icon in the slider popup.
From now on, every file you open starts at that value. If you later find a better value, adjust the slider and pin it again - the new value replaces the old one. The pinned value is stored across sessions, so you only set it up once per display.
To clear the pin, drag the slider back to 0% and pin again. Reset shortcuts (middle-click on the picture for a full reset, or right-click double-click for convergence only) only affect the current file - they do not change the pinned value.
Some 3D photo formats (LIF and MPO from compatible cameras) ship a convergence value as metadata. That value wins against the pinned default on the first open of such a file, so a camera's intended framing shows up correctly.
Save per image (optional)
If you have a photo collection with widely varying shooting distances and want each image to remember its own convergence value across sessions, turn this on under Settings > General > Per-File Settings > Save per image. Off by default - the pinned default covers most workflows without writing anything to your image files.
| Mode | What it does |
|---|---|
| Off (default) | No per-image saving. Existing values from earlier sessions are still read when you open an image; only new adjustments aren't written. Files stay completely untouched. |
| Hidden NTFS stream (Windows) Hidden file attribute (Linux) | Stores the value invisibly alongside the file - no second file appears in your folder. Windows uses an NTFS alternate data stream, Linux an extended attribute; the entry is named for whichever system you are on. See the caveats below before picking this. |
| Portable .xmp sidecar | Writes a small .xmp file next to each modified image. Survives copying to any drive type if you take both files along. |
| Filename suffix | Unlike the three modes above, this does not save the convergence value. Instead, choosing a 3D format renames the file to tag that format in its name (for example movie_HSBS.jpg), so other players - Kodi, Plex, or the Leia LumePad 2 - recognize the format on their own. Pick the naming scheme with the Suffix style dropdown right below it. |
What the hidden mode costs. It writes into a side channel of the filesystem rather than into the picture, so the value travels only as far as the filesystem and the copying tool carry it. On Windows that side channel is a feature called Alternate Data Streams, and its quirks are these:
- Last-modified timestamp updates. Each time Oku3D saves a per-image value, Windows updates the file's "Last Modified" time even though the visible image is byte-identical. Software that sorts by date (Adobe Lightroom date import, file-find by date,
git diffon a checked-in folder) sees the file as recently changed. - Lost when copying off NTFS. Any copy to FAT / exFAT (USB sticks, SD cards), SMB shares without ADS support, email attachments, or ZIP archives strips the saved values silently. The visible image is fine - just the slider value is gone.
- Cloud sync silently drops the stream. OneDrive, Dropbox, and Google Drive report the file as "synced" but don't upload the stream. The trap is that nothing looks wrong - the cloud copy is missing the values without warning. If you back up via cloud, use XMP sidecar.
- Most backup tools skip ADS by default. Robocopy without
/COPYALL, plainxcopy, and many cloud-backup clients (Backblaze, Arq with default settings) leave the stream behind. Your restored files may not carry the per-image values. - Antivirus heuristics can flag ADS writes. The
:in the stream path is also a classic malware-hiding pattern, so third-party AVs (Avast, Bitdefender, Kaspersky, F-Secure) occasionally treat the writes as suspicious. Windows Defender doesn't. - Archive-master workflows. If your photo archive treats master files as never-modified originals (RAW + verifiable hashes, immutable storage), any invisible side-channel write violates that policy. Pick Off for those volumes.
Linux's extended attributes are a different mechanism with the same shape of limitation: a copy onto a filesystem that does not carry them, or made with a tool that does not ask for them, leaves the value behind without saying so.
The portable XMP sidecar mode avoids all of these at the cost of one visible extra file per modified image. Switching between these modes never loses existing data: both locations are checked on every file open regardless of which mode is currently selected.
Suffix style applies only to the "Filename suffix" mode and picks which naming convention is written: Kodi / Plex (_SBS, _HSBS, _TAB, _HTAB) for the widest compatibility with media-server players, or Leia LumePad 2 (_2x1, _half_2x1, _1x2, _half_1x2) to match the LeiaPlayer workflow. Because this mode rewrites file names rather than storing a slider value, it does not take part in the convergence read-back described above.
Stereo Formats
The Format dropdown at the bottom left says what the file is - not how it is shown, which is the output format in Settings:
| Format | Description | When to use |
|---|---|---|
| Original | Shows the source frame full-frame as-is - no stereo splitting and no depth AI runs. | Watch content flat in 2D, or recover a flat file that auto-detection wrongly treats as side-by-side (you see a doubled image). |
| 2D → 3D | AI depth estimation converts 2D content to stereoscopic 3D in real-time. | Any video or photo you want to watch in 3D. |
| 3D | Only offered for a photo that carries its own depth map - an iPhone photo shot with depth, a Leia LIF, an MPO, or a photo.depth.png beside the file. Uses the stored depth instead of running the AI. | The default for such photos. Switch the same dropdown to 2D → 3D to compare the camera's depth against Oku3D's own estimate - your choice carries to the next photo in the session. |
| Half SBS | Both eye views side by side in one frame, each at half resolution. | Most common 3D format. Standard for 3D downloads. |
| Full SBS | Both eye views side by side, each at full source resolution. | Higher quality SBS content. |
| Half TB | Both eye views stacked vertically in one frame, each at half resolution. | Standard Top-Bottom 3D content. |
| Full TB | Both eye views stacked vertically, each at full source resolution. | Higher quality Top-Bottom content. |
| RGB-D (Color + Depth) | The color picture in the left half of the frame and a grayscale depth map in the right, each at half width. Not a stereo pair - the second half is a depth map, and the two eyes are built from it. | What AI 2D-to-3D converters export for glasses-free displays. Oku3D recognizes it from the picture itself or from an _rgbd in the name; pick it by hand when a converter left neither. |
| Row Interleaved | The two eye views on alternating lines of the same frame. | 3D films from the DVD, LaserDisc and VHS era, which stored their stereo this way. Such a rip carries no tag of its own, so this is the one that has to be picked. |
Files that already carry two camera views never reach this dropdown as a decision. A spatial video from an iPhone or a recent Galaxy is MV-HEVC: both views decode at full resolution, with the eye order taken from the file rather than guessed. A 3D Blu-ray, its remux, or a 3D camcorder recording is MVC, and a file that keeps its left and right eye as two separate video tracks plays in 3D as well, where other players show one eye flat. For these the dropdown names what the file is - MVC, MV-HEVC or Two Tracks - beside Original and 2D → 3D. A spatial photo or Galaxy 3D photo - an HEIC holding a tagged stereo pair - opens in 3D on its own as well. Which phones and cameras shoot 3D lists what writes these files.
Keep 2D videos flat. By default Oku3D converts plain 2D videos to 3D. To leave them untouched, turn off Settings > General > Open 2D videos in 3D - detected 3D and native-stereo sources still play in 3D; only plain 2D content stays flat. You can still switch an individual video to 2D → 3D from the Format dropdown.
View menu
The View button at the bottom left holds everything that belongs to the file you are watching, rather than to your screen or your preferences. Whatever you change here applies to the open file only - the next one starts clean, so correcting one badly recorded clip no longer follows you into the next film.
| Setting | When to use |
|---|---|
| Projection | How the picture wraps around you: Flat, an equirectangular 180° / 190° / 220° / 360°, or one of the fisheye entries for footage that still holds the round lens image. Detected automatically for most files. |
| Eye Order | The file has left and right the wrong way round - depth looks inside-out and objects sit behind what they should be in front of. The entries name which eye comes first rather than reading as an unlabeled on and off, and the automatic one says what the file itself claims. |
| Image Gap | 3D recorded off a player, console, or capture box often carries a black band between its two pictures, which pushes the eyes out of line. Given in pixels, so the band's exact width can be named instead of estimated. |
| Gap Offset | The recorder left that band slightly off center. Shift it until clearing the band stops pushing the two pictures out of line. |
| Vertical Alignment | The two pictures sit at different heights - tiring to watch, because the eyes cannot merge them. Shift them back into line. |
| Invert Depth | The file's depth map runs the wrong way round, so near and far are swapped. Applies to anything whose 3D comes from a depth map - an RGB-D file, a sidecar map, a photo's own. |
| Subtitle Offset | Subtitles run ahead of or behind the picture on this file. |
| Aspect Ratio | Only in a splat scene: frames it in 16:9, 3:2, square, portrait and more - or in its original photo's frame - for a photo you save from it. |
360°, VR180, and fisheye
Drag the picture to look around - it follows the mouse, the way other 360° players work. Under a sphere projection the Format dropdown drops to SBS and TB, since half- and full-width mean the same thing once each eye gets its own hemisphere.
Turning the recording. The rotate control in the bottom bar behaves differently depending on what is playing:
| Source | Rotate control |
|---|---|
| Flat picture | A button that turns a quarter per click. Hold Shift and its arrow flips, so the click goes counter-clockwise; Ctrl+click puts it back upright. Only four angles are ever right for a flat frame, so a click that walks them beats a slider. |
| 360° / VR180 / fisheye | A slider popup instead - drag to any angle, with a reset button beside it. A sphere has no frame edges to preserve, so every angle in between is a legal correction. |
R and Shift+R drive the same value from the keyboard on either kind of source, and on a sphere they turn whatever you are currently looking at. Ctrl+R resets - on a sphere it clears the horizon correction below along with the turn.
Straighten the horizon. When a camera was tilted and Oku3D cannot correct it on its own, hold Shift and sweep the mouse in a circle around the middle of the picture, like turning a wheel - the recording spins with your hand. Start the sweep away from the center; close in, the angle is too small to read and nothing moves.
Because a tilt is only half-described from one direction, correct it once, look roughly 90° further round, and correct it again - it then stays level wherever you look. The correction belongs to the file, not to your view, so Ctrl+R or the rotation popup's reset is what clears it; middle-click does not.
360° photos and videos from Insta360 cameras open level already, however the camera was held. A recording the camera split into two files plays as one, and a clip whose second lens file is missing plays as the half sphere the remaining one covers.
Output Formats
The Output Format dropdown in Settings selects how the stereo image is rendered to your display. Separate settings for fullscreen and windowed mode.
| Format | Description | Target display |
|---|---|---|
| Leia SR Weaving | Best quality for Leia SR displays. Uses the display's built-in head-tracking and switches it to 3D mode automatically. | Samsung Odyssey 3D G9, Acer SpatialLabs, and other Leia SR-based glasses-free monitors. |
| SBS | Half-width side-by-side: each eye is squeezed into one half of the frame, and the display stretches it back to full width. | Any SBS-capable display, generic fallback for lenticular monitors. |
| SBS (Full) | Full-width side-by-side: each eye is shown at native resolution with no squeezing, so the picture fills each eye instead of leaving black bars on the sides. | 3D glasses with a dedicated side-by-side mode - XREAL Air 3D mode, XREAL One Pro Ultra-Wide, and similar 3840x1080 panels. |
| Frame Packing | Each eye at full resolution over HDMI, the signal a 3D Blu-ray player sends. Fullscreen only: going fullscreen switches the display into its 3D mode, and leaving switches it back. See setup below. | 3D projectors and TVs with an HDMI 3D input - see the note on which ones follow. |
| Top-Bottom | Left eye on top, right eye on bottom. | HDMI 1.4a 3D TVs, some autostereoscopic displays. |
| Anaglyph | Color-separated stereo with 14 color modes (Red-Cyan, Green-Magenta, Amber-Blue, and more). | Any screen with matching anaglyph glasses. |
| Interleaved | Row, column, or checkerboard interleaving. Requires 1:1 pixel mapping (fullscreen, no display scaling). | Passive polarized 3D TVs (LG Cinema 3D), passive 3D monitors. |
| VR Headset (OpenXR) | Renders the video on a virtual cinema screen inside a VR headset. Screen curvature adjustable from flat to IMAX-style wraparound. Subtitles float in front and follow your gaze with a soft lag. The desktop keeps its own independent output, so a glasses-free 3D display can run alongside the headset. Taking the headset off does not end VR - put it back on and you are where you left off. | Meta Quest, Valve Index, HTC Vive, and other OpenXR runtimes. |
| Mono | Displays only the left or right eye at full resolution. The Depth and Convergence sliders leave the bottom bar while it is selected, since neither changes a single-eye picture. | 2D preview, screenshots, debugging. |
Head Tracking (Settings > Display > Advanced) is on by default for Leia SR Weaving: the display follows the viewer's eyes so the 3D looks right wherever they sit. Turn it off to lock the 3D to the center of the screen instead - useful when filming or screen-recording the display head-on, where live tracking would otherwise warp the picture for the camera, and when two people watch together, since tracking can only lock onto one of them at a time.
HDR needs nothing set up in Oku3D. With HDR switched on in Windows, an HDR10 or HLG film, or an HDR photo, reaches the brightness it was made for - a sunlit sky or a lamp in frame keeps its punch, measured against what the screen the window sits on can produce. Turning Windows HDR on or off, or moving its SDR content brightness slider, reaches the picture while it plays. The VR headset and Leia SR Weaving stay at ordinary brightness, since neither accepts an HDR signal, and Linux has no HDR output.
Display Swaps the Eyes (Settings > Display) is for glasses or panels that hand the two eyes over the wrong way round - a property of your hardware, so it holds for everything you play. A single mislabeled recording is a different problem: fix that one from Eye Order in the view menu, which applies to that file alone and does not flip every other one.
Duplicate UI for 3D duplicates the player controls into both eye views (SBS and Top-Bottom modes). Toggle with the V key.
Setting the fullscreen output to None removes the fullscreen button and keys entirely - for people who only ever watch in a VR headset and never need a fullscreen display output.
Fullscreen Monitor (Settings > Display > Fullscreen) names the screen fullscreen opens on, so a projector or a second display no longer needs the window dragged over there first. A monitor that is currently switched off or unplugged keeps its slot in the list and is marked as not connected, rather than quietly reverting to another screen. The row does not apply to Leia SR Weaving, which addresses its own certified panel.
Allow multiple instances (Settings > General) lets several Oku3D windows run side by side - a separate slideshow or film on each 3D monitor, for example. It is off by default: a file opened while Oku3D is running then goes to the window already open, and several files at once become its playlist.
Screen Distance, Screen Width, Vertical Position and Screen Curvature (Settings > Display > VR Headset) place the cinema screen in the headset. Vertical Position raises or lowers it, which is what a screen that sits too high or too low for how you are seated needs. Where subtitles go is a separate choice - see Subtitles.
VR Headset controls: The primary controller carries the laser pointer, trigger-tap play/pause, and seek-forward - you can pick which hand is primary in Settings, so left-handed users can drive playback from the left controller. The other controller handles seek-back, recenter, and volume (push its thumbstick up or down); menu and exit sit on fixed controller buttons. To adjust an on-screen control, point at it with the primary controller and push that thumbstick up or down - depth, convergence, a settings slider, or the playback bar to seek. On VR180/360 and fisheye sources the primary thumbstick turns the view instead - hold the grip button to turn, push up or down without grip to zoom; the picture follows the stick, as it follows the mouse on the desktop. A held grip claims the stick for the view even while Oku3D's own controls are on screen, so the stick never ends up moving a slider you were not aiming at. When no controller is handy, a VR Headset setting lets the desktop mouse drive the in-headset menus instead. The headset and your desktop 3D display run at the same time, each with its own independent view, so someone can watch in VR while others watch a glasses-free display, a 3D TV, or a projector. To reach a captured PC from inside the headset, see Control Your PC From VR.
Turning a 360° view with the trigger. Point the primary controller at the picture, hold the trigger and move your hand - the view turns with it, degree for degree, as far as you swing it. A short pull with the hand still counts as a click instead, and a pull that lands on one of Oku3D's controls always operates that control rather than turning the view.
Where the laser meets the screen is smoothed against hand tremor, so the pointer, the control under it, the trigger turn, and the mouse cursor sent into a captured PC all follow one steady point. A deliberate sweep keeps up with your hand; only the shake is filtered out.
Frame Packing setup
The video's frame rate picks the signal: a 24 fps film goes out as 1080p at 24 Hz, 50 or 60 fps content as 720p at 50 or 60 Hz.
Which displays follow. A display that recognizes 3D from that resolution alone switches by itself. A TV that also waits for a separate HDMI 3D marking stays flat for now and shows the stacked picture as it is. If a display stays flat with HDR switched on in Windows, try it with HDR off.
- Windows with an NVIDIA card: nothing to set up. Oku3D creates the 3D resolution through the driver when you go fullscreen and removes it when you leave.
- Windows with AMD or Intel graphics: add the 3D resolution to that display once, with Custom Resolution Utility (CRU) or your driver's custom-resolution panel: 1920x2205 at 24 Hz for films, 1280x1470 at 60 or 50 Hz for everything else. Without it Oku3D shows a notice that the display takes no 3D signal.
- Linux: depends on the desktop session, see where the two builds differ.
Filename Patterns
Oku3D auto-detects the stereo format from the filename. Separators (_, ., -) are interchangeable.
| Pattern in filename | Detected format |
|---|---|
_sbs, _3d.sbs, _3d-sbs, _2x1, _fsbs, _full_sbs | SBS (Full Width) |
_hsbs, _h.sbs, _h-sbs, _half_sbs, _half_2x1 | SBS (Half Width) |
_tab, _tb, _ou, _3d.tab, _3d.ou, _1x2, _ftab | Top-Bottom (Full) |
_htab, _h.tab, _h-tab, _hou, _half_tab, _half_ou, _half_1x2, _half_tb | Top-Bottom (Half) |
_vr, -vr, .VR180., _sbs_180 | SBS Full, 180° projection |
_sbs_360 | SBS Full, 360° projection |
_tb_180, _tab_180, _ou_180 | Top-Bottom Full, 180° projection |
_tb_360, _tab_360, _ou_360 | Top-Bottom Full, 360° projection |
_fisheye180, _fish190, _fisheye200, _fisheye220, _f180, _180f, _fisheye | Fisheye at the angle in the name (a bare _fisheye is treated as 180°) |
_fisheye360, _dualfisheye | Fisheye, two lens circles making a full sphere |
_MKX200, _MKX22, _VRCA220, _RF52 | Fisheye at the angle that named lens covers |
_rgbd | Color picture plus depth map (the tag Owl3D and the other converters write) |
_field-sequential | Row Interleaved |
_lr, _rl | Which eye the file puts first - saves setting Eye Order by hand on every open |
.jps, .pns | Stereo JPEG / PNG: right eye first, which is what that file type's own convention means |
Fisheye tags follow the spellings this material is commonly labeled with, and Oku3D measures the actual lens circles in the picture, so the projection lands right even when the tag is only approximate. Anything the name does not settle can be picked by hand from Projection in the view menu.
Tags in the file itself come before the name. Besides a container's own 3D marking, that includes the frame-packing flag that AVCHD 3D camcorders and side-by-side broadcasts write into their H.264 / HEVC video stream - such a recording opens in 3D whatever it is called.
If no filename pattern matches, Oku3D looks at the picture:
- Two views in one frame - Oku3D compares the two halves of a photo, or of a video's opening picture. When they show the same scene from two slightly different positions, the file opens in 3D, side-by-side or top-bottom. This works on ordinary frame shapes too - a 16:9, 4:3 or square photo, or a plain 1080p video - which no frame-shape rule can tell apart from a flat picture.
- 360° stereo photos - a top-bottom photo whose two eyes are each a 2:1 panorama at least 3840 pixels wide is wrapped around you instead of shown flat.
- Telltale frame shapes - a 2:1 frame at 4K width or above is taken as VR180 stereo, and a frame far wider than any film (3840×1080, 2560×720, anything past 3.5:1) as side-by-side. These guesses are checked against the picture as well, so a flat panorama is not split in two.
Files that don't match any of these signals fall back to 2D → 3D AI conversion, or to the format you saved with Ctrl+D (see Format Memory below).
Only the opening picture of a video is compared, so a film that starts on black, or on a nearly featureless title card, keeps the verdict from its name and frame shape - pick the format by hand for that one.
Two-file stereo pairs
Classic stereo photography stores the two eyes as separate files. When two images sit in the same folder and differ only by a left/right marker at the end of the name - photo_L.jpg / photo_R.jpg, or shot-left.png / shot-right.png - opening or dropping either one loads them together as a single 3D image. The marker (L / R or left / right, any case) has to be set off by a _, -, ., or space, and the file for the other eye must exist next to it. Works for JPG, PNG, WebP, TIFF, BMP, and TGA pairs.
Format Memory
When the player can't identify a file's stereo format from its container metadata, filename, shape, or picture, it normally falls back to 2D → 3D AI conversion. For workflows where the same format repeats - browsing a folder of 3D camera photos that all need the same format, or a collection of untagged 3D MKVs - the fallback can be replaced with a format of your choice.
Saving a default format
- Open a file the player misidentifies (or open any file and switch the format manually).
- Pick the right format from the bottom bar, and the right projection from the view menu.
- Press Ctrl + D. A toast confirms "Default format saved: Full SBS / 180°" (or whatever you picked).
- Every subsequent file the player can't identify automatically inherits that format + projection.
What the saved default does not override
The saved default only kicks in for files where the player is uncertain. Files the player can identify confidently keep their detected format regardless of what you saved:
- Container metadata says SBS / Top-Bottom (Matroska
StereoMode, MP4 spatial-media tags), or the video stream carries a frame-packing flag. - Filename carries a format tag (
_sbs,_tab,.VR180., etc.). - The two halves of the picture were recognized as a stereo pair.
- Frame shape matches a VR180 stereo signature (2:1 aspect at 4K width+).
- Frame shape matches a known Full-SBS layout (3840×1080, 2560×720, ...).
- A standard cinema or broadcast resolution (so e.g. Barry Lyndon at 1920×808 stays 2D even if your default is SBS).
Changing the default
Just press Ctrl + D again with a different format selected. To turn the memory off, switch the controls to 2D → 3D and press Ctrl + D - that's the same as a fresh install.
Depth Settings
Depth settings are organized into two tabs:
- Depth Map - visualization mode, gamma remap, edge dilation, and diagnostic overlays; these apply to every depth source.
- AI - everything specific to the neural depth estimator: depth model and inference resolution (separately for video and for stills), Max depth FPS, the Scene Cut Detector, and Motion-Sync 3D timing.
Per-image convergence storage (Save per image) now lives under Settings > General > Per-File Settings.
Visualization Mode
Found in Settings > Depth > Depth Map > Visualization Mode. The default is the regular 3D output. Depth Preview 3D shows the AI-detected depth as a 3D surface that slowly turns on its own - drag it to orbit to any angle and it holds there, handy for spotting depth-detection mistakes before switching to stereo output.
Diagnostic Overlays
Overlays visualize what the depth AI sees - useful for spotting where conversion goes wrong. Press D to cycle opacity (0% / 50% / 100%), Shift+D to switch overlay.
- Processed Depthmap / Raw Depthmap - depth as grayscale, for A/B comparison of post-processed vs. model-native depth
- Depth Heatmap - depth as color
- Depth Edges - detected object boundaries
- Flicker Visualizer - frame-to-frame depth jitter
- Scene Cut Detection - flashes when a scene change is detected
- Stereo Stretch - red areas where 2D-to-3D stretches pixels around object edges
Model & Inference Resolution
Oku3D ships with 13 AI depth models, grouped in the dropdown by family - Depth Anything V1, V2 and V3, Lotus, and MiDaS. The default Depth Anything V2 Small (47 MB) is a solid speed/quality balance for most GPUs. Pick Depth Anything V3 Mono Large for the finest detail, Lotus-D for photos with thin structures like wires and branches, or a smaller Q4F16 / MiDaS variant for older hardware.
The model comparison page shows every model on the same scenes, with measured speed and memory use for each inference resolution - the quickest way to decide what to switch to.
Inference Resolution controls how much detail the model sees - higher = sharper depth, lower FPS. Each model offers its own list of resolutions in pixels; models with a single baked-in size (the MiDaS builds) show it read-only. Entries your graphics card does not have the memory for are grayed out, so a pick that would only fail is visible as unavailable before you make it.
Video and photos are configured separately. Settings > Depth > AI has one Depth Estimation (Video) block and one Depth Estimation (Stills) block, each with its own model and resolution. The stills model starts at Same as video and its resolution at Maximum, so a photo already gets the sharpest depth the selected model can produce. Point stills at a slow, highly detailed model and video keeps running on a fast one - if your graphics card has the memory, both stay loaded so switching between a video and a photo doesn't pause.
If playback stutters, lower the video Inference Resolution first - that usually buys back enough FPS without giving up much detail. Only switch to a smaller model if that's not enough.
Each model downloads once on first selection and is then cached locally. The transfer runs in the background with a progress bar while playback continues - you can pause it, tuck it away to a button in the top bar, or close Oku3D and have it pick up where it left off. Models come from Oku3D's own servers, with Hugging Face as an automatic fallback. Open model folder, next to Compare models online on the AI page, shows where they are kept - for example to delete one you no longer use and free the disk space.
Image Filters
Found in Settings > Image. The Sharpen filter has its own on/off toggle; the Image Filter adjustments apply as soon as you move them off their neutral defaults.
| Filter | What it does | Key parameter |
|---|---|---|
| Image Filter | Apply one of 13 cinematic color presets (Chrome, Bleach Bypass, Dramatic, Hollywood, and more) and fine-tune the look with real-time tone sliders. | Color Grading, Grading Intensity, Exposure, Contrast, Highlights, Shadows, Saturation |
| Sharpen | Adaptive edge sharpening (AMD FidelityFX CAS) that increases edge contrast to reduce perceived ghosting on lenticular 3D displays. It reaches the bright parts of a picture as well as the dark ones. | Amount |
Video smaller than the window is enlarged with FSR 1, AMD's edge-aware upscaler, for crisper edges than the standard filter. There is nothing to switch on, and on a graphics card that cannot keep up it steps back to the standard filter by itself.
Depth Filters
Edge Dilation has no on/off toggle - its radius slider reads "Off" at the low end, which is how you disable it. Gamma Remap is always active and shaped by its preset. The Scene Cut Detector has its own on/off toggle.
| Filter | What it does | Key parameter |
|---|---|---|
| Edge Dilation | Expands foreground slightly to reduce halo artifacts. | Dilation Radius |
| Gamma Remap | Adjusts depth distribution with presets for different content types. | Preset, Depth Gamma |
| Scene Cut Detector | Detects scene transitions and resets depth smoothing to prevent blending across cuts. | Detection Threshold |
Note: When a file supplies its own depth - an iPhone photo shot with depth, a LIF or MPO file with an embedded depth map, an RGB-D video or photo carrying its depth map in the frame, or a separate depth-map image saved next to a photo (name it photo.depth.png beside photo.jpg) - that stored depth is used as-is and no AI inference runs. It stays a choice, not a lock: the Format dropdown offers 3D (the stored map, the default) and 2D → 3D (Oku3D's own estimate) side by side, so you can compare the two, and the pick carries over to the next photo in the session. A sidecar depth map lets you feed a higher-quality precomputed map from an offline depth tool into Oku3D's live output; brighter means nearer, and PNG, TIFF, JPEG, or AVIF all work. Any convergence and depth-intensity values in the file metadata are applied too. Creative filters like Gamma Remap still apply.
Depth smoothing
Because the AI re-estimates depth on every frame from scratch, flat surfaces such as skies and walls would shimmer without smoothing, while a moving subject would drag its depth behind it. Oku3D balances the two on its own now, reading how much of the picture is moving and easing off where something actually moves - there is nothing left to configure, and the old Temporal Filter section is gone from Settings.
Max depth FPS
Found in Settings > Depth > AI > Max depth FPS. Caps how many times per second the depth AI runs. The default Unlimited lets Oku3D run depth as often as your hardware allows - on an ordinary 60 Hz screen that means every frame, and it backs off automatically on a slower GPU. Pick a fixed rate (60 / 30 / 20 / 15 / 10 FPS) to hold the AI's GPU load down when your fan is loud or another GPU-heavy app is running.
Because the cap is a target frame rate rather than "every Nth frame", the depth-update rate stays consistent across videos shot at different frame rates - 24, 30, and 60 fps content all get the same depth cadence. Depth smoothing carries the frames between updates, so a moderate cap such as 30 FPS is usually visually indistinguishable from Unlimited on typical content; lower caps trade more visible softness on fast motion for steadily lower GPU draw.
Motion-Sync 3D
Found in Settings > Depth > AI > Motion-Sync 3D. Slightly delays audio and picture together so the depth AI has lead time to compute depth for the upcoming frame before it's displayed. On fast pans this aligns depth edges with object edges instead of letting depth lag a frame or two behind color. A/V sync is preserved because audio and video shift by the same amount.
Four toggles pick which sources the delay applies to:
- Apply to video files - on by default. Local video and image playback gains the alignment benefit without any downside.
- Apply to streams - on by default. Network jitter would otherwise let depth lag behind color on the first frames after a stall.
- Apply to capture device - off by default. Turning this on adds the delay to your live camera or capture-card feed, which reads as mirror lag and may feel uncomfortable.
- Apply to screen capture - off by default. Adds the delay to captured windows or desktops, which makes the captured app feel sluggish if you're interacting with it.
Audio Output
Everything here sits under Settings > Audio. Audio Tracks at the top decides where soundtracks may come from and holds for everything you play. Below it, an Output Device section - headed with the name of whatever your sound is currently playing on - carries the two settings that describe that output chain rather than the video you are watching.
Those two are kept per device - your Bluetooth speaker, your receiver, and your headphones do not share a value - and the heading follows along when the system moves the sound to another one. Other devices you have changed something on are listed at the bottom of the tab, where a trash icon drops an entry you no longer need.
Audio Tracks
For a film that ships the language you want as a separate file instead of inside the video.
- Auto-Load External Files - on by default. An audio file carrying the video's name, optionally followed by a language code, is offered in the audio track menu:
Movie.mkaorMovie.pt.mp3besideMovie.mkv, or the same inside aMoviefolder next to it. Nothing found this way is ever selected on its own - the video's own track keeps playing until you pick another. - Load Files Manually - off by default. Puts an Open file... entry at the top of the audio track menu, for a soundtrack that sits somewhere else or is named differently.
Only language codes are accepted after the name, so Movie.2009.mp3 is not taken for a soundtrack to Movie.mkv.
Subtitles have the same pair of switches under Settings > Subtitles: auto-loading of matching files beside the video, and an Open file... entry in the subtitle menu for one that sits elsewhere or is named differently. See Subtitles for the rest of them.
Audio Lag
Corrects sound and picture that are out of step. Bluetooth speakers, soundbars, HDMI chains, and AV receivers all add a delay of their own that nothing reports back to the computer, so the amount has to be found by ear - a Bluetooth speaker can sit several hundred milliseconds behind while the same PC's built-in speakers are at zero. Raise the value until lips and voices line up; the picture is held back to meet the sound.
The slider goes below zero as well, for the opposite case where the picture is the late one - a TV with its picture processing switched on typically runs 60 to 100 ms behind, motion smoothing alone 40 to 80 ms.
Because the setting belongs to the device, switching outputs mid-film applies that device's own value straight away. A short message names the new device and its offset whenever the change moves the sound.
Bitstream passthrough
Sends compressed Dolby and DTS tracks to your audio device untouched instead of decoding them, so an AV receiver does the decoding. It is off by default.
Not on Linux. Nothing on the Linux audio side can be asked whether an output will carry such a stream, so a wrong answer would play the compressed data as noise at whatever volume was set. One tester with a receiver would settle it. Multichannel sound is unaffected and plays on both.
You do not need it for surround sound. Oku3D outputs multichannel audio on its own - a 5.1 track plays as 5.1 with passthrough switched off, as long as your system is set up for more than two speakers. That holds on Windows and on Linux alike.
Turn it on for Dolby Atmos and DTS:X. Atmos rides inside a Dolby Digital Plus or Dolby TrueHD track, DTS:X inside DTS-HD Master Audio, and both are lost the moment that track is decoded - only the untouched bitstream carries them through to your receiver.
Passthrough needs an exclusive-mode stream, and that has consequences worth knowing before you turn it on:
- Every other application on that audio device goes silent while passthrough is active - voice chat, browser, game audio, and system notifications all lose the device until playback ends. This is why the setting is opt-in rather than always on.
- The receiver owns the volume. A bitstream cannot be scaled, so Oku3D's volume slider is read-only during passthrough and you set the level on the receiver instead. Mute still works with M.
- Windows has to permit it. The device's sound settings carry an "Allow applications to take exclusive control of this device" option; with it switched off, passthrough cannot engage.
Nothing breaks when passthrough is not possible: a track or a device that cannot take the bitstream falls back to normal decoded playback automatically. A short message names the format that engaged, or the reason it fell back.
Subtitles
S cycles the subtitle tracks - off, then the first, then the next, then off again. Everything that shapes them sits under Settings > Subtitles, in two groups: General, which holds everything that applies to any subtitle, and Text Tracks, which can only reach the ones made of text.
Embedded tracks and separate files both work - .srt, .ass, .ssa, .vtt, .sub / .idx, .sup, .smi, .ttml and .mks. A file carrying the video's name, optionally followed by a language code, is picked up on its own; Load Files Manually puts an Open file... entry in the subtitle menu for one that sits elsewhere or is named differently. The language you prefer is set once under Settings > General and selects the matching track wherever a video carries it.
Subtitles in 3D
Subtitles are placed in depth rather than pasted flat onto the picture, so they can be read without the eyes having to refocus between the caption and the scene behind it.
| Setting | What it does |
|---|---|
| Automatic Subtitle Depth | Moves the caption forward when the picture behind it comes nearer, so the scene never grows through the text. Needs a depth map to work from, which means anything converted from 2D, an RGB-D file or a photo carrying its own map - a native stereo pair keeps its depth in the two pictures instead, so the row says so and stays out of the way. |
| Depth | Shifts the captions forward or back, up to 2.5% of the picture's width either way. The default leaves them at the screen; raise it to bring them towards you, lower it to set them behind. |
| Depth plane | Only appears while a disc that carries its own subtitle depths is playing. A 3D Blu-ray tells the player where its subtitles belong, and they move with the scene accordingly; when a disc assigns them the wrong plane, this picks another. |
| Placement in VR | Follow Head keeps the captions in front of you wherever you look, with a soft lag. On Screen makes them part of the picture on the cinema screen, so they stay with it - and the subtitles of a 3D DVD keep the depth they were made with. |
Text tracks
Font Size, Font Color, Outline, Position and Text Anchor shape subtitles that are made of text. A disc's subtitles are pictures rather than text - the studio drew them - so none of these can change them. Oku3D marks those rows as text-only and says so while such a track is playing, instead of letting you move a slider that does nothing.
Subtitles that run ahead of or behind the picture are corrected per file with Subtitle Offset in the view menu, so the correction does not follow you into the next film.
Languages
Oku3D's interface is available in nine languages: English, German, French, Spanish, Portuguese, Simplified Chinese, Traditional Chinese, Korean, and Japanese. On first launch the app auto-detects your system language; you can change it any time under Settings > General.
The same screen also lets you set a preferred audio track language and a preferred subtitle language, so the matching tracks are selected automatically whenever you open a video that carries them.
Diagnostics & Bug Reports
Performance Snapshot
Press Ctrl + P to copy a diagnostic snapshot to the clipboard. It captures:
- App version, codec name, and decoder type (FFmpeg primary / Media Foundation backup, software / hardware path)
- GPU name and backend, plus which adapter the depth AI is pinned to
- Your operating system version, processor, installed memory, and graphics driver
- Every connected screen, so display-specific problems are traceable
- What the screen the window sits on can show - its brightness range and whether HDR is in use
- Active depth model and its inference resolution
- Live playback FPS, the video's own frame rate, and the speed actually reached
- How many processor threads decode the video, and whether the graphics card hands frames over directly
- Worst-case per-stage timings, the 3D depth delay broken into its stages, and whether Motion-Sync 3D is on for the open file
- The stereo corrections set for the open file, so a picture that does not line up can be diagnosed from the report alone
- How long a splat scene took to appear, whether the VR headset is being worn, and whether a Leia 3D photo's depth map came from two views or was estimated from the flat picture
- The full recent log - so the snapshot is complete without launching from a terminal
Paste it into an email to jens@oku3d.com when reporting a bug. The snapshot includes filenames from your recent activity - review it before sending if your library has sensitive names.
Diagnostic Log
The snapshot above already carries the recent log, so it is the right thing to send in almost every case. Only when the app crashes or freezes before you can press Ctrl+P is a terminal needed - started that way, Oku3D prints the most detailed output it has as it runs.
On Windows:
powershell -NoExit -Command "$env:RUST_LOG='warn,oku3d=trace'; & $env:LOCALAPPDATA\Programs\Oku3D\oku3d.exe"Close any running Oku3D instance first (end oku3d.exe in Task Manager if the window is unresponsive), then press Windows + R and paste the command above. A PowerShell window opens alongside Oku3D and prints the most verbose diagnostic output.
On Linux, open a terminal and start Oku3D from it with the same switch - which line depends on how you installed it:
RUST_LOG='warn,oku3d=trace' ./oku3dRUST_LOG='warn,oku3d=trace' ./oku3d-*.AppImageflatpak run --env=RUST_LOG='warn,oku3d=trace' com.oku3d.Oku3DThe log prints into that terminal. Copy it out from there, together with the description of what you did.