← HomeNeural · learn the field
Experiment. A small MLP (1793 weights) is trained in plain JS to fit the reference SDF. Once trained, the weights bake into a GLSL shader and we raymarch the network. Neural nets aren't Lipschitz — use the Step multiplier to shrink each march step and avoid overshoot.
Analytic (truth) — drag to orbit both
Neural · stale
iter
0
loss
surface RMS
weights
1793
shader chars
Arch: encoded xyz (21) → tanh(32) → tanh(32) → 1. Surface RMS is measured on samples near the true surface — the number you actually want small. If the baked render is blobby, drop the step multiplier.