
Geometry of Noise
Why diffusion models don't need noise conditioning, derived in closed form on a toy circles dataset.
About this notebook
This notebook explains why diffusion models can sample without noise conditioning. It accompanies the paper by Sahraee-Ardakan, Delbracio, and Milanfar (2026). The dataset is 200 points on two concentric circles, and a random orthogonal projection lifts those points into D dimensions. NumPy computes every denoising field in closed form from Bayes' rule, so the notebook trains no neural network.
A marimo slider controls the ambient dimension D, from 2 to 128, and every figure that depends on D recomputes when you move it. Those figures include an apple-peel volume plot, a histogram of noise-shell radii, the posterior over the noise level, and a four-panel sampler comparison. Click the scatter plot in the posterior demo to place a probe, and the notebook plots p(t | u) at that point. Two more widgets animate the forward and reverse diffusion processes with a play button and a timeline slider.
The interactive parts are pywidget components: Python code that renders and handles events inside the browser through Pyodide. The four sampler panels run the same reverse-time Euler ODE. They differ only in the prediction target and in whether the sampler receives the noise level t. An lru_cache stores results between slider moves.











