Smurfstudio 3DGS “Good 2 Knows”
A growing collection of miscellaneous helpful tidbits
- The
cull_alpha_threshparameter is tied to the opacity reset that occurs occasionally throughout training. The opacities are reset to 2*cull_alpha_thresh, so a threshold too low can push opacities close enough to zero that the gradient updates (proportional to the current value) are too small to recover. Recommend sticking above 1e-3, maybe 1e-4 at the lowest, though values that low shouldn’t be necessary. - Viser (Nerfstudio’s web viewer) axes gizmo follows standard color convention: Red = X, Green = Y, Blue = Z
- gsplat (nerfstudio’s 2/3DGS CUDA backend, submoduled in Smurfstudio) used “wxyz” as their quaternion convention and
- If running out of GPU/CPU memory while training because of a large dataset, set these flags:
"pipeline.datamanager.cache_images": "disk", # "disk", "cpu", "gpu"(default)
"pipeline.datamanager.dataloader_num_workers": 0,
- WandB (Weights & Biases) is a fantastic program for loss analysis and inspecting training metrics. Worthwhile to be in the habit of using for models, though absolutely be aware of the size of the .wandb files that are saved locally when using their logging, as they can very quickly take up a lot of disk space
- For nerfstudio orthographic camera projection: focal length scales the ray origin grid → smaller focal length = larger coverage (zoom out), larger focal length = smaller coverage (zoom in)
- I recommend taking notes of some sort while working on each branch in the repository. What worked for me was a google document with bullet point sections of “To-Do,” “In Progress,” “Completed,” “Notes,” and sometimes other sections as needed. It helped with logging what I’d worked on, active thoughts, stopping points, and where to pick up from during new working sessions