4D GAUSSIAN SPLATTING / ZERO TO HERO
From your first pixel
to a renderer you understand.从第一个像素,
到真正理解渲染器。
Twelve connected lessons. Start with a soft brush, build the forward renderer, send pixel errors backward, and carry the trained model into Rust/wgpu.十二节连贯课程。从一支柔和画笔出发,搭起前向渲染,把像素误差传回参数,再把训练模型带进 Rust/wgpu。
THE WHOLE JOURNEY完整路线
We learn the forward renderer first so the training loop has something concrete to differentiate. Follow the order, or jump to a lesson without unlocking anything.先学前向渲染,训练时才知道对哪些计算求导。可以按顺序学习,也可以直接跳转,无需解锁。
CHAPTER篇章
See how pixels are made看懂像素怎样形成
From photographs to a scene you can move through从照片,到可以自由观察的场景
Explain what is learned, what is rendered, and why the two use the same forward function.说清楚模型学什么、渲染算什么,以及为什么二者共用同一个前向函数。
Read · experiment · explain →阅读 · 实验 · 解释 →Why a Gaussian is a soft brush为什么 Gaussian 像一支柔和的画笔
Build the Gaussian weight from subtraction, division, squaring and an exponential; then understand covariance.用减法、除法、平方和指数搭出高斯权重,再理解协方差。
Read · experiment · explain →阅读 · 实验 · 解释 →How a 3D brush lands on a 2D screen三维画笔怎样落到二维屏幕上
Derive perspective from similar triangles and see why projecting shape needs a Jacobian.从相似三角形推透视,理解为什么投影形状需要 Jacobian。
Read · experiment · explain →阅读 · 实验 · 解释 →How overlapping splats become one pixel许多重叠的 Splat 怎样变成一个像素
Compute front-to-back transmittance, explain ordering, and map the result to GPU blending.算清前到后的透射率、解释排序,并对应 GPU 混合。
Read · experiment · explain →阅读 · 实验 · 解释 →CHAPTER篇章
Add appearance and time加入外观与时间
One direction, three independent color sums一个方向,三组独立的颜色求和
Read SH as weighted directional patterns and explain why separate channels produce a colored sphere.把 SH 看成方向图案的加权组合,解释独立通道为什么能组成彩色球。
Read · experiment · explain →阅读 · 实验 · 解释 →What the fourth dimension actually changes第四个维度到底改变了什么
Evaluate an STG-Lite record at a timestamp and distinguish it from deformation and joint 4D Gaussians.在某个时间求值 STG-Lite,并分清形变与联合四维高斯。
Read · experiment · explain →阅读 · 实验 · 解释 →CHAPTER篇章
Learn from observations从观测中学习
Good training starts before the first gradient好训练从第一步梯度之前就开始
Assemble an image–camera–time training sample and prevent coordinate, resizing and evaluation mistakes.组成图像—相机—时间训练样本,避免坐标、缩放和评估错误。
Read · experiment · explain →阅读 · 实验 · 解释 →How a pixel tells a parameter to move一个像素怎样告诉参数该往哪改
Derive a complete scalar gradient and connect its chain rule to the real splat evaluator.推完一条完整的标量梯度链,再对应真实 Splat 求值器。
Read · experiment · explain →阅读 · 实验 · 解释 →Watch a model actually learn看着一个模型真正学起来
Run genuine updates, distinguish forward/backward/optimizer stages, and read what the loss does and does not prove.运行真实更新,分清前向、反向、优化器,并正确解读损失曲线。
Read · experiment · explain →阅读 · 实验 · 解释 →Why training sometimes adds or removes Gaussians为什么训练有时要增删 Gaussian
Distinguish optimizing existing parameters from changing representation capacity, without treating clone/split as exact preservation.分清调整现有参数与改变表示容量,并理解复制或分裂并不严格保图像不变。
Read · experiment · explain →阅读 · 实验 · 解释 →CHAPTER篇章
Ship and explain the renderer运行并解释渲染器
A model file is a promise to the renderer模型文件是对渲染器的一份约定
Trace a trained number through a binary record, activation and shader field; distinguish export from a resumable checkpoint.把训练数字追踪到二进制记录、激活值和 shader 字段,分清导出文件与训练检查点。
Read · experiment · explain →阅读 · 实验 · 解释 →Train, export, render—and defend every step训练、导出、渲染,并解释每一步
Run the repository’s end-to-end exercise and explain how to integrate and profile its Rust/wgpu render pass.跑通仓库端到端练习,说清 Rust/wgpu 渲染通道的接入与性能测量。
Read · experiment · explain →阅读 · 实验 · 解释 →What you will be able to explain学完后,你应该能讲清什么
Where every pixel comes from. How a loss changes a parameter. What time changes in STG-Lite. Which bytes the renderer expects. Why an implementation is wrong or slow.每个像素从哪里来,损失怎样修改参数,时间怎样进入 STG-Lite,渲染器需要哪些字节,以及实现为什么出错或变慢。
The real viewer uses a pretrained STG-Lite model. The course adds synthetic experiments and links the existing full derivations; it does not claim that the browser experiments reconstruct the real scene.真实播放器使用预训练 STG-Lite 模型。本课程增加合成实验并链接已有完整推导,不把浏览器实验说成真实场景重建。