outmode/rendepth
outmode/rendepth has 31 GitHub stars and 2 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-15 01:44 UTC. Last push 2026-10-12.
Measured star growth
- in 24h
- +2
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
2D to 3D Conversion
Creative & MediaREADME.md
OriginalFree and Open Source Stereoscopic 3D Media Player.
Converts Any Standard Image/Video to 3D and Supports Native Stereo Media.
Visit https://rendepth.com to Download the App.
For a conversion or image-loading problem, attach error_log.txt from the same
.Rendepth folder as the settings (~/.Rendepth on Linux/macOS or
%USERPROFILE%\.Rendepth on Windows). The log records recent session events,
image format and dimensions, and model transfer results. It does not include
media file names, system paths, image content, or license details.
Original Rendepth source code is available under the MIT License. The combined application is distributed under GNU GPL version 3. Dependencies retain their own licenses; the collected texts and attributions are in THIRD_PARTY_LICENSING. See the licensing maintenance guide for release-source and notice requirements.
Stereo 3D Samples
Enjoying Rendepth? Consider donating to support further development: https://rendepth.com/donate
Build Instructions
Use CMake 3.22 or newer, a C++20 compiler, and Git. Clone with the pinned dependencies, or initialize them after cloning:
git clone --recurse-submodules https://github.com/outmode/rendepth.git
cd rendepth
After pulling Rendepth updates, run git submodule update --init --recursive
to synchronize nested dependencies with the recorded commits. Do not use
--remote, which follows upstream branches instead.
On Linux, install development files for libcurl, OpenSSL, GTK 3, GLib/GIO,
GStreamer 1.0 (core, app, video, WebRTC, and SDP; WebRTC requires 1.22 or
newer), libbluray, and libdvdread, plus pkg-config and GNU Make. Supply a
CPU-only ONNX Runtime shared library, its LICENSE and
ThirdPartyNotices.txt, and compatible ONNX Runtime headers. From the
repository root, configure and build a Release executable:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
-DRENDEPTH_ONNXRUNTIME_INCLUDE_DIR=/path/to/ort-headers/include/onnxruntime \
-DRENDEPTH_CPU_RUNTIME_LIBRARY=/path/to/cpu-sdk/lib/libonnxruntime.so.1 \
-DRENDEPTH_CPU_RUNTIME_NOTICES_DIR=/path/to/cpu-sdk
cmake --build build --parallel 14 --target Rendepth
Point RENDEPTH_ONNXRUNTIME_INCLUDE_DIR to the directory containing
onnxruntime_cxx_api.h. See Linux inference packaging
for CPU runtime requirements and GPU pack assembly.
On Windows, use an x64 MSVC build and an x64 MinGW GCC toolchain for the bundled
MVC decoder. Provide a CPU-only x64 ONNX Runtime SDK with headers and notices
(RENDEPTH_CPU_RUNTIME_DIR), plus an MSVC-compatible FFmpeg SDK
(RENDEPTH_FFMPEG_ROOT). The FFmpeg SDK needs include, lib,
debug/lib, bin, and debug/bin; install libbluray and libdvdread in that
same SDK, or set RENDEPTH_DISC_ROOT to their SDK. For example, configure with
-DRENDEPTH_CPU_RUNTIME_DIR=C:/SDKs/onnxruntime-win-x64 -DRENDEPTH_FFMPEG_ROOT=C:/SDKs/vcpkg/installed/x64-windows,
then run cmake --build build --config Release --parallel 28 --target Rendepth.
For a local UI test in CLion, select the Debug-Visual Studio CMake profile
and the Rendepth run configuration, then build and run it directly. This
builds Debug/Rendepth.exe with the repository's assets and shaders; the
Windows installer script is only needed when making an installer. Set the
profile's build option to -j 28. If the profile uses the Visual Studio 2026
generator, use CLion's bundled CMake rather than an older system CMake.
See Windows inference packaging for pack details.
On macOS, provide an ONNX Runtime SDK via RENDEPTH_ONNXRUNTIME_DIR and the
libbluray and libdvdread development packages; see the disc playback notes below.
The SDK must include the Core ML execution provider. macOS uses ONNX Runtime's
CPU provider by default for predictable startup. GPU Support > Choose AI Engine
selects CPU or Core ML for still-image depth, video depth, and super resolution
after a restart. On macOS, depth uses native Core ML from a compiled
DA2-*.mlmodelc directory. Super resolution uses RFDN_x4.mlmodelc for
inputs 16–720 pixels per side. When a compiled model is missing, the app
downloads the matching -coreml.zip from rendepth.com/models/,
verifies its SHA-256, and caches the compiled model in the configured Models
folder. If download or loading fails, it downloads the ONNX model and uses CPU.
See the local conversion instructions for rebuilding assets.
The remaining ONNX Runtime Core ML paths compile on first load and reuse a
cache beside the ONNX model; large cached models may still take minutes to load.
The compiled depth cache can take several hundred megabytes or more per model
and input size; remove .RendepthCoreMLCache from the model folder to reclaim it.
Core ML uses CPU and GPU compute units, with CPU fallback if a model cannot load.
The DepthTest and SuperTest tools accept --provider coreml or
--provider cpu to select an engine explicitly. DepthTest also accepts
--repeat N to check repeated predictions in one session, or --load-only
to measure model startup without running inference.
The Release executable is written to Binary in the repository root. Keep
Assets, Binary, Library, Runtimes, and Shaders together when running or
packaging it. FFmpeg and the SDL libraries are built from the pinned sources on
Linux and macOS. Precompiled shaders are included, so a normal build does not
require a separate SDL_shadercross installation.
Dependency versions are pinned by Git submodule commits. The SDL and SyLC pins are:
| Dependency | Version / commit |
|---|---|
| SDL | release-3.4.16 |
| SDL_image | release-3.4.6 |
| SDL_ttf | release-3.2.2 |
| SDL_shadercross | 1ff05bec573988a98ef9e0260b4da44f512b8367 (no upstream release tags) |
| SyLC | v5.3.1 |
- Linux/macOS can use GCC/Clang. Windows builds use MSVC.
- Windows builds bundle a CPU inference runtime and offer optional NVIDIA CUDA
and DirectML (AMD, Intel Arc, NVIDIA) packs. Configure a CPU-only x64 SDK with
RENDEPTH_CPU_RUNTIME_DIR; select the engine in Settings and restart. See Windows inference packaging for pack assembly, installation, and validation. - Linux builds use one executable with a bundled CPU inference runtime. Settings
selects CPU, NVIDIA CUDA, or AMD ROCm on the next launch. GPU runtime packs
live separately in
~/.Rendepth/Runtimes; missing or failing packs fall back to CPU. See Linux inference packaging for build inputs, pack layout, and validation. Selecting a missing GPU pack downloads it fromrendepth.com/packswhen that pack has been published there. - Windows FFmpeg runtime DLLs are copied next to
Rendepth.exeautomatically. - Set
RENDEPTH_MAC_EXPORT_BUNDLE=ONin a separate macOS export build directory to create the app bundle; CLion builds a regular executable.
Lightfield Displays
In lightfield mode, Rendepth automatically selects up to two connected displays: one CubeVi C1 and one Looking Glass (including LKG Go). Each output uses its own model's calibration and shares the loaded image/depth source. Additional displays of the same type are skipped because calibration is shared within each model. Connecting or disconnecting a display refreshes the outputs automatically. Native stereo sources use two views on each supported lightfield display; RGB-D images and quilts keep their multiview paths.
RENDEPTH_NATIVE_DISPLAY still restricts selection to matching display names when set.
Disc playback
DVD, Blu-ray and audio CD playback are built for Windows, macOS and Linux.
libbluray and libdvdread development packages are required: configuration
fails if either is missing instead of producing a player with disabled readers.
- Windows: install
libbluray:x64-windowsandlibdvdread:x64-windowswith vcpkg in the same SDK as FFmpeg.RENDEPTH_DISC_ROOTdefaults toRENDEPTH_FFMPEG_ROOT; a separate SDK must containinclude,lib,debug/lib,binanddebug/bin. Runtime DLLs are copied and packaged. - macOS: install
libblurayandlibdvdreaddevelopment packages and expose their prefix throughCMAKE_PREFIX_PATHor pkg-config. App bundles copy their linked libraries automatically. Audio CDs use the native raw-device reader; select their Finder volume or an audio track in Load Media. - Linux: install the distribution's libbluray and libdvdread development packages. Installed packages also require the corresponding runtime libraries.
If CMake asks for RENDEPTH_BLURAY_INCLUDE_DIR, point it to the directory
containing libbluray/bluray.h (for example, <sdk>/include or /usr/include),
not to the libbluray directory itself. RENDEPTH_DVDREAD_INCLUDE_DIR similarly
points to the directory containing dvdread/dvd_reader.h. On Windows, setting
RENDEPTH_DISC_ROOT to the SDK prefix lets CMake find both headers and libraries.
Blu-ray remains a Pro feature. Protected media still requires decryption support and any keys required by the underlying disc libraries; enabling a backend does not make every encrypted disc readable.
Opening a Blu-ray or DVD automatically starts the most likely main feature. The disc's main-title hint is preferred, with the reader's longest-title choice as a fallback. On supported builds, a 3D title with matching duration and chapter count is preferred over the 2D choice. Use Track Selection during playback to browse and choose another title manually.
Blu-ray 3D decoding
Native MVC decoding uses the BSD-licensed edge264 sources from the pinned
SyLC submodule. Only that decoder is built;
Rendepth continues to use libbluray for disc access and FFmpeg for transport,
audio, and subtitles. Initialize it with
git submodule update --init ThirdParty/SyLC.
MVC playlists are labelled Blu-ray 3D in the title browser. Their original left and right views enter Rendepth's full-resolution stereo rendering path; depth inference is disabled for these titles. Decryption requirements are the same as for ordinary Blu-ray playback.
Decoded pictures remain owned until both views have been submitted, so the right eye retains its inter-view references. A background reader prefetches compressed dependent-view packets so disc reads overlap decoding. The base stream also prefetches its next 2 MiB input block while decoding consumes the current one. The readers serialize whole refill chunks to avoid competing small reads on the same optical drive. The dependent queue has a 4 MiB high-water mark and a 128-packet limit; seeking and closing stop the reader before resetting the demuxer. x86-64 builds include runtime-selected SSE/AVX2 decoder variants. MVC playback primes one second of decoded video before starting audio and allows 1.5 seconds in the presentation queue to bridge optical-drive stalls. This uses more memory and adds startup buffering compared with ordinary video.
The source decoder builds with GCC/Clang and POSIX threads. Windows MSVC builds
compile it separately with x64 MinGW GCC into rendepth-mvc.dll, with static
GCC/winpthreads runtime support and an MSVC import library. Set
RENDEPTH_MVC_GCC if GCC is not found in PATH, CLion's bundled MinGW, or the
standard MSYS2 locations. The application and FFmpeg continue to use MSVC.
Decoder and runtime notices are included in THIRD_PARTY_LICENSING.
MvcRuntimeTest checks the decoder ABI and worker lifecycle without a disc.
AudioCdReaderTest checks PCM streaming, seeking, disc signatures and TOC parsing.
BlurayPlaylistTest checks playlist parsing without a disc.
DiscReadAheadTest checks buffered reads, seeks, EOF and I/O errors without a disc.
MvcPlaybackTest <disc path> checks stereo output, seeking, clip transitions,
audio and looping using a readable 1080p MVC disc. Optional title-index and
seek-seconds arguments select a particular title and seek for diagnosis.
Appending a frame.yuv path runs a 240-frame throughput check and saves frame
24 as 3840×1080 planar YUV420P for inspecting both eyes without the renderer.
The test also reports the 95th-percentile and maximum frame-delivery gaps,
and the number exceeding 100 ms. These measure decoder delivery, not display
pacing; compare first reads from optical media with repeated runs, since the
OS file cache can hide disc stalls.
An optional final frame-count argument extends the throughput run beyond its
default 240 frames, for example MvcPlaybackTest <disc> 132 1950 frame.yuv 720.
Build a test target with
cmake --build <build-directory> --target <test-name> --parallel 10.
Keyboard presentation controls
- 0: Disable 3D and hide the 3D button, as with Disabled in settings.
- 1: Turn on 3D in the current display mode; each later press advances to the next mode, looping after the last one. Disabled is skipped.
- 2: Switch to 2D using the display mode selected in settings.
- 3: Switch to 3D using the display mode selected in settings.
When 3D is disabled, 2 and 3 restore the last saved display mode in its 2D or 3D view, including across restarts. Choose the display format in settings or cycle with 1. 4–9 do not change presentation modes. If no display mode has been used yet, 1/2/3 use Natural Color.