3D Reconstruction Pipeline Setup - Gauravr47/3D-Mesh-Reconstruction GitHub Wiki

Setting Up a 3D Reconstruction Pipeline on Windows: COLMAP + Open3D + NeRF + Gaussian Splatting

This post walks through how I set up a hybrid C++/Python pipeline for 3D reconstruction and novel view synthesis on a Windows machine. The goal was to build a clean, GPU-accelerated setup for comparing Neural Radiance Fields (NeRF) and Gaussian Splatting side-by-side โ€” starting from unordered image collections.


๐Ÿ’ป System Overview

Component Spec
OS Windows 10 x64
GPU NVIDIA GeForce RTX 3070
Driver NVIDIA-SMI 561.19
CUDA 12.6 (native), 11.8 (runtime used)
Python 3.10 (via conda)
Compiler MSVC / Visual Studio 2022

โš™๏ธ Toolchain at a Glance

Tool Use Case Install Method
COLMAP SfM + Dense MVS C++ via vcpkg
Open3D Point cloud + mesh visualization Python via pip
PyTorch NeRF + splatting tools conda w/ CUDA
pycolmap Python SfM experiments (CPU-only) pip

๐Ÿ› ๏ธ COLMAP Build with vcpkg (C++)

I used vcpkg to build COLMAP from source with CUDA and OpenGL enabled.

# Install vcpkg
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg install colmap[cuda,tests]:x64-windows

More information can be found at https://colmap.github.io/install.html

COLMAP is run via subprocesses in Python to keep the GPU-accelerated MVS backend and avoid pycolmap's limitations on Windows.


๐Ÿ Python Environment (conda + pip)

conda create -n mesh-recon python=3.10 -y
conda activate mesh-recon

# PyTorch with CUDA 11.8
conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia -y

# Visualization & geometry tools
pip install open3d pycolmap matplotlib numpy tqdm

# NeRF Studio
pip install nerfstudio

Note: Open3D and pycolmap install cleanly on Windows via pip. Pycolmap is CPU-only here, so COLMAP C++ remains the primary reconstruction engine.


๐Ÿงช Goals of This Pipeline

  • Run SfM + MVS robustly on local image sets
  • Preprocess outputs for both NeRF and Gaussian Splatting
  • Use Open3D for quick point cloud + mesh previews
  • Compare rendering quality + performance

๐Ÿ”„ Why Not Just Use Linux?

Good question. I could have used WSL2, but I wanted native GPU access and better integration with Windows-based tools โ€” especially for testing pipelines with real-world user environments.


๐Ÿšง What's Next

I'll follow up with:

  • Scripts to batch-run COLMAP from Python
  • Conversion utilities for NeRF / splatting input formats
  • Evaluation of memory/performance tradeoffs

Let me know if youโ€™d like a copy of the environment file or build scripts.


Thanks for reading!