The course content grouped into seven blocks, with the learning goals of each block and where to find them. The priorities come from the first exam and the hints for the resit.

Scope (from the organization slide, this is binding): Lecture 1 Intro, 2 Camera Models and Coordinate Systems, 3 Classical 3D Reconstruction, 4 Stereo Vision and Depth Estimation, 5 Surface Reconstruction and Procrustes, 6 Neural Fields and Point-Based Representations, 7 NeRF, 8 Gaussian Splatting and Point Clouds, 9 Advanced Learning-Based 3D Reconstruction, 10 and 11 Generative Models, 12 Recap.

Legend

πŸ”΄ was in the exam Β· 🟠 hint for the resit or high probability Β· 🟑 covers the gap of forgotten tasks Β· ⭐ high value

Skill: Calculate, Explain, Compare, Transfer (apply to a new scenario), Symbols (name every symbol of a given formula), MC (enough for multiple choice).

flowchart LR
  E["1 Β· Block E<br/>NeRF / 3DGS πŸ”΄"] --> CD["2 Β· Blocks C + D<br/>surfaces, fields πŸ”΄"]
  CD --> A["3 Β· Block A<br/>calculations πŸ”΄"]
  A --> G["4 Β· Block G<br/>generative πŸ”΄"]
  G --> F["5 Β· Block F<br/>DUSt3R πŸ”΄"]
  F --> B["6 · Block B<br/>epipolar, SfM 🟠"]
  B --> R["7 Β· Recap<br/>gap scan"]
  1. Block E (NeRF / 3DGS): confirmed in the exam, many points.
  2. Blocks C + D (surfaces + fields): the transfer task point cloud β†’ mesh.
  3. Block A (calculations): quick, safe points.
  4. Block G (generative models, TRELLIS): confirmed in the exam, plus the diffusion hints.
  5. Block F (DUSt3R, point maps).
  6. Block B (epipolar geometry, 8-point, bundle adjustment): named in the hints, not confirmed in the first exam.
  7. At the end: go through all Self-Test sections as a gap scan.

Block A: Camera Model and Calculations πŸ”΄

Lecture 2.1, Lecture 2.2

Learning goalSkill
Rearrange the pinhole model in both directions (link)Calculate ⭐
Intrinsics: focal length , principal point , skew, pixel size (link)Calculate + MC
The chain world β†’ camera β†’ film β†’ pixel (link)Explain
Extrinsics , ; homogeneous coordinates (link, link)Explain
Rotation representations: Euler, axis-angle, rotation matrix, quaternions (no singularities, 4 numbers, good for interpolation) 🟑 (link)MC

Practice

3 to 5 tasks of the type β€œmove the camera back until two objects appear equally tall” and β€œcompute from , , ”: Worked Examples.

Block B: Classical Reconstruction and Stereo 🟠🟑

Lecture 3, Lecture 4

Learning goalSkill
Epipolar geometry: derive the essential matrix (calibrated) and the fundamental matrix with (link, link)Explain ⭐
8-point algorithm: why SVD (overdetermined homogeneous system β†’ smallest singular vector), why a second SVD (enforce rank 2) (link, link)Explain ⭐
Image rectification: after rectification the image planes differ only by a translation (link)Explain
Stereo matching: disparity, , similarity metrics SAD / SSD / NCC (link)MC
Multi-view stereo, monocular depth (data / architecture / training objective) (link)Explain
SfM pipeline + bundle adjustment: joint refinement of cameras and 3D points via the reprojection error (link, link)Explain ⭐

Block C: Surface Reconstruction and Alignment πŸ”΄πŸŸ 

Lecture 5

Learning goalSkill
Implicit vs. explicit representations, pros and cons (link)MC + Explain
Level sets: storage , narrow band as the fixExplain
Point clouds: unordered, no connectivity, uneven density, incomplete (link)MC
Marching cubes / squares: how a scalar field becomes a mesh (link)Transfer ⭐
Poisson surface reconstruction: oriented points β†’ vector field β†’ β†’ octree + multigrid; screened PSR adds a data term (link)Explain ⭐
Procrustes: translation = centroid difference, rotation = SVD of the cross-covariance, scale = quotient of sums; know the notation (link)Explain ⭐
ICP: alternate correspondences and Procrustes; needs a good initialization (link)Explain
Subdivision surfaces (Catmull-Clark, Loop) 🟑 (link)MC

Block D: Neural Fields and Point-Based Learning πŸ”΄πŸŸ 

Lecture 6.1, Lecture 6.2

Learning goalSkill
Occupancy, UDF, SDF: differences and when to use which (link)Explain ⭐
Implicit surface with a network: training vs. inference (link)Transfer ⭐
Why an SDF needs inside/outside β†’ watertight GT; workarounds (normals + PSR, UDF / NDF)Transfer ⭐
PointNet / PointNet++: permutation invariance, hierarchical set abstraction (link, link)Explain
Point Transformer: vector attention over kNN neighborhoods, relative positional encoding via an MLP (link)MC

Block E: Neural Rendering πŸ”΄ (highest priority)

Lecture 7, Lecture 8

Learning goalSkill
Volume rendering equation (NeRF): name every symbol, , , , , (link)Symbols ⭐⭐
Explain transmittance and density intuitively (link)Explain ⭐⭐
NeRF input/output ; positional encoding; view dependence (link)Explain
3DGS rendering equation: every symbol, , / opacity, , SH color (link)Symbols ⭐⭐
Covariance and why (stays positive semi-definite, ellipsoid) (link)Explain ⭐
Relation to the Gaussian distribution (link)Explain ⭐
NeRF vs. 3DGS: implicit vs. explicit, ray marching vs. rasterization, speed, memory, editing, training time, quality (link)Compare ⭐⭐
Splatting pipeline: project to 2D Gaussians, tile-based rasterization, sorting, adaptive density control (link, link)Explain

This was exam task 4, described as β€œquite doable”. Safe points here.

Block F: Learning-Based Reconstruction πŸ”΄πŸŸ‘

Lecture 9

Learning goalSkill
Point map: dense, pixel-aligned, one 3D point per pixel, convertible to depth (link)Explain ⭐
Point cloud vs. point map in one sentenceMC + Explain ⭐
DUSt3R: two unposed, uncalibrated images β†’ two point maps in camera 1’s frame; Siamese encoder + cross-attention decoder; normalized regression loss (link, link)Explain ⭐
MASt3R: metric point maps, extra matching head, reciprocal NN matching; pairwise β†’ global alignment (link)MC
Why DUSt3R lags on DTU: regression vs. subpixel triangulation, no GT poses, zero-shot (link)Explain
Classical vs. learned: epipolar geometry / triangulation / BA vs. matching / mono depth / cross-view attention (link)Compare
Focal length from point maps (Weiszfeld) 🟑 (link)MC

Block G: Generative Models πŸ”΄

Lecture 10, Lecture 11

Learning goalSkill
DDPM: reconstruct algorithms 1 and 2 line by line, reason about (slides 33, 35) 🟠 (link)Explain ⭐⭐
DDPM β†’ DDIM (far fewer sampling steps, not Markovian) (link)MC
Flow matching vs. diffusion 🟠 (link)Compare ⭐
Structured vs. unstructured latents: spatially aligned / interpolation / locality vs. VecSet / structure in the features / transformer friendly (link)Compare ⭐⭐
Why many latents instead of one global latent (fine details)Explain ⭐
Structure types: voxel and triplaneMC
TRELLIS / SLAT: features on active voxels (those that intersect the surface); grid = coarse geometry, features = detail; one latent β†’ 3DGS, NeRF, mesh (link)Explain ⭐⭐
Design axes: input condition / output representation / explicit vs. latent diffusion / generative backbone (link)Transfer ⭐
Zero-1-to-3: diffusion for novel views, conditioned on the image and the relative extrinsics (link)Explain
Hunyuan3D 2.0: VecSet based, importance sampling at edges, farthest point sampling, SDF via cross-attention 🟑 (link)MC
Image-conditioned point cloud diffusion (PC²): enrich points with projected image features 🟑 (link)MC
Combine pieces: depth + diffusion for the back of a scene 🟠 (link)Transfer ⭐

Two Things to Train Separately

1. The transfer schema

Task 3 showed that knowing marching cubes is not enough: you have to draw a pipeline and separate training from inference. Practice this on 3 or 4 made-up scenarios, for example:

  • a robot sees a mug from one side and needs its full mesh
  • a phone video of a room should become a real-time viewable 3D scene
  • two holiday photos without camera information should give a 3D point cloud

2. Parsing the task text

The biggest loss of points in the first exam was tactical. Bring a highlighter, read every task twice, number the hidden sub-questions in the text and tick them off. See Exam tactics.