I’m running RealityScan CLI 2.1.0.119013 in a headless Docker container (Ubuntu 24.04 based) and encountering issues with higher quality model generation.
Problem:
calculatePreviewModel works perfectly
calculateNormalModel creates a model but fails at the next step with “Processing failed: No model is selected”
calculateHighModel fails with “Processing failed: No model is selected” after selectMaximalComponent
Docker container with nvidia/cuda:12.6.1-base-ubuntu24.04
RealityScan CLI 2.1.0.119013
Running headless with Xvfb virtual display
Wine environment for Windows compatibility
Hardware:
NVIDIA GeForce RTX 3060 Laptop GPU (6GB VRAM)
16 CPU cores
Driver: 550.54.14
The same workflow works fine with calculatePreviewModel. Am I missing a model selection step after calculateNormalModel? I tried adding -selectModel 0 but got “Model ‘0’ not found” error.
Any guidance on the correct command sequence for normal/high quality models in headless mode would be appreciated.
Also seeing this with a pipeline that works fine on Windows, it seems calculateNormalModel is not actually doing anything, because I see (you might need -stdConsole -printProgress):
Executing command ‘calculateNormalModel’ Processing completed in 0.052 seconds.
Whereas calculatePreviewModel gives:
Executing command ‘calculatePreviewModel’ Reconstruction in Preview Mode completed in 2.421 seconds. Processing completed in 2.775 seconds.
calculatePreviewModel (and alignment) They are CPU-based, so they function even if a GPU is not available. calculateNormalModel Higher-quality reconstructions require a GPU, so if the GPU isn’t detected, the command can exit almost immediately, which matches the very short runtime you’re seeing.
On Linux + Docker setups, please verify the following:
Official NVIDIA drivers are installed on the host (not nouveau), and nvidia-smi works on the host.
Vulkan is installed and working (vulkaninfo --summary should list the GPU.
Docker is started with GPU passthrough enabled (--gpus all), and both nvidia-smi and vulkaninfo work inside the container.
The NVIDIA Vulkan ICD files are shared in the container; otherwise, Vulkan cannot create an instance.
In headless setups, X11/Xvfb DISPLAY must be configured correctly.
As a quick sanity check, you can also run CudaDeviceQuery.exe inside the container using Wine to confirm the GPU is actually visible.
Once the GPU and Vulkan are correctly exposed inside Docker, calculateNormalModel it should no longer exit instantly