How to store a picture, a sound, a shape or a physical field inside a neural network
Networks learn low frequencies first. High frequencies take forever.
# the entire trick (PyTorch), x: (N, 2) coordinates B = sigma * torch.randn(m, 2) # m × 2, fixed Bx = 2 * pi * x @ B.T # (N, m) gamma = torch.cat([cos(Bx), sin(Bx)], -1) # (N, 2m)
…although a chirp is, admittedly, tailor-made for sinusoidal features.
Evaluate anywhere, good interpolation.
Exact derivatives \( \nabla_{\mathbf{x}} f_\theta \) by autodiff: normals, PDE residuals (PINNs).
Fit through a forward model: \( \min_\theta \| A(f_\theta) - y \|^2 \).
Store \( \theta \), not samples. Compress images, textures, simulation and weather data.
| \( f_\theta \) is… | forward model \( A \) | data \( y \) | |
|---|---|---|---|
| CT | attenuation \( \mu(x, y, z) \) | line integrals | X-ray projections |
| NeRF | color & density \( (x, y, z, \theta, \phi) \) | volume rendering along camera rays | photos |
| PINNs | PDE solution \( u(x, t) \) | PDE residual, boundary conditions | zero residual, sensor data |
| Phase retrieval | audio signal \( s(t) \) | spectrogram \( |\mathrm{STFT}| \) | magnitude spectrogram |
| Super-resolution | image \( I(x, y) \) | blur + downsample | low-res image |
A material on a 3D model is many textures stacked: 9+ channels at 4096 × 4096.
One small network per material (latent grid + tiny MLP) decodes all channels at once, per pixel, inside the shader.