So I've been doing a lot of tinkering with fields lately after discovering this extremely useful setup:
<all>
<rule in="W" out="U"/>
<rule in="W" out="u"/>
<field for="U" to="I" on="W" essential="False" recompute="True"/>
<field for="u" to="B" on="W" essential="False" recompute="True"/>
</all>
It makes a two-step gradient with the midpoint at a voronoi-like or lagrangian-like distance between the two attractor colors (I and B here) in a single "tick"
Here's a simple demo model of some of the variations I've been finding handy: onestepdivision.xml
And here's a more complicated one that might illustrate where capped and constant fields would come in handy:
rosettes.xml
output:

With caps and constants, the majority of the rosettes model after creating the scattering of "a" points could potentially be reduced to something like:
<all>
<rule in="W" out="N"/>
<rule in="W" out="Y"/>
<rule in="W" out="n"/>
<field for="N" to="a" on="W" essential="False" recompute="True"/>
<field for="n" to="N" on="W" min="3" essential="False" recompute="True"/>
<!-- valid paths are checked, but if n would have a valid path less than 3, it is treated as a 3 step path-->
<field for="Y" constant="4" on="W" essential="False" recompute="True"/>
<!-- treats any white tile as having a valid 4 step path to a zero-->
</all>
So I've been doing a lot of tinkering with fields lately after discovering this extremely useful setup:
It makes a two-step gradient with the midpoint at a voronoi-like or lagrangian-like distance between the two attractor colors (I and B here) in a single "tick"
Here's a simple demo model of some of the variations I've been finding handy: onestepdivision.xml
And here's a more complicated one that might illustrate where capped and constant fields would come in handy:
rosettes.xml
output:

With caps and constants, the majority of the rosettes model after creating the scattering of "a" points could potentially be reduced to something like: