Instant NGP from a Webcam(s)?

A user took a great deal and made it into a near live version of Instant NGP

A user took a great deal and made it into a near live version of Instant NGP

Michael Rubloff

Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

Instant NGP

Over the weekend, I saw a page title that caught my eye: Immediate NeRF from webcams. Slightly incredulous and curious to learn more, I clicked through it.

Github user Ednaordinary demonstrated in a discussion of the NV Labs Github page a running version of Instant NGP utilizing 12 webcams. The results are really decent actually considering only 12 inputs are powering it. Even moreso for a bunch of $4.99 webcams.

While her computer is utilizing a 3090, it on appears to be consuming 3.62GB of VRAM, making this attainable for more people.

But the real question is how far away are we from having full NeRF powered video conferences. The answer is not close at all, but this represents an exciting baseline. NeRF has its work cut out for it to compete with Apple’s recently announced Digital Persona and Google’s Project Starline and honestly there might not be much of a competition, but it’s encouraging to see someone using Instant NGP in a near live capacity.

For those looking to try this out for themselves, Ednaordinary warns the code is not a straight out of the box solution, but does write the changes she made to make it happen.

Please modify the following lines:

83: Inside the list add the numbers for the cameras you want (to get this do v4l2-ctl --list-devices, then if you have /dev/video1 and want to use it, put 1)84-89 and 101-104: These lines are to declare lists for multithreading. The simplest thing to do while still having a working script is to remove 84-89 and replace 101-104 withthreads.append(threading.Thread(target=camloop, args=[cams, 0])), though note this will be slower. If you would like to multithread, make lists for each set of cams and make new threads.append(threading.Thread(target=camloop, args=[cams, 0])) lines, replacing cams with each list and adding an offset number of the length of the previous list of cams (so that they do not overwrite eachother). At any time 1 camera will be accessed from each list. All cams are not accessed at once because of bandwidth issues.91: Add the directory for the scene and include "/images"Once the script is ready calling it with zero arguments will capture a picture from each webcam and write it, then do nothing. This is useful for capturing pictures just once and then using colmap2nerf.py. Once you have transforms.json, run it with "--scene ./data/nerf/webcam --gui --train --n_steps 100000000000" replacing ./data/nerf/webcam with the directory to the scene. n_steps is the number of steps to train, but we don't want to stop training, so set it really high.

I for one will probably be paying Walmart.com a visit and then shortly thereafter see how successfully I can get it to run.

Featured

Recents

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

Sep 19, 2026

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

CorbeauSplat 2.0.0-beta.4 Fixes Its 4DGS COLMAP Step

CorbeauSplat v2.0.0-beta.4 is a pre-release fixing a 4DGS bug that fed COLMAP every frame of every camera, and tracking renamed splat-transform CLI flags.

Michael Rubloff

Sep 18, 2026

CorbeauSplat 2.0.0-beta.4 Fixes Its 4DGS COLMAP Step

CorbeauSplat v2.0.0-beta.4 is a pre-release fixing a 4DGS bug that fed COLMAP every frame of every camera, and tracking renamed splat-transform CLI flags.

Michael Rubloff

Platforms

fVDB v0.6.0 Moves Gaussian Splatting API to Reality Capture

fVDB v0.6.0 moves the high-level Gaussian splatting API out of fvdb-core to fVDB Reality Capture, keeping the CUDA kernels and adding multi-GPU 3DGUT support.

Michael Rubloff

Sep 18, 2026

Platforms

fVDB v0.6.0 Moves Gaussian Splatting API to Reality Capture

fVDB v0.6.0 moves the high-level Gaussian splatting API out of fvdb-core to fVDB Reality Capture, keeping the CUDA kernels and adding multi-GPU 3DGUT support.

Michael Rubloff

Trending Articles
  1. TRENDING
    Loading...
  2. TRENDING
    Loading...
  3. TRENDING
    Loading...
Michael Rubloff

Written by Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

More from Michael Rubloff

More from Michael Rubloff

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Babylon.js

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Michael Rubloff

Sep 19, 2026

Babylon.js

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Babylon.js

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

Sep 19, 2026

Niantic Spatial

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Michael Rubloff

Sep 19, 2026

Niantic Spatial

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

Sep 19, 2026

Niantic Spatial

CorbeauSplat 2.0.0-beta.4 Fixes Its 4DGS COLMAP Step

CorbeauSplat v2.0.0-beta.4 is a pre-release fixing a 4DGS bug that fed COLMAP every frame of every camera, and tracking renamed splat-transform CLI flags.

Michael Rubloff

Sep 18, 2026

Corbeau Splat

CorbeauSplat 2.0.0-beta.4 Fixes Its 4DGS COLMAP Step

Michael Rubloff

Sep 18, 2026

Corbeau Splat

CorbeauSplat 2.0.0-beta.4 Fixes Its 4DGS COLMAP Step

CorbeauSplat v2.0.0-beta.4 is a pre-release fixing a 4DGS bug that fed COLMAP every frame of every camera, and tracking renamed splat-transform CLI flags.

Michael Rubloff

Sep 18, 2026

Corbeau Splat

New to Gaussian Splatting? Start here

Radiance fields, explained from the ground up: what a Gaussian splat is, how to capture one, and which tools and gear to start with.

Newsletter

Keep up with the field.

New research, tools and captures from the Radiance Fields newsroom, in your inbox. Free, no spam.