방 하나를 아홉 가지 3D 로

아이폰 라이다 스캔 한 번으로 만들 수 있는 3D 를 전부 만들어 나란히 비교했다 (2026-10-14)

EN
무엇을 했나: 라이다가 있는 아이폰에서 무료 앱 Modelar 로 방 하나(가로 약 3.5 m × 세로 3.65 m, 천장 2.34 m)를 약 11분 걸어 다니며 스캔했다. 앱이 내보낸 압축본 하나(544 MB)를 arcAI 서버로 옮겨, 그 안의 데이터를 조합해 처음 해 보는 만큼 할 수 있는 방법을 모두(아홉 가지) 돌렸다.

처음부터 끝까지

flowchart LR
  A["아이폰 + Modelar 앱
방을 걸으며 약 11분 스캔"] --> B["압축본 1개 544 MB
윈도우 D: → arcAI 서버"] B --> C["형식 해독
Cloud.log · Mesh.scn · 카메라 json"] C --> M1["① 앱 메시
그대로 꺼냄"] C --> M2["② 라이다 점
채움 점 제거"] C --> P["카메라 위치 568장
아이폰 표기 → RS·COLMAP 표기"] P --> M3["③ RealityScan
위치 고정 → 메시 → 라이다 색"] P --> M4["④ 가우시안
gsplat 3만 단계"] M2 --> M4 M2 --> M5["⑤ 가우시안 + 라이다 깊이
+ 카메라 위치 보정"] P --> M5 M2 --> M6["⑥ 라이다 메시
Open3D Poisson"] P --> M7["⑦ WebODM(ODM)
아이폰 위치 → 가짜 GPS"] P --> M8["⑧ 2D 가우시안
면에 붙는 가우시안"] M2 --> M8 C --> M9["⑨ VGGT (AI)
사진만으로 위치·깊이 추정"] M1 & M2 & M3 & M4 & M5 & M6 & M7 & M8 & M9 --> W["웹용 압축
GLB · PLY · splat"] W --> X["Cloudflare Pages
이 페이지"] classDef app fill:#fef3c7,stroke:#f59e0b,stroke-width:3px,color:#78350f classDef lidar fill:#d1fae5,stroke:#10b981,stroke-width:3px,color:#064e3b classDef rs fill:#dbeafe,stroke:#3b82f6,stroke-width:3px,color:#1e3a8a classDef gs fill:#fce7f3,stroke:#ec4899,stroke-width:3px,color:#831843 classDef gsd fill:#ede9fe,stroke:#8b5cf6,stroke-width:3px,color:#4c1d95 classDef lmesh fill:#ccfbf1,stroke:#14b8a6,stroke-width:3px,color:#134e4a classDef odm fill:#fee2e2,stroke:#ef4444,stroke-width:3px,color:#7f1d1d classDef gs2d fill:#e0f2fe,stroke:#0ea5e9,stroke-width:3px,color:#0c4a6e classDef vggt fill:#ecfccb,stroke:#84cc16,stroke-width:3px,color:#365314 class M1 app class M2 lidar class M3 rs class M4 gs class M5 gsd class M6 lmesh class M7 odm class M8 gs2d class M9 vggt

3D 로 비교하기

탭을 누르면 그 방법의 3D 를 불러온다. 마우스 끌기로 돌리기, 휠로 확대, 오른쪽 끌기로 이동. 휴대폰은 두 손가락. 가우시안(④⑤⑧)은 실제로 찍은 자리에서 볼 때 가장 사진 같아서 '촬영 시점' 에서 시작한다.

방법별 자세히

① 앱 메시

어떻게 만들었나: Modelar 앱이 촬영하면서 바로 만든 메시를 그대로 꺼냈다. 앱 파일 Mesh.scn 은 Apple SceneKit 형식이라 다른 프로그램이 못 읽어서, 구조를 직접 풀어 94조각을 하나로 합쳤다 (read_modelar_mesh.py).

장점
  • 추가 처리 0분. 앱 화면에서 보던 것 그대로
  • 파일이 가장 작다 (1.2 MB)
  • 방 크기·벽 위치 같은 큰 형태는 맞다
단점
  • 삼각형 5.8만 개라 매우 거칠다. 5 cm 격자로 만든 메시
  • 색이 꼭짓점에만 있어 물건 모양이 뭉개진다
  • 앱 밖으로 꺼내는 공식 방법이 없어 직접 해독했다

이 3D 에서 볼 것

숫자: 33,363 vertices / 58,319 triangles

② 라이다 점

어떻게 만들었나: 앱이 저장한 라이다 점 파일 Cloud.log 을 해독했다. 공식 문서가 없어 바이트를 직접 보고 블록 구조를 찾았고, 블록 점 수의 합이 앱 기록(21,029,180)과 정확히 같은지로 검증했다. 그중 8,896,675개(42.3%)는 빈 자리를 채운 (0,0,0) 이라 뺐다. 웹에는 1,300,000개만 무작위로 올렸다.

장점
  • 센서가 직접 잰 거리라 크기가 처음부터 실제 m
  • 이 페이지의 모든 결과가 이 점과 같은 좌표에 있다 (RS 메시와 중앙 1.5 cm 차이)
  • 치수 재기·도면에 가장 믿을 만한 원천
단점
  • 점이라 가까이 가면 사이가 비어 보인다
  • 라이다 거리 한계(앱 설정 5 m)와 해상도 때문에 작은 물건 경계가 흐리다
  • 유리·거울·검은 면에서 점이 빠지거나 튄다

이 3D 에서 볼 것

숫자: 12,132,505 points (web 1,300,000, 19.5 MB)

③ RealityScan 메시

어떻게 만들었나: 사진 568장을 RealityScan 2.2 리눅스판(arcAI)에 넣었다. 사진만으로는 65장만 한 덩어리로 맞아서, 아이폰 카메라 위치를 RS 사전정보 파일(XMP)로 바꿔 붙이고 '고정'으로 줬다. 이때 아이폰 회전 표기(열 우선, 카메라→세계, ARKit 축)를 RS 가 맞춘 65장과 비교해 확정했다 (회전 차이 중앙 1.68°). 그 뒤 메시(Normal) → 150만 삼각형으로 줄이기. 색은 RS 내보내기가 흰색만 내서, 정점마다 가장 가까운 라이다 점 4개의 색을 입혔다 (97.7% 정점).

장점
  • 가장 촘촘한 표면. 물건 모서리와 작은 물건 모양이 살아난다
  • 메시라 치수·면적 계산과 다른 프로그램 연동이 쉽다
  • 라이다와 같은 좌표, 중앙 1.5 cm 차이
단점
  • 흰 벽·바닥처럼 무늬가 없는 곳은 사진측량이 약해 울퉁불퉁하거나 빈다
  • 리눅스 명령줄에서 텍스처 이미지 저장이 실패했고(Feature not implemented) 정점 색도 흰색만 나와, 라이다 색을 빌려 입혔다. 그래서 글씨·무늬가 흐리다
  • 아이폰 위치를 고정했으므로 위치 오차가 그대로 남는다

이 3D 에서 볼 것

숫자: 568/568 aligned · reprojection 1.03 px · align 60 s · mesh 192 s · colour 74 s · 1,499,250 triangles · web 6.35 MB

④ 가우시안

어떻게 만들었나: 가우시안 스플래팅: 장면을 수백만 개의 작은 반투명 색 얼룩으로 표현하고, 사진과 똑같이 보이도록 얼룩을 학습한다. 아이폰 카메라 위치를 그대로 쓰고(사진 정렬 생략), 라이다 점 388,339개(2 cm 격자)에서 시작했다. 엔진 gsplat 1.5.3 은 이 그래픽카드용 설치판이 없어 CUDA 13 으로 직접 빌드했다. 3만 단계, 사진 8장 중 1장은 학습에서 빼 품질 평가에 썼다. 웹에는 기본 색만 남긴 .splat 으로 줄였다.

장점
  • 사진처럼 보인다. 반짝임·반투명·얇은 물건(케이블)까지 표현
  • 진짜로 방 안을 걸어 다니듯 볼 수 있다
  • 흰 벽처럼 사진측량이 약한 곳도 매끈하게 보인다
단점
  • 면이 아니라 얼룩이라 치수·도면에는 쓰기 어렵다
  • 찍은 방향에서 벗어나면 흐릿한 얼룩이 보인다
  • 아이폰 위치 오차가 그대로 흐림이 된다
  • 학습에 그래픽카드와 수십 분이 든다

이 3D 에서 볼 것

숫자: PSNR 15.43 · SSIM 0.76 · 2,723,832 gaussians · 35 min · web 48.0 MB

⑤ 가우시안 + 라이다 깊이

어떻게 만들었나: ④ 와 같은 데이터에 두 가지를 더했다. (1) 사진마다 보이는 라이다 점을 연결해 두고 학습 때 '그 점까지의 거리'를 맞추게 했다 (깊이 학습). (2) 아이폰 카메라 위치도 학습 중에 조금씩 고치게 했다 (위치 보정). 연구에서 아이폰 라이다 실내에 쓰는 DN-Splatter 와 같은 생각이다. 같은 3만 단계, 같은 평가 사진.

장점
  • 벽·바닥이 라이다 위치에 붙어 떠다니는 얼룩이 줄어야 한다
  • 카메라 위치 보정으로 흐림이 줄어야 한다
  • ④ 와 숫자로 비교할 수 있다 (같은 평가 사진)
단점
  • 여전히 얼룩이라 치수용은 아니다
  • 라이다가 틀린 곳(유리·검은 면)에서는 잘못된 거리에 끌려간다
  • 설정이 하나 늘어난 만큼 학습이 조금 느리다

이 3D 에서 볼 것

숫자: PSNR 처리 중 · SSIM 처리 중 · 처리 중 gaussians · 처리 중 min · web 처리 중 MB

⑥ 라이다 메시

어떻게 만들었나: ② 라이다 점을 1 cm 격자로 줄인 뒤(173만 점), 점마다 면 방향을 추정해 가장 가까운 아이폰 카메라 쪽으로 맞추고, Open3D 의 Poisson 방식으로 매끈한 면을 씌웠다. 점이 드문 곳에 생기는 가짜 면(밀도 하위 3%)은 지우고 100만 삼각형으로 줄였다. 색은 라이다 점 색.

장점
  • 사진측량 없이 라이다만으로 면이 생긴다. 흰 벽도 곧고 매끈하다
  • 치수가 라이다 그대로라 도면·면적에 바로 쓸 수 있다 (면적 합 94.7 m²)
  • 계산이 빠르다 (CPU 2.7분)
단점
  • Poisson 은 구멍을 메우려고 면을 부풀리는 성질이 있어, 문밖·가구 뒤에 없는 면이 생길 수 있다
  • 작은 물건(케이블·펜)은 라이다 해상도 밖이라 뭉개진다
  • 색이 점 색이라 사진보다 흐리다

이 3D 에서 볼 것

숫자: 1,000,000 triangles · 2.7 min (CPU) · web 4.5 MB

⑦ WebODM

어떻게 만들었나: WebODM 의 처리 엔진(ODM 3.8.3, arcAI 에 이미 있는 것)으로 같은 사진 568장을 처리했다. ODM 은 카메라 위치를 GPS 로만 받아서, 아이폰 위치를 임의 원점(위도 1°, 경도 1°, 실제 위치와 무관) 둘레의 GPS 값으로 바꿔 사진 사본에 넣고 'GPS 를 믿어라(--force-gps, 5 cm)' 로 돌렸다. 실내라 정사영상은 생략.

장점
  • 무료 오픈소스, 명령 하나로 메시·텍스처까지
  • 텍스처를 사진에서 직접 입힌다 (RS 리눅스가 못 한 부분)
  • 동두천 드론 때와 같은 엔진이라 비교가 쉽다
단점
  • CPU 로만 돌아 느리다
  • 실내·흰 벽은 RS 와 같은 사진측량 한계
  • 아이폰 위치를 GPS 로 우회해 넣는 꼼수가 필요하다

이 3D 에서 볼 것

숫자: 처리 중 · 처리 중 min · web 처리 중 MB

⑧ 2D 가우시안

어떻게 만들었나: 2D 가우시안(2DGS): 얼룩을 납작한 원판으로 만들어 면에 붙게 학습한다. gsplat 의 2DGS 학습기로 ④ 와 같은 데이터·단계(3만)로 돌렸다.

장점
  • 면에 붙어서 ④ 보다 형태가 또렷하다 (연구 결과)
  • 흰 벽·바닥에서 떠다니는 얼룩이 줄어든다
단점
  • 사진 같은 느낌은 ④ 보다 약간 떨어질 수 있다
  • 웹 뷰어가 2DGS 전용이 아니라 일반 가우시안으로 근사해 보여 준다

이 3D 에서 볼 것

숫자: PSNR 처리 중 · SSIM 처리 중 · 처리 중 min · web 처리 중 MB

⑨ VGGT (AI)

어떻게 만들었나: VGGT(Meta, 2025): 사진 여러 장을 넣으면 AI 가 카메라 위치와 깊이를 한 번에 추정한다. 그래픽카드(16 GB)에 한 번에 16장 정도만 들어가서, 촬영 순서대로 서로 4장씩 겹치는 16장 묶음 22개를 만들어 각각 돌렸다. 묶음마다 AI 가 추정한 카메라 위치를 아이폰 위치에 맞춰(크기·방향·자리) 점을 옮기고 합쳤다. 즉 모양·깊이는 AI, 묶음을 잇는 자리는 아이폰. AI 위치가 아이폰과 15 cm 또는 15° 넘게 다른 묶음 6개는 실패로 보고 뺐다.

장점
  • 사진 해상도라 라이다보다 물건이 또렷하다
  • 빠르다: 방 전체 3분 9초 (묶음 하나 약 10초)
  • 깊이 자체는 센서 없이 사진만으로 나온다. 라이다 없는 폰·카메라에도 쓸 수 있다
단점
  • 혼자서는 크기(m)를 모르고 묶음끼리 잇지 못한다. 이번에는 아이폰 위치가 그 역할을 했다
  • 한 번에 넣을 수 있는 사진 수가 그래픽카드 메모리에 묶인다
  • 묶음 27%(22개 중 6개)가 실패했다. 사진을 흩어 뽑으면 아예 실패 (99 cm, 127°)

이 3D 에서 볼 것

숫자: 방 전체: 16장 묶음 22개 중 16개 사용 · 묶음 위치 차이 중앙 4.7 cm · 방향 5.8° · 라이다와 거리 중앙 3.6 cm · 3분 9초

한눈에 비교

방법추가 처리 시간겉모습치수·도면웹 크기
① 앱 메시0거침대략1.2 MB
② 라이다 점해독만점, 가까이 비어 보임가장 믿을 만함19.5 MB
③ RealityScan6분형태 좋음, 색 흐림좋음 (메시)6.35 MB
④ 가우시안35분사진 같음어려움48.0 MB
⑤ 가우시안 + 깊이처리 중분사진 같음어려움처리 중 MB
⑥ 라이다 메시2.7분매끈, 색 흐림좋음 (라이다 치수)4.5 MB
⑦ WebODM처리 중분처리 중좋음 (메시)처리 중 MB
⑧ 2D 가우시안처리 중분사진 같음, 면 또렷어려움처리 중 MB
⑨ VGGT (AI)3.2분거친 점크기 모름22.5 MB

해 보다 막힌 것 (그대로 남긴다)

다음에 할 것