You can run the code for part 1 with:
python main.py --config-name=box
Output:
| Grid | Rays |
|---|---|
![]() |
![]() |
Run:
python main.py --config-name=box
Output:

Run:
python main.py --config-name=box
Output will be stored as images/part_1.gif
| 3D 360 View | Depth |
|---|---|
![]() |
![]() |
Run:
python main.py --config-name=train_box
| Center | Side Lengths |
|---|---|
| (0.25, 0.25, 0.00) | (2.00, 1.50, 1.50) |
Output:

Run:
python main.py --config-name=nerf_lego
Output:

First, modify the config file by setting implicit.view_dependence = 1
Then, run:
python main.py --config-name=nerf_lego
Output:

| Without View Dependence | With View Dependence |
|---|---|
![]() |
![]() |
As shown above, view dependence changed the color for some parts of the legos. Specifically, the image seems to be a bit brighter yellow compared to with view dependence. In general, adding view dependence will result in our output quality being better, however, this comes at a cost of overfitting to the specific scene and not being able to generalize to other similar scenes.
Then, run:
python main.py --config-name=nerf_lego_highres
Output:
| Low Res | High Res |
|---|---|
![]() |
![]() |
| Point Samples Per Ray | Output |
|---|---|
| 32 | ![]() |
| 128 | ![]() |
| 256 | ![]() |
Visual quality is better as the number of points is increased up to a certain point. However, as the number of points per ray increases, the time to train the model also increases.