Papers › Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields

Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields

24 Mar 2021ICCV 2021 10arXiv:2103.13415archive 2025-07-28

Jonathan T. Barron, Ben Mildenhall, Matthew Tancik, Peter Hedman, Ricardo Martin-Brualla, Pratul P. Srinivasan

The rendering procedure used by neural radiance fields (NeRF) samples a scene with a single ray per pixel and may therefore produce renderings that are excessively blurred or aliased when training or testing images observe scene content at different resolutions. The straightforward solution of supersampling by rendering with multiple rays per pixel is impractical for NeRF, because rendering each ray requires querying a multilayer perceptron hundreds of times. Our solution, which we call "mip-NeRF" (a la "mipmap"), extends NeRF to represent the scene at a continuously-valued scale. By efficiently rendering anti-aliased conical frustums instead of rays, mip-NeRF reduces objectionable aliasing artifacts and significantly improves NeRF's ability to represent fine details, while also being 7% faster than NeRF and half the size. Compared to NeRF, mip-NeRF reduces average error rates by 17% on the dataset presented with NeRF and by 60% on a challenging multiscale variant of that dataset that we present. Mip-NeRF is also able to match the accuracy of a brute-force supersampled NeRF on our multiscale dataset while being 22x faster.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2103.13415")

Code

Syntology Ran 10 of 33 code samples harvested from 3 repositories linked to this paper; 23 have no recorded run. Of those that ran: 1 ran · violated contract; 6 ran · our draft was wrong; 1 ran · fixture could not drive it; 2 ran with no contract checked.

By repository: official repository: 12 samples from 1 repository, 0 ran; community (archive-listed): 21 samples from 2 repositories, 10 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

google/mipnerf officialjaxApache-2.0 report
bebeal/mipnerf-pytorch mentioned on GitHubpytorch report
kakaobrain/NeRF-Factory mentioned on GitHubjaxApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

33 samples harvested; 10 ran; 0 honoured the contract we drafted; 23 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · violated contract
6ran · our draft was wrong
1ran · fixture could not drive it
2ran
23unverified

Licence: 13 of the 33 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 3 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

convert_to_ndc google/mipnerf/internal/datasets.py official repository unverified Apache-2.0 (permissive) · 7115b692e467d100 · report
convolve2d google/mipnerf/internal/vis.py official repository unverified Apache-2.0 (permissive) · f4d06208684a7a77 · report
depth_to_normals google/mipnerf/internal/vis.py official repository unverified Apache-2.0 (permissive) · 57dbac42c2922def · report
file_exists google/mipnerf/internal/utils.py official repository unverified Apache-2.0 (permissive) · 3e443b753d374fda · report
lift_gaussian google/mipnerf/internal/mip.py official repository unverified Apache-2.0 (permissive) · b08a5fcef9a0e68a · report
listdir google/mipnerf/internal/utils.py official repository unverified Apache-2.0 (permissive) · 0bc10c560cd1a9d0 · report
matmul google/mipnerf/internal/math.py official repository unverified Apache-2.0 (permissive) · 0f92b856a4c7ffa0 · report
open_file google/mipnerf/internal/utils.py official repository unverified Apache-2.0 (permissive) · ea51e10bd8ccc6c6 · report
pos_enc google/mipnerf/internal/mip.py official repository unverified Apache-2.0 (permissive) · b173cfb2e6627ca6 · report
safe_cos google/mipnerf/internal/math.py official repository unverified Apache-2.0 (permissive) · 2bf299e51f2339bd · report
safe_trig_helper google/mipnerf/internal/math.py official repository unverified Apache-2.0 (permissive) · a4c29290b26d4263 · report
sinebow google/mipnerf/internal/vis.py official repository unverified Apache-2.0 (permissive) · 048c1208fee6c6fe · report
MLP hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) ran MIT (permissive) · de82d4cd88ba7d6b · report
PositionalEncoding bebeal/mipnerf-pytorch/model.py community (archive-listed) ran fingerprinted no licence file found · pointer only · d26bd0d9fcf8b200 · report
integrated_pos_enc hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) ran · fixture could not drive it MIT (permissive) · 4476a197d65bcc37 · report
lift_gaussian bebeal/mipnerf-pytorch/model.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · 329d135c2ac7936e · report
namedtuple_map bebeal/mipnerf-pytorch/model.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · f2267c6893ffb35f · report
pos_enc hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · 803f454e1b276964 · report
sample_along_rays bebeal/mipnerf-pytorch/model.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 9cc00df84d273598 · report
sample_along_rays hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 54283cf277120e24 · report
to8b bebeal/mipnerf-pytorch/model.py community (archive-listed) ran · violated contract fingerprinted no licence file found · pointer only · 9f73947794a2bf48 · report
volumetric_rendering hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · bc935e2a4ebd4273 · report
MipNeRF bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 49008a6929d3421c · report
MipNerf hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) unverified MIT (permissive) · 56e734996bd5896d · report
_xavier_init bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 9e2b1cac31815d48 · report
_xavier_init hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) unverified MIT (permissive) · 56a672a93eff7144 · report
cast_rays bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · eb4c4e118ab261ec · report
conical_frustum_to_gaussian bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · c9d6592f49f2731a · report
cylinder_to_gaussian bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 65e3f830a53bdb00 · report
resample_along_rays bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 6c57d14a0030d04c · report
resample_along_rays hjxwhy/mipnerf_pl/models/mip_nerf.py community (archive-listed) unverified MIT (permissive) · 1e22401326ec5ead · report
sorted_piecewise_constant_pdf bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 1938594a08c5dd74 · report
volumetric_rendering bebeal/mipnerf-pytorch/model.py community (archive-listed) unverified no licence file found · pointer only · 7addb09efb7b3978 · report

Tasks

NeRF

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections