Adebanji Adelowo
← Projects

NeRF & TensoRF from scratch

Neural rendering

My contribution

I implemented NeRF and TensoRF and compared them on 40 held-out views of a synthetic scene.

Research implementation

On a synthetic sphere scene: TensoRF 16.7 dB test PSNR versus 13.7 dB for NeRF (one seed, unmatched budgets).

Problem

Reconstructing a continuous 3D scene representation from posed 2D images, and understanding the trade-off between an implicit MLP representation and an explicit tensor-decomposed one. Both are tested on a synthetic scene: a Phong-shaded sphere rendered at 100 × 100 pixels, with 20 training, 10 validation and 40 test views.

Approach

Vanilla NeRF and TensoRF (vector-matrix decomposition, Chen et al. 2022) are implemented from scratch in PyTorch, including an MPS-safe gather-based interpolation scheme for Apple Silicon, and evaluated on the same held-out views.

Result

On the 40 held-out test views, TensoRF (7.1M parameters, 15k iterations) reaches 16.7 dB PSNR against 13.7 dB for vanilla NeRF (1.19M parameters, 30k iterations), one seed each.

16.7 dBTest-Set PSNR (TensoRF)
+3 dBvs Vanilla NeRF (13.7 dB)

Limitations

One synthetic scene and one seed per model, with different parameter counts and iteration budgets. Absolute quality is low for both models, which suggests neither is trained to convergence, so the comparison ranks the two under these budgets rather than measuring what either can achieve. Not tested on photographs or standard NeRF benchmark scenes; no automated tests.

Side-by-side spiral fly-around comparing NeRF and TensoRF novel-view renders of the same scene
Spiral fly-around: NeRF (left, 1.19M params, 13.7 dB test-set PSNR) vs TensoRF VM (right, 7.1M params, 16.7 dB), half the training iterations. Select figure to enlarge.