Click inside the quadtree to splat one radiance sample.
The square is the directional domain of one SD-tree leaf (cylindrical coordinates). As in PPG's reference implementation, the quadtree starts as a uniform 16×16 grid (nothing has been learned yet, so the 1% rule falls back to a uniform split), stays fixed while samples are splatted, and is rebuilt by Refine from the energy collected in the current iteration: a quadrant holding more than 1% of the total is split (an old leaf hands ¼ of its energy to each child), the rest become leaves, and all energies are cleared for the next iteration. Cell colour shows the learned radiance density (deposited energy ÷ cell area). Switching mode replays the same samples, so the three schemes can be compared directly. Filter footprint = the size of the leaf the sample fell into, centred on the sample. As in Müller's reference implementation, the part of a box footprint that falls outside the square is dropped, and a stochastic jitter that leaves the square is clipped back into it. Simplifications of this demo: samples are drawn from a synthetic radiance function, every sample deposits one unit instead of a weighted radiance estimate, iterations do not double their sample count, and all three filters are shown in the directional domain (production PPG filters stochastically in space and deterministically in direction).