Experiment. Render a 10-param SDF at 64×64, compare to target, estimate the gradient by finite differences (all 21 variants packed into one wide render), step with Adam. Coverage mode fits silhouettes only — better for uploaded photos.
Target
Current
Loss (0 steps · —)
s1.x
-0.500
s1.y
0.000
s1.z
0.000
s1.r
0.400
s2.x
0.500
s2.y
0.000
s2.z
0.000
s2.r
0.400
blendK
0.300
boxSize
0.500
Each frame: 1 combined GPU render + 1 readback of 1344×64 px. Auto-stops when improvement over the last 50 steps drops below 0.1%.