Blueprint
All lectures Lab

Blueprint · A field course on 3D & 4D reconstruction · Lecture 01

What does it mean to reconstruct the world?

Course stance. We study this as a proper graduate-level computer vision course — but with one difference: the ultimate objective is to understand the field well enough to identify and develop original research for CVPR. I assume you are starting from zero in 3D computer vision while being comfortable learning mathematics, deep learning, and optimization. For every major concept we cover the intuition, the mathematical derivation, the implementation, the foundational papers, the modern developments, and the limitations — and we keep distinguishing what previous researchers have already solved from what remains an open problem. This lecture develops the foundations, including our first real equations for reconstructing 3D from photographs, and explains why 4D is significantly harder.

Our learning roadmap

Eleven modules, in order. Module 01 is today’s lecture; everything after it is scaffolding we will fill in as the course progresses. The animations marked below are just the shape of the course — the content of each lecture will be developed in full, exactly like this one.

Module 01TodayFoundations

Pixels, geometry, depth, cameras, projection, ambiguity.

Module 02NextClassical 3D reconstruction

Stereo vision, triangulation, SfM, SLAM, bundle adjustment.

Module 03Upcoming3D representations

Point clouds, meshes, voxels, occupancy fields, SDFs.

Module 04UpcomingNeural 3D reconstruction

NeRF, volume rendering, differentiable rendering.

Module 05UpcomingGaussian splatting

3DGS, Gaussian projection, optimization and rasterization.

Module 06Upcoming3D foundation models

Depth Anything, DUSt3R, MASt3R, VGGT, VGGT-Ω.

Module 07Upcoming4D fundamentals

Scene flow, optical flow, motion, temporal correspondence.

Module 08UpcomingNeural 4D reconstruction

D-NeRF, dynamic radiance fields, K-Planes, 4DGS.

Module 09UpcomingModern 4D architectures

MoRe, Any4D, 4RC, feed-forward reconstruction.

Module 10UpcomingEvaluation and benchmarks

Geometry, motion, temporal consistency, uncertainty.

Module 11UpcomingOpen research problems

Failure modes, research hypotheses, CVPR experiments.

We’ll develop the foundations today, including our first real equations for reconstructing 3D from photographs — and explaining why 4D is significantly harder.

1. Understanding the problem before the models

Imagine a photograph of a street. The image contains buildings, roads, windows, and possibly vehicles. You can recognize these objects immediately.

But imagine I ask you something different. Can you tell me the exact distance from the camera to every building? Can you reconstruct the building surfaces that aren’t visible? Could you move a virtual camera around the scene and see what the street looks like from a completely different viewpoint?

A regular image cannot directly provide all that information.

It records a two-dimensional projection of a three-dimensional world. This creates the fundamental problem of 3D reconstruction.

I = R(S, C) · one photograph invert? Ŝ — many worlds match
FIG 01Two worlds, one photographNOT TO SCALE
Conceptual diagram: recovering a 3D representation from an observed image. The reconstructed scene might be represented as points, surfaces, or a continuous field.

Mathematically, let the real three-dimensional scene be \(\mathcal S\), the camera parameters be \(C\), and the image formation process be \(\mathcal R\). The camera produces an image:

(1) \[ I=\mathcal R(\mathcal S,\;C) \]
  • \(I\) is the observed photograph.
  • \(\mathcal S\) is the 3D scene, including its geometry and appearance.
  • \(C\) describes the camera position, orientation, and optical properties.
  • \(\mathcal R\) is the process of converting the 3D scene into pixels, including visibility, lighting, and projection.

This is the forward problem: going from a known world to an image. Reconstruction reverses that process:

(2) \[ I \longrightarrow \widehat{\mathcal S} \]

The symbol \(\widehat{\mathcal S}\) means our estimate of the actual scene. And here is the first fundamental insight:

Generating an image from known 3D geometry is comparatively well-defined. Recovering the original 3D geometry from an image is not.

Why? Because many different 3D scenes can produce exactly the same photograph. We’ll quantify that claim precisely in §4.

2. What is the difference between 3D and 4D?

Consider a ball on a table.

3D — one instant X = (3, 1, 1) Where is the ball? What radius? What shape is the table? 4D — a scene that evolves t = 0 t = 1 t = 2 X(t) = X₀ + vt
FIG 02A ball on a table, in 3D and in 4DNOT TO SCALE
3D asks where is the ball? How does it move? Where is it at each timestamp? — the last question is the extra one that 4D adds.

In 3D, a point has three spatial coordinates:

(3) \[ \mathbf X= \begin{bmatrix} X\\ Y\\ Z \end{bmatrix} \]

Here \(X,Y,Z\) specify its position along the three spatial axes. In 4D reconstruction, the scene evolves with time \(t\):

(4) \[ \mathbf X(t)= \begin{bmatrix} X(t)\\ Y(t)\\ Z(t) \end{bmatrix} \]

For a ball moving at constant velocity, we could write:

(5) \[ \mathbf X(t)=\mathbf X_0+\mathbf v\,t \]

where \(\mathbf X_0\) is its initial position, \(\mathbf v\) is its 3D velocity vector, and \(t\) is elapsed time. For example: \(\mathbf X_0=(1,2,3)\), \(\mathbf v=(0.5,0,0)\). Then at \(t=2\) seconds:

\[ \mathbf X(2)=(2,2,3) \]

The ball has moved one spatial unit along the X-axis. For a deforming object, such as a waving cloth, the problem is more complex: thousands of points may change position differently over time. A useful abstract representation is:

(6) \[ \mathcal S(t)=\{\,\mathcal G(t),\;\mathcal A(t)\,\} \]

Here \(\mathcal G(t)\) describes the geometry at time \(t\), and \(\mathcal A(t)\) describes its appearance — which might also change with time. The resulting sequence of observations is:

(7) \[ I_t=\mathcal R(\mathcal S(t),\,C_t) \]

Notice that the camera \(C_t\) can move as well. That introduces one of the hardest challenges in 4D reconstruction:

The central difficulty

We must distinguish movement of the world from movement of the camera. We return to exactly this in §8, where the coupling becomes an equation.

Property3D4D
GeometryStatic or single instantChanges over time
Typical inputOne or multiple imagesVideo or synchronized images
DepthRequiredRequired across time
Camera poseOften unknownMay change every frame
Object motionNot necessarily modeledCentral to the task
Point correspondenceAcross camera viewsAcross views and timestamps
ExampleReconstruct a houseReconstruct a walking person

One subtle point: 4D reconstruction does not always output a single, persistent, physically accurate mesh. Some methods output depth maps and motion fields; others represent a time-varying radiance field, Gaussian particles, or deforming surfaces. These are related but different outputs, and the differences will matter enormously when we read research papers (§10).

3. How does a camera convert 3D into 2D?

This is probably the most important mathematical foundation of the entire field. If you understand this section properly, the equations in NeRF, Gaussian splatting, DUSt3R, VGGT, and many 4D reconstruction models will become much easier to understand.

3.1 · The pinhole camera model

Imagine a camera looking at a ball. Light from the ball travels toward the camera and is projected onto an image plane.

IMAGE PLANE C p P = (X, Y, Z) f Z (depth along the viewing axis) X x x = f·X/Z
FIG 03The pinhole bargain: depth traded for geometryNOT TO SCALE
The camera center \(C\), a 3D point \(P\), and its projected image point \(p\). The focal length is \(f\) and the point’s depth is \(Z\).

Let a point in camera coordinates be \(P=(X,Y,Z)\). The camera looks along the positive \(Z\) direction in our convention. Suppose the image plane is located at distance \(f\) from the camera center. Using similar triangles, \(\dfrac{x}{f}=\dfrac{X}{Z}\) — and rearranging:

(8) \[ x=f\,\frac{X}{Z} \]
(9) \[ y=f\,\frac{Y}{Z} \]

These are the fundamental perspective projection equations.

SymbolMeaning
\(X,Y,Z\)Location of a 3D point relative to the camera
\(Z\)Depth along the camera’s viewing axis
\(f\)Focal length, expressed in image-coordinate units
\(x,y\)Projected 2D image-plane coordinates

Notice something important:

\[ x \propto \frac{1}{Z} \]

As depth increases, the apparent size or displacement in the image becomes smaller. This explains why distant buildings look small even when they’re physically enormous.

3.2 · Moving from image-plane coordinates to pixels

Actual digital images don’t use coordinates centered at the camera’s optical axis. They use pixel coordinates. A common simplified formulation is:

(10) \[ u = f_x\,\frac{X}{Z}+c_x \]
(11) \[ v = f_y\,\frac{Y}{Z}+c_y \]

Here \(u,v\) are pixel coordinates, \(f_x,f_y\) are focal lengths measured in pixels, and \(c_x,c_y\) are the principal point coordinates — where the optical axis intersects the image plane.

For example, suppose \(f_x=800\), \(X=0.5\) m, \(Z=4\) m, \(c_x=640\). Then \(u=800\cdot\tfrac{0.5}{4}+640 = 740\). The point appears at horizontal pixel 740.

Now double the object’s depth and horizontal coordinate: \(X=1\) m, \(Z=8\) m. The result is still \(u=800\cdot\tfrac{1}{8}+640=740\).

Two different 3D positions · one pixel

3D points \((0.5, 4)\) and \((1.0, 8)\) produced exactly the same image coordinate. This observation leads to the central ambiguity of monocular reconstruction — the subject of §4.

4. Why can’t a single image uniquely determine depth?

Suppose I observe a pixel at horizontal location \(u\). From the projection equation (10):

(12) \[ X=\frac{u-c_x}{f_x}\,Z \]

For every possible positive value of \(Z\), there is a corresponding value of \(X\). For example, all of these are valid for the pixel \(u=740\):

Depth \(Z\)3D coordinate \(X\)Projected pixel \(u\)
2 m0.25 m740
4 m0.50 m740
8 m1.00 m740
16 m2.00 m740

This means one pixel corresponds not to a unique 3D point, but to an entire ray extending from the camera into the world. In vector form:

(13) \[ \mathbf X(Z)=Z\,K^{-1}\,\widetilde{\mathbf u}, \qquad \widetilde{\mathbf u}=[u,\;v,\;1]^\top \]

Here \(\widetilde{\mathbf u}\) is the pixel in homogeneous coordinates and \(K\) is the camera intrinsic matrix, which we will derive in full in §6.

IMAGE PLANE C u = 740 px (0.25 m, 2 m) (0.5 m, 4 m) (1.00 m, 8 m) (2.00 m, 16 m) same u for every one of them — the squares grow exactly as fast as their depth
FIG 04All Z’s are equalNOT TO SCALE
Every point on this one dashed ray projects to pixel \(u=740\). Larger objects farther away are indistinguishable from smaller objects nearer — one pixel, a one-parameter family of worlds.

The scale ambiguity

Even for a calibrated camera, projecting a point and projecting the same point scaled by any positive constant can produce the same pixel:

(14) \[ \pi(\mathbf X)=\pi(\lambda\,\mathbf X), \qquad \lambda > 0 \]

where \(\pi\) is perspective projection. This is one form of scale ambiguity. There are other ambiguities too: hidden surfaces, material properties, lighting, and even object shape can be uncertain.

So how do single-image depth models work?

Systems such as Depth Anything V2 (NeurIPS 2024) recover depth by learning strong statistical priors from large datasets: roads are generally approximately flat, people have typical shapes, perspective patterns correlate with depth. The model uses learned knowledge to select a likely 3D interpretation.

But that is not the same as physically measuring depth from a photograph. This is why we must distinguish relative depth, metric depth, and plausible geometric completion — three different claims that are easy to blur in a paper’s abstract.

5. How do multiple images help us recover real 3D?

Here is where the reconstruction problem becomes much more constrained. Imagine photographing the same stationary object from two different positions. Because the camera moves, the object appears in different pixel locations in the two images. This displacement is called disparity in rectified stereo vision.

5.1 · Stereo triangulation

Suppose we have two calibrated, horizontally aligned cameras. Their distance apart is the baseline \(B\), and both have focal length \(f\). For a 3D point at depth \(Z\), the disparity between its two pixel positions is:

(15) \[ d = u_L-u_R \]

For rectified stereo, we obtain:

(16) \[ d=\frac{f\,B}{Z} \]
(17) \[ Z=\frac{f\,B}{d} \]

This equation is incredibly important. It tells us that two views provide geometric information about depth through parallax.

baseline B O_L O_R u_L u_R d = u_L − u_R Z P Z = f · B / d
FIG 05Two eyes buy depthSCHEMATIC · NOT TO SCALE
Two calibrated, rectified cameras separated by baseline \(B\) observe the same point. The depth \(Z\) is recoverable from the disparity \(d\) between the two projections.

Numerical example. Suppose \(f=800\) px, \(B=0.2\) m, \(d=40\) px. Then \(Z=\dfrac{800\cdot 0.2}{40}=4\) m. We have recovered the object’s depth using image correspondence and known camera geometry — and unlike ordinary single-image estimation, this depth is constrained by an observed displacement between two camera views.

But there are still failure modes:

What can still go wrong
  • What if the same pixel can’t be matched across images (occlusion, out-of-frame)?
  • What if the object is textureless, so correspondence is ambiguous?
  • What if the cameras barely move (small parallax)?
  • And what if the object itself is moving between the two photographs?

That final question takes us directly toward 4D reconstruction (§8).

5.2 · Why distant objects are difficult

Consider \(Z=\dfrac{fB}{d}\). The sensitivity of depth to disparity is:

(18) \[ \frac{\partial Z}{\partial d} =-\frac{f\,B}{d^{2}} \]

For a small disparity error \(\Delta d\):

(19) \[ \Delta Z\approx-\frac{f\,B}{d^{2}}\,\Delta d \]

As disparity becomes small, depth estimation becomes increasingly sensitive to correspondence errors. This is one reason distant objects, low-parallax camera motion, and repetitive surfaces are challenging. Even with multiple images, reconstruction is not automatically reliable.

Lab 01 · Rays, pixels & parallax

Three benches · Lecture 01

Interactive · optional

Every slider below evaluates an equation you already met: Bench A is §4 (one pixel, one ray of depths), Bench B is §5 (depth from disparity), Bench C is a preview of §8 (who actually moved?). Nothing is hidden — all readouts are computed live from (8), (10), (17) and (19).

A · Bench The same pixel, many points

Keep the observed pixel fixed at \(u=740\) px (\(c_x=640\)). Slide the candidate depth \(Z\) and the focal length; the point that projects there is always \(X=(u-c_x)\,Z/f_x\) — an entire ray of 3D points.

800 px
4.0 m
IMAGE PLANE 1 m 2 m 4 m 8 m 16 m 24 m C (camera) X(Z) = 0.125·Z u = 740 px
matched X
0.500 m
projected u
740 px
verdict
same pixel — any Z on the ray explains it

B · Bench Triangulation under error

Depth from two views: \(Z=fB/d\), with sensitivity \(\partial Z/\partial d=fB/d^{2}\). Watch the error budget explode as the disparity shrinks.

800 px
0.20 m
40 px
baseline B O_L O_R disparity d = u_L − u_R 1 m 2 m 4 m 8 m 16 m 24 m +
depth Z
4.00 m
sensitivity ∂Z/∂d
0.100 m/px
±2 px matching error
± 0.20 m

The ruler on the right shows why distant scenes hurt: push \(d\) down and the rays flatten toward parallel — the near/far distinction lives in a handful of pixels.

C · Bench Who moved? The ambiguity machine

Fixed scene: \(f_x=800\) px, \(c_x=640\), point \(X=1\) m, \(Z=10\) m, so \(u=720\) px. Slide the observed image shift \(\Delta u\); then split the cause between camera and world. Every split reproduces the same image.

12 px
0 % world
world motion
still
camera motion
0.150 m left
split s
0 = camera · 1 = world
Camera only

world: still · camera: 0.150 m ←

Shared

world: · camera:

World only

world: · camera: still

Δu constrains only the difference \(\delta_{\text{world}}-\delta_{\text{camera}}\). Any split — and the checkpoint question at the end of this lecture — has no unique answer from pixels alone.

Worked example · depth from two pixels

Worked · stereo depth and its error budget
  1. A calibrated, rectified stereo pair observes the same physical corner of a lamppost at \(u_L=940\) px in the left image and \(u_R=900\) px in the right image. What is the lamppost’s depth?
  2. Disparity comes first — equation (15): \(d = u_L - u_R = 940 - 900 = 40\) px.
  3. The pair is calibrated: \(f=800\) px, \(B=0.20\) m. Apply (17): \(Z = fB/d = \dfrac{800\times 0.20}{40}\).
  4. \(Z = \dfrac{160}{40} = 4.0\) m. A constrained geometric measurement — every factor is either calibrated or observed.
  5. Now the error budget — equation (18): \(\dfrac{\partial Z}{\partial d} = -\dfrac{fB}{d^2} = -\dfrac{160}{1600} = -0.1\) m per pixel of disparity.
  6. A 2-pixel matching error swings depth by \(\pm 0.2\) m — 5% of \(Z\), for free. At \(d=8\) px, the same 2-px error would cost \(\pm\tfrac{160}{64}\times 2 = \pm 5\) m. Distant structure is fragile.

6. The complete 3D camera equation

Now let’s introduce the equation that appears throughout research in 3D computer vision:

(20) \[ \lambda \begin{bmatrix} u\\ v\\ 1 \end{bmatrix} = K \begin{bmatrix} R & t \end{bmatrix} \begin{bmatrix} X_w\\ Y_w\\ Z_w\\ 1 \end{bmatrix} \]

This equation combines the camera’s internal geometry, position, orientation, and perspective projection. Let’s unpack it.

6.1 · Camera intrinsics

The camera intrinsic matrix is usually written:

(21) \[ K= \begin{bmatrix} f_x & 0 & c_x\\ 0 & f_y & c_y\\ 0 & 0 & 1 \end{bmatrix} \]

This common form assumes zero pixel skew; more general formulations can include skew. The intrinsic parameters tell us how the camera maps points expressed in camera coordinates onto pixel coordinates — exactly equations (10)–(11) in matrix clothing.

6.2 · Camera extrinsics

The extrinsic parameters are the rotation \(R\) and translation \(t\). A 3D point in the world coordinate system is transformed into camera coordinates using:

(22) \[ \mathbf X_c=R\,\mathbf X_w+t \]
  • \(\mathbf X_w\) is the point in world coordinates.
  • \(\mathbf X_c\) is the same point relative to the camera.
  • \(R\in SO(3)\) is a \(3\times 3\) rotation matrix.
  • \(t\in\mathbb R^3\) is a translation vector.

We’re using the world-to-camera convention. Under this convention, the camera center in world coordinates is \(-R^\top t\).

Convention warning

Some papers and codebases use camera-to-world transformations instead. The same symbol t can sit on the other side of the equation four pages later. When reading a paper’s geometry section, locate the convention first.

6.3 · Perspective division

Once we transform a point into camera coordinates \(\mathbf X_c=(X_c,Y_c,Z_c)\), we project it with equations (10)–(11). The unknown scalar \(\lambda\) in the homogeneous camera equation (20) accounts for the fact that homogeneous vectors represent image coordinates only up to scale; in this simple projection model it is related to camera-space depth.

Why is this important for current research?

Consider an architecture like VGGT. It estimates camera parameters and scene geometry in a feed-forward pass — but its predictions ultimately have to be compatible with this geometric relationship:

3D point X_w→ X_c = RX_w + t→ u, v pixels

Even if a large transformer predicts geometry directly, perspective geometry is still essential for understanding whether those predictions are physically consistent.

7. How classical 3D reconstruction actually works

Before neural networks became dominant, methods such as Structure-from-Motion (SfM) and Multi-View Stereo (MVS) were already capable of reconstructing large real-world scenes. A foundational reference is Structure-from-Motion Revisited (Schönberger & Frahm, CVPR 2016); its implementation is the well-known COLMAP system.

The classical pipeline can be summarized as:

Multiple photographs→ Feature detection & matching→ Camera pose + triangulation→ Bundle adjustment→ Dense reconstruction

The especially interesting step is bundle adjustment.

7.1 · Bundle adjustment: reconstruction as optimization

Suppose we have several cameras observing the same 3D points. Each observed pixel is associated with an unknown 3D point. We want to find camera poses and 3D positions such that projecting the reconstructed points into each camera reproduces the observed pixels. One standard objective is:

(23) \[ \min_{\{R_i,\;t_i,\;\mathbf X_j\}}\; \sum_{(i,j)\in\mathcal O} \rho\Big( \big\| \mathbf u_{ij} - \pi\big(K_i(R_i\mathbf X_j+t_i)\big) \big\|_2^2 \Big) \]
SymbolMeaning
\(i\)Camera or image index
\(j\)3D scene-point index
\(\mathbf X_j\)Unknown position of 3D point \(j\)
\(R_i,\;t_i\)Rotation and translation for camera \(i\)
\(K_i\)Camera intrinsics
\(\mathbf u_{ij}\)Observed pixel position of point \(j\) in image \(i\)
\(\pi\)Perspective projection
\(\mathcal O\)Set of valid camera–point observations
\(\rho\)Robust penalty to reduce the effect of erroneous observations

Inside the objective, the expression

(24) \[ \mathbf u_{ij}-\pi\big(K_i(R_i\mathbf X_j+t_i)\big) \]

is the reprojection error: how far our predicted pixel location is from the observed one. Bundle adjustment tries to minimize these errors jointly across all cameras and all reconstructed points.

In classical reconstruction, optimization is performed on the scene and camera parameters for a particular collection of images. In feed-forward neural reconstruction, a trained network attempts to predict those parameters in one or a small number of forward passes.

This distinction is central to the evolution from COLMAP toward DUSt3R and VGGT — we’ll chart it in §10.

8. How does 4D reconstruction extend these ideas?

Now return to our moving ball. Suppose it appears to move to the right between two video frames. There are at least three possibilities:

A · WORLD MOVED B · CAMERA MOVED C · BOTH MOVED Δu = +20 px ball moved → Δu = +20 px camera ← (world still) Δu = +20 px ball → and camera ←
FIG 06Who moved?SAME PIXELS ×3 · NOT TO SCALE
The observed displacement of an image feature can result from different combinations of camera and scene motion. All three columns produce identical image displacement — the diagrams illustrate apparent image displacement, not the actual camera trajectories.

A single observed displacement doesn’t tell us which explanation is correct. This is why dynamic reconstruction is substantially harder than static reconstruction: the ambiguity becomes a counterfactual ambiguity — every frame pair supports multiple physical stories.

8.1 · Optical flow: motion in image coordinates

Suppose a point appears at pixel \(\mathbf u_t=(u_t,v_t)\) at time \(t\), and at \(\mathbf u_{t+1}\) in the next frame. Its optical flow is:

(25) \[ \mathbf w_t(\mathbf u) = \mathbf u_{t+1}-\mathbf u_t \]

For example, if a point moves from pixel \((100,120)\) to \((110,125)\), then \(\mathbf w_t=(10,5)\): ten pixels horizontally, five vertically. But optical flow is 2D motion, not necessarily actual 3D motion. If the camera moves while the world remains stationary, the observed optical flow can still be nonzero — Bench C of the lab let you reproduce this.

8.2 · Scene flow: motion in 3D

Scene flow describes the movement of scene points in three-dimensional space. For a point \(\mathbf X\), its displacement during one time interval is:

(26) \[ \mathbf F_t(\mathbf X) = \mathbf X(t+\Delta t)-\mathbf X(t) \]

Here \(\Delta t\) is the interval between observations. If we divide displacement by elapsed time, we obtain an average velocity: \(\mathbf v_t(\mathbf X)=\mathbf F_t(\mathbf X)/\Delta t\).

Convention warning

Some papers parameterize scene flow as displacement (26), others as velocity, and others as mappings to arbitrary target timestamps. Always check which convention an architecture uses before comparing predictions.

The observed pixel displacement is related to 3D motion by:

(27) \[ \mathbf w_t= \pi\Big(K_{t+1}\big[R_{t+1}(\mathbf X+\mathbf F_t)+t_{t+1}\big]\Big) - \pi\Big(K_t[R_t\mathbf X+t_t]\Big) \]

The logic, step by step:

  1. Start with the original point \(\mathbf X\).
  2. Add its 3D displacement \(\mathbf F_t\).
  3. Transform that new point into the next camera’s coordinates (\(R_{t+1}, t_{t+1}\)).
  4. Project it onto the next image with the next intrinsics.
  5. Subtract the originally projected pixel position.

The result is the observed 2D displacement — for readability, the equation suppresses explicit dependence on \(\mathbf X\), and both projection terms use the appropriate timestamped camera.

Equation (27) reveals why 4D reconstruction is difficult: the observed displacement is influenced simultaneously by depth, camera pose, and object motion. If any of these are incorrect, the others may compensate. For example, a system might estimate that the camera has moved too far and compensate by assigning artificial motion to static scene points.

That gives you the intuition behind the problem tackled by MoRe (Motion-aware Feed-forward 4D Reconstruction Transformer): explicitly disentangling dynamic motion from static geometry with an attention-forcing strategy — an approach we will read closely in Module 09.

9. How do modern neural networks represent 3D and 4D scenes?

So far we’ve talked about reconstructing points. But how do we represent an entire scene inside a computer? Several representations define the field’s vocabulary:

RepresentationMain ideaTypical strength
Point cloudStore 3D pointsSimple, direct geometry
MeshVertices connected into surfacesExplicit surface structure
Voxel gridDivide space into 3D cellsStructured spatial data
SDFRepresent signed distance to a surfaceSmooth, extractable surfaces
NeRFLearn density and radiance functionsHigh-quality novel-view synthesis
3D Gaussian splatsOptimize spatial Gaussian primitivesFast differentiable rendering
4D deformation fieldsRepresent geometry or movement over timeDynamic scenes

The distinction between explicit and implicit representations is useful. A mesh explicitly stores surface geometry as vertices and faces. A neural signed-distance field, by contrast, represents a surface as the zero level set of a function:

(28) \[ \mathcal M=\{\,\mathbf X \mid s(\mathbf X)=0\,\} \]

Here \(s(\mathbf X)\) is signed distance and \(\mathcal M\) is the recovered surface. A NeRF doesn’t directly store mesh triangles either — instead, it learns a continuous function that can be queried at spatial locations.

9.1 · Neural Radiance Fields (NeRF)

NeRF (Mildenhall et al., ECCV 2020) is one of the foundational developments behind modern neural scene reconstruction. Its scene function can be written as:

(29) \[ F_\theta(\mathbf X,\mathbf d)\longrightarrow(\sigma,\;\mathbf c) \]
  • \(F_\theta\) is a neural network with learned parameters \(\theta\).
  • \(\mathbf X\) is a 3D spatial location.
  • \(\mathbf d\) is a viewing direction.
  • \(\sigma\) is volume density.
  • \(\mathbf c\) is RGB radiance.

We can render an image by tracing camera rays and accumulating predicted colors according to the density along each ray. In continuous form, the rendered color along a ray \(\mathbf r(s)\) is:

(30) \[ C(\mathbf r)= \int_{s_n}^{s_f} T(s)\,\sigma(\mathbf r(s))\, \mathbf c(\mathbf r(s),\mathbf d)\,ds \]

where:

(31) \[ T(s)= \exp\Big( -\int_{s_n}^{s}\sigma(\mathbf r(q))\,dq \Big) \]

The quantity \(T(s)\) is transmittance: approximately, how much light travels along the ray without being absorbed or occluded under this emission–absorption model. This formula is at the heart of volume rendering. It makes the rendering operation differentiable, enabling the scene network to be optimized directly against photographs — NeRF demonstrated that optimizing such a representation from posed images produces impressive novel-view synthesis.

Remember: rendering an image accurately is not necessarily equivalent to recovering physically accurate geometry. This distinction will be central to our research discussions.

9.2 · From NeRF to dynamic NeRF

The original NeRF assumes a static scene. What if the world changes over time? A natural extension is:

\[ F_\theta(\mathbf X,\mathbf d,t)\longrightarrow(\sigma,\;\mathbf c) \]

However, directly learning a time-varying scene is difficult, because the same physical point occupies different spatial positions over time. A useful approach is to introduce a canonical representation: the model learns a reference configuration plus a deformation field that maps coordinates at different timestamps into that reference:

(32) \[ \mathbf X_{\text{canonical}} = W_\phi(\mathbf X,t), \qquad (\sigma,\mathbf c) = F_\theta(\mathbf X_{\text{canonical}},\,\mathbf d) \]

This idea appears in D-NeRF: Neural Radiance Fields for Dynamic Scenes (CVPR 2021), which learns a canonical scene together with time-dependent deformation. The key advantage: geometry and appearance are shared across timestamps rather than independently learned for each frame.

9.3 · From NeRF to Gaussian splatting

The 2023 paper 3D Gaussian Splatting for Real-Time Radiance Field Rendering (Kerbl et al., ACM TOG) introduces a different scene representation. Instead of repeatedly evaluating a neural network along camera rays, we represent the scene as many 3D Gaussian primitives. A Gaussian has a center \(\boldsymbol\mu\) and a covariance matrix \(\Sigma\) describing its shape and orientation:

(33) \[ G(\mathbf X)= \exp\Big[ -\tfrac12(\mathbf X-\boldsymbol\mu)^\top \Sigma^{-1} (\mathbf X-\boldsymbol\mu) \Big] \]

In 3DGS, Gaussians are optimized and efficiently projected onto the image plane for rasterization-style rendering — achieving high-quality, real-time novel-view synthesis. For dynamic scenes, Gaussian positions (and sometimes their rotations, scales, and appearances) evolve over time. For example:

(34) \[ \boldsymbol\mu_i(t)=\boldsymbol\mu_i^{0}+\Delta\boldsymbol\mu_i(t) \]

Here \(\boldsymbol\mu_i^0\) is the reference center of Gaussian \(i\) and \(\Delta\boldsymbol\mu_i(t)\) is its predicted displacement. This is the intuition behind several dynamic Gaussian approaches, including 4D Gaussian Splatting for Real-Time Dynamic Scene Rendering (CVPR 2024), which combines 3D Gaussians, learned spatiotemporal features, and predicted deformations rather than independently optimizing a complete set of Gaussians for every timestamp.

10. How did we reach the modern 3D and 4D foundation models?

Here is a research-oriented timeline of papers worth understanding. We will eventually read the methodological sections of these papers, not just their abstracts.

2016 Structure-from-Motion Revisited

Classical multi-view reconstruction using geometric correspondences, pose estimation, and optimization.

2020 NeRF

Continuous neural scene representation and differentiable volume rendering.

2023 3D Gaussian Splatting

Fast image synthesis by optimizing spatial Gaussian primitives.

2024 DUSt3R

Directly predicts 3D point maps without requiring known camera calibration or poses as inputs.

2025 VGGT

Predicts camera parameters, point maps, depth, and point tracks with a single feed-forward architecture.

2026 Any4D

Dense metric 4D reconstruction combining geometry and motion, with support for optional additional sensor inputs.

2026 4RC

Encodes video once and queries geometry and motion at selected frames and timestamps.

The connective tissue

These are not the only significant contributions. Other papers such as MASt3R, Dynamic 3D Gaussians, K-Planes, MoRe, and VGGT-Ω fill important gaps between these developments.

The broader evolution is especially interesting:

Classical geometry & optimization→ Neural representations & differentiable rendering→ Fast explicit representations→ Feed-forward geometric foundation models→ Unified geometry · motion · time

This is a conceptual history, not a claim that one family has completely replaced the others. Optimization-based reconstruction and feed-forward models remain complementary.

11. What does all this tell us about future research?

At this stage I want you to notice three scientific problems — rather than immediately choosing a new architecture.

First · reconstruction is an underdetermined inverse problem

We observe images, but many 3D worlds may explain those images (§4 was a proof of concept). When there is insufficient evidence, reconstruction systems must use geometric assumptions or learned priors — creating a tension between what the observations support and what a model believes is plausible. The recent Building Rome from a Single Image line of work generates complete meshes containing both visible surfaces and unobserved regions using learned 3D priors and scene-scale generation — squarely inside this tension.

Second · motion and camera geometry are coupled

In a dynamic video, we often don’t know the true geometry, motion, or camera trajectory. An error in one can affect the others (equation (27) made this precise). MoRe and Any4D address important aspects of this problem — but their existence doesn’t mean dynamic-scene reconstruction has become perfectly identifiable or error-free.

Third · visual realism and geometric accuracy are different objectives

Suppose a model reconstructs a moving person’s hand. The generated video may appear smooth and photorealistic, yet the recovered hand trajectory could be physically inaccurate. For entertainment or view synthesis that might be acceptable; for robot planning, manipulation, or physical interaction it could be a serious problem.

Four evaluation targets — related, not interchangeable

Accurate rendering · correct geometry · correct motion · consistent tracking of physical points over time. A system can dominate one axis while failing another, and most published evaluation covers only the first.

Lecture 1 checkpoint

Checkpoint · one question before Lecture 2

A stationary ball appears to move 20 pixels to the right between two video frames. Which conclusion is justified?

What we’ll cover in Lecture 2

Our next lecture is devoted entirely to classical 3D reconstruction and geometry, with deeper derivations:

Epipolar geometry→ Essential & fundamental matrices→ Triangulation→ SfM→ Bundle adjustment

We’ll explain why the essential matrix has the form

(35) \[ E=[t]_\times R \]

how this leads to the epipolar constraint

(36) \[ \widetilde{\mathbf x}_2^\top E\,\widetilde{\mathbf x}_1=0 \]

and how the entire reconstruction system can be built from these relationships. That mathematical foundation will make the modern architectures much easier to understand.

Our eventual goal is not just to reproduce a 4D reconstruction model — it is to understand exactly what information a model recovers, what it assumes, where its predictions can be wrong, and which of those limitations can support a genuinely new CVPR contribution.

Lecture 01 · drafted October 2026 · next lecture: classical 3D reconstruction (epipolar geometry, triangulation, SfM, bundle adjustment).