🗒️ 3d-research study notebook on 3D representations EN · IT

Notebook

3D representations, from Zwicker to Gaussian Splatting

Interactive notes to understand (and remember) how 3DGS works: every lesson has manipulable figures — move the sliders, drag things around, train a model in the browser.

How to use — serve the folder over HTTP (the demos use ES modules from CDN): python -m http.server 8010 from the root, then open http://localhost:8010/. An internet connection is required (Three.js and KaTeX come from CDN).

Lessons

Experiments

The research logbook: what we tried on our data, which decisions we made and which paths we abandoned (and why). It is the empirical complement to the lessons — and the shared memory for doing research together: before repeating an attempt, check here first.

3D Graphics

Outside the splatting thread: "classic" real-time graphics, as a tool to see the rendering pipeline. Interactive Three.js scenes where what matters is not just the result, but how the GPU gets there — opening up the G-buffer and its passes.

Demo

The best-so-far 3DGS scene, explorable in the browser: the assets come from S3, the viewer (Spark + three.js) runs entirely in the page.

Why this notebook

It was born out of the 3d-viewer work (Potree, the flat renderer, and the 3DGS test on the GPU box): these concepts genuinely matter for deciding how to render and stream our reconstructions. The thesis that ties all the lessons together:

Thesis — in traditional gaussian splatting the Gaussian is a reconstruction filter applied to measured geometry; in 3DGS it is a latent parameter of a generative image model, estimated by gradient descent through a differentiable renderer. Same primitive, two epistemologies: forward rendering vs inverse problem.

The manim/ folder: scene scripts to generate video versions of the animations (instructions in the folder's README).