Proyecto personal · 3D scanning pipeline

ScanForge

Escanea un objeto real con el iPhone, reconstrúyelo en 3D en el Mac y deja la malla lista para imprimir — sin retoques manuales.

iPhone · ios-capture → fotos → Mac · mac-reconstruct → OBJ/USDZ → Mac · mesh-prep → 3MF/STL → Creality Print

Componentes

escrito, sin compilar

ios-capture

App SwiftUI (iOS 17+). Captura guiada con LiDAR (ObjectCaptureSession) en el 17 Pro, o modo manual con AVFoundation en iPhones sin LiDAR — se elige solo, en tiempo de ejecución.

Ver código →
escrito, sin compilar

mac-reconstruct

CLI en Swift sobre PhotogrammetrySession (RealityKit). Fotos → USDZ + OBJ, con nivel de detalle configurable y progreso en terminal.

Ver código →
probado (pytest, 4/4)

mesh-prep

Pipeline en Python (pymeshlab + trimesh). Detecta y corta el plano de mesa, genera base plana, repara la malla, escala a mm reales, decima y exporta 3MF/STL listo para imprimir, con un reporte de peso/volumen.

Ver código →
protocolo probado

scripts

Orquestador end-to-end (scanforge.sh) y el receptor de subida automática por red local desde el iPhone (receive_uploads.py).

Ver código →

Arranque rápido

# mac-reconstruct
cd mac-reconstruct && swift build -c release

# mesh-prep
cd mesh-prep && python3 -m venv .venv && source .venv/bin/activate
pip install -e . && pytest

# ios-capture
cd ios-capture && xcodegen generate && open ScanForge.xcodeproj

# end-to-end
./scripts/scanforge.sh --input <carpeta-de-fotos> --name mi-objeto --height-mm 150

El Swift (iOS y macOS) se escribió desde un entorno sin Xcode: sigue la forma real de las APIs de Apple, pero no se compiló todavía. El pipeline de Python sí está probado de verdad. Detalles completos en el README del repo.