Colmap View — Visualizador Web de Reconstrucciones COLMAP
Qué es
Colmap View (github.com/ColmapView/Colmapview.github.io, TypeScript, AGPL-3.0, demo en colmapview.github.io) es el visor drag'n'drop de reconstrucciones COLMAP más completo que existe: se abre la página, se suelta la carpeta del dataset y listo — sin instalación, con más funciones que la GUI original de COLMAP. Renderizado GPU con WASM sobre React Three Fiber (fiber + drei + @sparkjsdev/spark para splats).
Capacidades clave (v2026-08)
- Nube de puntos: coloreable por RGB, error de reproyección o longitud de track; tamaño/opacidad/thinning ajustables.
- Cámaras: frustums piramidales, flechas o planos de imagen texturizados; coloreables por ID de cámara o rig frame; rigs multi-cámara con resaltado animado.
- 9 sistemas de coordenadas: COLMAP, OpenCV, Three.js, OpenGL, Vulkan, Blender, Houdini, Unity, Unreal — conversión entre ellos.
- Alineación y escala al mundo real: 1-Point Origin (clic en un punto → origen), 2-Point Scale (dos puntos + distancia real), 3-Point Align (tres puntos → plano horizontal), Floor Detection automática con RANSAC, gizmo interactivo. Los resultados se apilan en un transform pendiente con Reset/Apply.
- Puntos 2D en imagen: selección de cámaras y visualización de keypoints sobre las imágenes originales (fuera del visor 3D).
- Galería: grid/lista con virtual scrolling para >10.000 imágenes; vista de imagen con detalles por cámara.
- Rendimiento: parsing WASM para >1M de puntos, lazy-loading para
images.bin de 1.9GB+, GPU instancing para miles de cámaras.
- Carga remota: Load URL / Load manifest — encuentra la reconstrucción dentro de un repo o listado de Hugging Face; ZIP aceptado en lugar de carpeta; modo images-only para galerías sin reconstrucción.
- Splats: carga
.spz / .ply (Gaussian splatting) junto a la reconstrucción.
- Export/Captura: screenshot, share, export; perfiles de configuración; auto-orbit para presentaciones; atajos de teclado completos (panel Help con
I o ?).
Uso
1. Abrir https://colmapview.github.io/
2. Soltar carpeta con cameras.bin/txt + images.bin/txt + points3D.bin/txt
(subcarpetas sparse/0/ y sparse/ escaneadas automáticamente; opcional images/ y masks/)
Instalación local para desarrollo: git clone https://github.com/ColmapView/Colmapview.github.io.git && pnpm install && pnpm dev (Vite + Playwright para tests).
Casos de uso para David
- Validar outputs SfM/fotogrametría (pipeline COLMAP local o Nube) sin abrir la GUI de escritorio.
- Geolocalización de modelos: 2-Point Scale + 3-Point Align → pasar reconstrucciones a escala métrica real para comparar con LiDAR/Catastro.
- Repos Hugging Face: inspeccionar datasets 3D (splats/reconstrucciones) directo por URL — útil en investigación de visión.
- Satellite imagery / geo-forensics: verificar reconstrucciones antes de proyectarlas en visores GIS (Water3J, España Atlas).
Stack y referencia de arquitectura
React 19 + Vite + TypeScript, @react-three/fiber + drei, gs-toolbox (transformaciones geométricas), libarchive.js (ZIP en navegador), fflate, gif.js, @sparkjsdev/spark (splats), tanstack/react-virtual (galería). Buen patrón a copiar para cualquier visor de datos binarios pesados en navegador: parsing WASM + lazy loading + virtual scrolling.
Comparativa de alternativas (consultado 2026-09-01)
- Visor oficial COLMAP (escritorio, C++): más rápido cargando, menos herramientas de alineación/export, requiere instalación.
- pycolmap + open3d (scripting): para automatizar, no para inspección visual interactiva.
- Polycam/Luma web viewers: propietarios, cierran el flujo con fuentes abiertas.
- Punto débil de ColmapView: dataset grande por red puede tardar en cargar en cliente (mitigado con lazy loading y manifest de HF).
Pitfalls
- AGPL-3.0 — usar la web o el viewer como herramienta es libre; incorporar su código a un producto propio obliga a abrir el producto. Citar siempre.
- Los datasets
.bin y .txt son equivalentes; si faltan archivos _undistorted, el visor puede no mostrarlos (feature de versión reciente).
- Reconstrucciones sin escalado métrico: la escala de COLMAP es arbitraria → SIEMPRE aplicar 2-Point Scale antes de cruzar con datos GIS reales.
- El repo se movió de
TobiasGiovannini/Colmapview.github.io a la org ColmapView/ — usar la URL nueva.
Verificación
- El visor muestra puntos + frustums tras soltar la carpeta (si sale vacío, faltaría points3D o la carpeta sparse no se detectó).
- Tras 2-Point Scale, la distancia medida entre los dos puntos coincide con la real introducida (panel de estadísticas).
- Export/screenshot genera archivo descargable con el render actual.
1---2name: colmap-view3description: Colmap View — visualizador web drag'n'drop de modelos COLMAP (nubes de puntos, frustums de cámara, rigs, Gaussian splatting).4license: AGPL-3.0 (uso como herramienta web; OJO al incorporar código a p5---67# Colmap View — Visualizador Web de Reconstrucciones COLMAP89## Qué es1011Colmap View (github.com/ColmapView/Colmapview.github.io, TypeScript, AGPL-3.0, demo en colmapview.github.io) es el visor drag'n'drop de reconstrucciones COLMAP más completo que existe: se abre la página, se suelta la carpeta del dataset y listo — sin instalación, con más funciones que la GUI original de COLMAP. Renderizado GPU con WASM sobre React Three Fiber (fiber + drei + @sparkjsdev/spark para splats).1213## Capacidades clave (v2026-08)1415- **Nube de puntos**: coloreable por RGB, error de reproyección o longitud de track; tamaño/opacidad/thinning ajustables.16- **Cámaras**: frustums piramidales, flechas o planos de imagen texturizados; coloreables por ID de cámara o rig frame; rigs multi-cámara con resaltado animado.17- **9 sistemas de coordenadas**: COLMAP, OpenCV, Three.js, OpenGL, Vulkan, Blender, Houdini, Unity, Unreal — conversión entre ellos.18- **Alineación y escala al mundo real**: 1-Point Origin (clic en un punto → origen), 2-Point Scale (dos puntos + distancia real), 3-Point Align (tres puntos → plano horizontal), Floor Detection automática con RANSAC, gizmo interactivo. Los resultados se apilan en un transform pendiente con Reset/Apply.19- **Puntos 2D en imagen**: selección de cámaras y visualización de keypoints sobre las imágenes originales (fuera del visor 3D).20- **Galería**: grid/lista con virtual scrolling para >10.000 imágenes; vista de imagen con detalles por cámara.21- **Rendimiento**: parsing WASM para >1M de puntos, lazy-loading para `images.bin` de 1.9GB+, GPU instancing para miles de cámaras.22- **Carga remota**: Load URL / Load manifest — encuentra la reconstrucción dentro de un repo o listado de Hugging Face; ZIP aceptado en lugar de carpeta; modo images-only para galerías sin reconstrucción.23- **Splats**: carga `.spz` / `.ply` (Gaussian splatting) junto a la reconstrucción.24- **Export/Captura**: screenshot, share, export; perfiles de configuración; auto-orbit para presentaciones; atajos de teclado completos (panel Help con `I` o `?`).2526## Uso2728```291. Abrir https://colmapview.github.io/302. Soltar carpeta con cameras.bin/txt + images.bin/txt + points3D.bin/txt31 (subcarpetas sparse/0/ y sparse/ escaneadas automáticamente; opcional images/ y masks/)32```3334Instalación local para desarrollo: `git clone https://github.com/ColmapView/Colmapview.github.io.git && pnpm install && pnpm dev` (Vite + Playwright para tests).3536## Casos de uso para David3738- **Validar outputs SfM/fotogrametría** (pipeline COLMAP local o Nube) sin abrir la GUI de escritorio.39- **Geolocalización de modelos**: 2-Point Scale + 3-Point Align → pasar reconstrucciones a escala métrica real para comparar con LiDAR/Catastro.40- **Repos Hugging Face**: inspeccionar datasets 3D (splats/reconstrucciones) directo por URL — útil en investigación de visión.41- **Satellite imagery / geo-forensics**: verificar reconstrucciones antes de proyectarlas en visores GIS (Water3J, España Atlas).4243## Stack y referencia de arquitectura4445React 19 + Vite + TypeScript, @react-three/fiber + drei, gs-toolbox (transformaciones geométricas), libarchive.js (ZIP en navegador), fflate, gif.js, @sparkjsdev/spark (splats), tanstack/react-virtual (galería). Buen patrón a copiar para cualquier visor de datos binarios pesados en navegador: parsing WASM + lazy loading + virtual scrolling.4647## Comparativa de alternativas (consultado 2026-09-01)4849- **Visor oficial COLMAP** (escritorio, C++): más rápido cargando, menos herramientas de alineación/export, requiere instalación.50- **pycolmap + open3d** (scripting): para automatizar, no para inspección visual interactiva.51- **Polycam/Luma web viewers**: propietarios, cierran el flujo con fuentes abiertas.52- **Punto débil de ColmapView**: dataset grande por red puede tardar en cargar en cliente (mitigado con lazy loading y manifest de HF).5354## Pitfalls5556- **AGPL-3.0** — usar la web o el viewer como herramienta es libre; incorporar su código a un producto propio obliga a abrir el producto. Citar siempre.57- Los datasets `.bin` y `.txt` son equivalentes; si faltan archivos `_undistorted`, el visor puede no mostrarlos (feature de versión reciente).58- Reconstrucciones sin escalado métrico: la escala de COLMAP es arbitraria → SIEMPRE aplicar 2-Point Scale antes de cruzar con datos GIS reales.59- El repo se movió de `TobiasGiovannini/Colmapview.github.io` a la org `ColmapView/` — usar la URL nueva.6061## Verificación6263- El visor muestra puntos + frustums tras soltar la carpeta (si sale vacío, faltaría points3D o la carpeta sparse no se detectó).64- Tras 2-Point Scale, la distancia medida entre los dos puntos coincide con la real introducida (panel de estadísticas).65- Export/screenshot genera archivo descargable con el render actual.66