English
3D Gaussian Splatting

구축 방법 — 3D Gaussian Splatting · v1.3 · 2026-10-27

■ 방법

  • 탭 8개: Overview / A Single Gaussian / Rasterization / Optimization / Capture & SfM / Training in Practice / Web Delivery / Recent Directions. 탭마다 체험 2~3개. 3D 뷰어와 학습기는 여러 탭이 함께 씀
  • 3D 장면(옛 gaussian/에서 그대로): WebGL2 인스턴스 렌더링. 셰이더에서 Σ′ = J W Σ Wᵀ Jᵀ 투영(EWA), 화면 공분산에 0.3 더함, 3σ 사각형, CPU 카운팅 정렬(16비트) 뒤 앞→뒤 합성. 새로 가지치기: 불투명도 × 공분산 대각합이 작은 것부터 뺌
  • 학습기(옛 gaussian/에서 그대로): 2D 가우시안 피팅, 앞→뒤 알파 합성, 손으로 유도한 역전파 + Adam, Kerbl 외(2023) 방식 밀도 제어. 96×96, 시작 64개, 최대 100·250·500개, 2,000단계, MSE, 위치 학습률 0.4 → 0.032 px, 100단계마다 밀도 제어(200~1,400단계), 위치 기울기 문턱 1×10⁻⁶, 불투명도 1% 미만 제거. Web Worker에서 매번 처음부터, 시드 1
  • 새 체험: Σ를 직접 고쳐 양의 정부호가 깨지는 것, 1차 구면 조화 색(2D 단면), 한 픽셀의 앞→뒤 합성표(가우시안 5개, 순서 바꾸기), EWA 투영과 정확한 투영 600점 비교(초점 300 px), 타일 크기별 (타일, 가우시안) 짝 수, 촬영 고리 덮임(둥근 네모 물체 둘레 240점, 10° 이상 다른 두 방향), 기선과 깊이 오차(σ_z = z²σ/(f·b), f 1,500 px, 모의 실험 2,000번), 원 구현 기본 학습 일정, GPU 메모리 대략 추정, 형식별 파일 크기·내려받기 시간, 앨리어싱(점 표본 vs 픽셀 넓이 적분)
  • 메모리 추정의 가정값: 매개변수·기울기·Adam 두 모멘트를 4바이트 실수 4벌, 그리기 버퍼 가우시안당 1 KB, 그림 버퍼 실수 그림 12장. 실제 사용량이 아님
  • LLM 없음. 숫자는 모두 코드가 계산

■ 데이터

  • 3D 장면: 코드로 배치한 가우시안 13,350개(행성 7,000 · 고리 5,000 · 달 650 · 별 700), 시드 20261025. 학습한 장면 아님
  • 예시 그림 3장(노을·도형·줄무늬 공): 코드로 그림(samples.js), 96×96. 성격: 합성
  • 방법 비교 수치: Kerbl 외(2023) 표 1의 Mip-NeRF360 열
  • 학습 일정 값: graphdeco-inria/gaussian-splatting 기본 인자(위치 학습률 1.6e-4 → 1.6e-6, 밀도 제어 500~15,000단계, 불투명도 초기화 3,000단계마다, SH 차수 1,000단계마다)
  • 올린 사진은 브라우저 안에서 96×96으로 줄여 쓰고 보내지 않음

■ 검증

  • 옛 gaussian/ 측정(2026-10-24): 미분 검사 최대 상대오차 0.19%(잘라내기 끔) · 노을 시드 1–3, 최대 500개: 50.99~52.88 dB(348~383개), 모자이크 27.23~27.50 dB, 평균색 15.83 dB
  • 2026-10-26 vision/로 옮긴 뒤 tests/gaussian-splatting/train.cjs 다시 실행: 노을 시드 1, 최대 500개 → 52.31 dB, 348개, 모자이크 27.23 dB, 평균색 15.83 dB (옛 범위 안, 개수·기준값 같음)
  • 헤드리스 Chromium(swiftshader WebGL): 3D 뷰어 13,350개 그리기, 학습기 534단계에 250개 · 43.95 dB(최대 250)
  • 화면: Playwright로 375·1920px × 한·영 × 탭마다 콘솔 오류·넘침·빈 그림·남은 한글 검사

■ 범위

  • 학습은 96×96 한 장, 2D 가우시안 64~500개. 3D 재구성·카메라 추정·SH 1~3차 학습은 하지 않음. 촬영·메모리·용량 계산은 개념을 보이는 근사

■ 출처

  • Kerbl, B., Kopanas, G., Leimkühler, T., Drettakis, G. (2023). 3D Gaussian splatting for real-time radiance field rendering. ACM TOG 42(4)
  • Zwicker, M. et al. (2001). EWA volume splatting. IEEE Visualization
  • Kingma, D.P., Ba, J. (2015). Adam. ICLR
  • Schönberger, J.L., Frahm, J.-M. (2016). Structure-from-motion revisited. CVPR
  • Yu, Z. et al. (2024). Mip-Splatting. CVPR · Huang, B. et al. (2024). 2DGS. SIGGRAPH · Wu, G. et al. (2024). 4DGS. CVPR · Fan, Z. et al. (2024). LightGaussian. NeurIPS · Charatan, D. et al. (2024). pixelSplat. CVPR · Chen, Y. et al. (2024). MVSplat. ECCV · Tang, J. et al. (2024). DreamGaussian. ICLR

■ 이력

  • 2026-10-25 · v1.0 · gaussian.aileelab.com 공개(이름 스플랫 교실)
  • 2026-10-25 · v1.1 · 이름 바꿈(가우시안 스플랫)
  • 2026-10-27 · v1.3 · vision.aileelab.com(Vision & 3D)으로 옮겨 공개 · 탭 8개로 나눔, 체험 추가

How it's built — 3D Gaussian Splatting · v1.3 · 2026-10-27

■ Method

  • 8 tabs: Overview / A Single Gaussian / Rasterization / Optimization / Capture & SfM / Training in Practice / Web Delivery / Recent Directions, each with 2–3 hands-on parts. The 3-D viewer and the trainer are shared by several tabs
  • 3-D scene (unchanged from the former gaussian/ page): WebGL2 instanced rendering; the shader projects with Σ′ = J W Σ Wᵀ Jᵀ (EWA), adds 0.3 to the screen covariance, draws a 3σ quad; CPU counting sort (16-bit) then front-to-back blending. New: pruning removes Gaussians with the smallest opacity × covariance trace first
  • Trainer (unchanged from gaussian/): 2-D Gaussian fitting with front-to-back alpha blending, hand-derived backpropagation + Adam, densification after Kerbl et al. (2023). 96×96, 64 at start, max 100, 250 or 500, 2,000 steps, MSE, position learning rate 0.4 → 0.032 px, densify every 100 steps (steps 200–1,400), position-gradient threshold 1×10⁻⁶, prune below 1% opacity. In a Web Worker from scratch each time, seed 1
  • New hands-on parts: editing Σ directly until it stops being positive definite, degree-1 spherical-harmonic colour (2-D slice), a front-to-back blending table at one pixel (5 Gaussians, reorderable), EWA projection against exact projection of 600 samples (focal 300 px), (tile, Gaussian) pairs by tile size, capture-ring coverage (240 points around a rounded box; two directions ≥ 10° apart), baseline and depth error (σ_z = z²σ/(f·b), f 1,500 px, 2,000 simulated trials), default training schedule of the original code, rough GPU memory estimate, file size and download time by format, aliasing (point sampling vs integrating over the pixel)
  • Memory estimate assumptions: parameters, gradients and two Adam moments as 4 copies of 4-byte floats, render buffers 1 KB per Gaussian, image buffers 12 float images. Not measured usage
  • No LLM. Every number is computed by code

■ Data

  • 3-D scene: 13,350 Gaussians placed by code (planet 7,000 · ring 5,000 · moons 650 · stars 700), seed 20261025. Not a trained scene
  • Three example images (sunset, shapes, striped ball): drawn by code (samples.js), 96×96. Synthetic
  • Method comparison: Mip-NeRF360 columns of Kerbl et al. (2023), Table 1
  • Schedule values: default arguments of graphdeco-inria/gaussian-splatting (position lr 1.6e-4 → 1.6e-6, densify 500–15,000, opacity reset every 3,000, SH degree up every 1,000)
  • Uploaded photos are reduced to 96×96 in the browser and sent nowhere

■ Validation

  • Earlier gaussian/ measurements (2026-10-24): gradient check worst relative error 0.19% (cutoffs off) · sunset, seeds 1–3, max 500: 50.99–52.88 dB (348–383 Gaussians), mosaic 27.23–27.50 dB, mean colour 15.83 dB
  • Re-run after the move to vision/ (2026-10-26), tests/gaussian-splatting/train.cjs: sunset, seed 1, max 500 → 52.31 dB, 348 Gaussians, mosaic 27.23 dB, mean colour 15.83 dB (within the earlier range; count and baselines identical)
  • Headless Chromium (swiftshader WebGL): the 3-D viewer draws 13,350 Gaussians; trainer at step 534 with 250 Gaussians, 43.95 dB (max 250)
  • Screens: Playwright at 375 and 1920 px × Korean/English × every tab, checking console errors, overflow, blank plots and leftover Korean

■ Scope

  • Training fits one 96×96 image with 64–500 2-D Gaussians. No 3-D reconstruction, camera estimation or SH degrees 1–3 are learned. Capture, memory and size calculators are concept-level approximations

■ Sources

  • Kerbl, B., Kopanas, G., Leimkühler, T., Drettakis, G. (2023). 3D Gaussian splatting for real-time radiance field rendering. ACM TOG 42(4)
  • Zwicker, M. et al. (2001). EWA volume splatting. IEEE Visualization
  • Kingma, D.P., Ba, J. (2015). Adam. ICLR
  • Schönberger, J.L., Frahm, J.-M. (2016). Structure-from-motion revisited. CVPR
  • Yu, Z. et al. (2024). Mip-Splatting. CVPR · Huang, B. et al. (2024). 2DGS. SIGGRAPH · Wu, G. et al. (2024). 4DGS. CVPR · Fan, Z. et al. (2024). LightGaussian. NeurIPS · Charatan, D. et al. (2024). pixelSplat. CVPR · Chen, Y. et al. (2024). MVSplat. ECCV · Tang, J. et al. (2024). DreamGaussian. ICLR

■ History

  • 2026-10-25 · v1.0 · public at gaussian.aileelab.com (named 스플랫 교실)
  • 2026-10-25 · v1.1 · renamed (가우시안 스플랫)
  • 2026-10-27 · v1.3 · released at vision.aileelab.com (Vision & 3D) · split into 8 tabs, hands-on parts added