Say I have a function that given coordinates x,y,z returns a value betwen 0.0 and 1.0. For example:

*f(x,y,z):*

- return 0.5
*sin(x^2 + z^2) + 0.5*

and I want to use this function to colour some surfaces in my model based on the x, y, z coordinates: Where the function returns 0.0 they are to be blue, where the function returns 1.0 to be red, to be blue. the points where the function returns 1.0 to be red, and a gradual shift via purples in-between.

So, a flat surface parallel to the x-z plane coloured this way would show a circular wave pattern around the y-axis.

Is it possible to do something like this in Rhino6? I see only predefined textures. .