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!