I saw a painting by Bridget Riley (see https://www.smithsonianmag.com/arts-culture/new-exhibit-showcases-mind-bending-art-bridget-riley-180980563/) and wondered what I could make that would be similar. It’s clearly a case of adding waves to horizontal lines.
I wanted to start with a pixel formula and a coloring formula that would just reproduce the gradient horizontally and then apply a mapping of my own. The usual coloring, Gradient in Standard.ulb, ignores any mapping (its ResultIndex uses the pixel, not its argument, to calculate the index into the gradient). I wrote a new Simple Coloring, now in jlb.ulb, that allows gradient colorings with mappings, and generalized it a bit beyond my needs.
After some experimenting, I used horizontal stripes and a mapping transformation that moved the y (vertical) value proportional to sin(ax + sin(ay)). After succeeding in this, I generalized the transform. It’s Waves in jlb.ulb. Here’s a upr of Homage to Bridget Riley and some independent layers that illustrate some of the possibilities.
Since Waves is a UserTransform, it can be used in various places. The bottom layer in the upr is an example.
Waves {
::qS/Iqin2trZ3vttNQA83DQ+fQwPtNAHLSqvcL4LtANZFrDDrtZPGQbRZzMZJNJ5k4+X/OSZ5
v0R3GgWgWUiEgYz7OekHPy7HYYWtYerI/FXehnXrqNXyH9PiHkNj8eUl2uknQ89WKVLW2yDD
89yFbk1N8It6zrlpq2G+o7Vrml79q81yXGNhNh6TZv8tqVdtEOh210IPRRrSkrENqiF8NymL
vw0dGfPXU1qKL4jupclYh0rt07V1q0FyWv/WlL3MyrsSMX1uhT899WJbXWmyXtOvVVJageal
oqC62u+SW0Kr5+TAFFLK4+XFE61WLKayKrX1wJXexuvZMID8QhYFM3ffroIVUne16nyG5B9T
9G+orlFya18P0bzItNV3trPedOMEgwQ+srWnP7Fv9Pe1dbjhnq0VPc3iuOTPNw6GQjdNcGdW
3IrPSPElgFKdEly8j8Jo9z2AFsUgIr1EBRtTAhUSc4QBpqa+UjNZnK6NcYZfoFZ1y/jTnQR9
TFHZe1upSyvF3H3wVpwcaoRLzEz5EcjuFfk9wOTGOoFpS+fWWIxiANQK0cpFLrKfEC4gMdTr
zFm0vVinU61BqXlse+S58/lXml5JSvfdTrZ1ZfCqJJLb1uczK1Ty87rgUSVRDM572IbcK0jF
6xYTZuKlHQTCDiCCjh9ulrbHqbuqQKq3pdcClxigELsNHzzN7BOe/x11iUF00rLzLrh9i60/
5b/MyWk3rWVlL3uX6I9OeXCi0+vvfDyA73OW+sae0mkBiz+Efk43+E6gUwJwBMZn06bM55Lx
MI7jf44Iw7KlzUrb+IsX+0zWGYJ2JHYKhc4BmaDO/wuqYjSO1uFQM7hBhFjAdkxmVCfz51oi
I6ItVDpm1BMRz8PnhzI8xWtkazSzpP/OUW5yL6zxMbjaWVWClLLK9qLbFmSZjDZeqiU5TcWo
npX4JJJU/ww+m7KjakQiYESof0WRxTRtIxfbzxkp+0YzZMdSI0AULI0efTgM8g4pT7FEls37
nYTUv3JsIaILofeQJsjNYv/pke/TCCDCpx9dGNMG1J0wD8PRf0USMpPw4TxDY+sdhLo1Q/g9
DAWQEqN6VhenwgfZ9OZMx3WAY8u5fYSAswAzzt0HnsW3pu/O2EqOkgA1oLwwgfG7p/0Cx6mm
jBaeQ1omBwXFlmCCPL8mrcwNfdhbI2AbsQ1gzIoBbYTYoUNoW0B2YnqB1oOwGbUN4BYtJULU
NXrzNVCcL3D3cVoN2GKObjeL9XOdzBwFOAHHgjDw57SAneYlAfc+moTK8uvYdAOeTo/J1d32
+0AbVqnGizPRYJ2IVIspHDR13eCDnGK5AvfCEFlaBuhmcCB1BkSx4wN0YGOBFjEZb6zIxWIo
iI2m/wAaAE1XH6G9fH7obc0NWpbuBluxmTODbjdgovt0NE54IHgjDwxB44AccAO/sB4o/PXt
E6bomruagDyxB5gA5MDyuQ5cE7rr8lT6AZbPfOn/SneeeIHm7Ccc8NO+GHfjjvxx3A8NBwPC
oYzSz14YeREOGnfMZcs8+b6WdxpcCmE8MfBOaKHbPCH03TjhxJ45/EcCs/EcMYOnjx5MvBHH
mjDzxh54wccYO/0g58e4wTPhXqKDOmV/MRfUs5rJfjriyPYVU+wvA1U+1vRFV6wP/erKynJo
AqsHI1WnsFLFvKQ/DfeoodXA3QRbhTtWJbLiKqwd3F3QRHedcIO9mzVHsDXF3wbPnhdQr4zj
TubOsY0BXPHyctHd1VP0VP85VP8/BU+ffEF=
}
I saw a painting by Bridget Riley (see https://www.smithsonianmag.com/arts-culture/new-exhibit-showcases-mind-bending-art-bridget-riley-180980563/) and wondered what I could make that would be similar. It’s clearly a case of adding waves to horizontal lines.
I wanted to start with a pixel formula and a coloring formula that would just reproduce the gradient horizontally and then apply a mapping of my own. The usual coloring, Gradient in Standard.ulb, ignores any mapping (its ResultIndex uses the pixel, not its argument, to calculate the index into the gradient). I wrote a new Simple Coloring, now in jlb.ulb, that allows gradient colorings with mappings, and generalized it a bit beyond my needs.
After some experimenting, I used horizontal stripes and a mapping transformation that moved the y (vertical) value proportional to sin(a*x + sin(a*y)). After succeeding in this, I generalized the transform. It’s Waves in jlb.ulb. Here’s a upr of Homage to Bridget Riley and some independent layers that illustrate some of the possibilities.
Since Waves is a UserTransform, it can be used in various places. The bottom layer in the upr is an example.
![647b5cf4233ba.jpg](serve/attachment&path=647b5cf4233ba.jpg)
Waves {
::qS/Iqin2trZ3vttNQA83DQ+fQwPtNAHLSqvcL4LtANZFrDDrtZPGQbRZzMZJNJ5k4+X/OSZ5
v0R3GgWgWUiEgYz7OekHPy7HYYWtYerI/FXehnXrqNXyH9PiHkNj8eUl2uknQ89WKVLW2yDD
89yFbk1N8It6zrlpq2G+o7Vrml79q81yXGNhNh6TZv8tqVdtEOh210IPRRrSkrENqiF8NymL
vw0dGfPXU1qKL4jupclYh0rt07V1q0FyWv/WlL3MyrsSMX1uhT899WJbXWmyXtOvVVJageal
oqC62u+SW0Kr5+TAFFLK4+XFE61WLKayKrX1wJXexuvZMID8QhYFM3ffroIVUne16nyG5B9T
9G+orlFya18P0bzItNV3trPedOMEgwQ+srWnP7Fv9Pe1dbjhnq0VPc3iuOTPNw6GQjdNcGdW
3IrPSPElgFKdEly8j8Jo9z2AFsUgIr1EBRtTAhUSc4QBpqa+UjNZnK6NcYZfoFZ1y/jTnQR9
TFHZe1upSyvF3H3wVpwcaoRLzEz5EcjuFfk9wOTGOoFpS+fWWIxiANQK0cpFLrKfEC4gMdTr
zFm0vVinU61BqXlse+S58/lXml5JSvfdTrZ1ZfCqJJLb1uczK1Ty87rgUSVRDM572IbcK0jF
6xYTZuKlHQTCDiCCjh9ulrbHqbuqQKq3pdcClxigELsNHzzN7BOe/x11iUF00rLzLrh9i60/
5b/MyWk3rWVlL3uX6I9OeXCi0+vvfDyA73OW+sae0mkBiz+Efk43+E6gUwJwBMZn06bM55Lx
MI7jf44Iw7KlzUrb+IsX+0zWGYJ2JHYKhc4BmaDO/wuqYjSO1uFQM7hBhFjAdkxmVCfz51oi
I6ItVDpm1BMRz8PnhzI8xWtkazSzpP/OUW5yL6zxMbjaWVWClLLK9qLbFmSZjDZeqiU5TcWo
npX4JJJU/ww+m7KjakQiYESof0WRxTRtIxfbzxkp+0YzZMdSI0AULI0efTgM8g4pT7FEls37
nYTUv3JsIaILofeQJsjNYv/pke/TCCDCpx9dGNMG1J0wD8PRf0USMpPw4TxDY+sdhLo1Q/g9
DAWQEqN6VhenwgfZ9OZMx3WAY8u5fYSAswAzzt0HnsW3pu/O2EqOkgA1oLwwgfG7p/0Cx6mm
jBaeQ1omBwXFlmCCPL8mrcwNfdhbI2AbsQ1gzIoBbYTYoUNoW0B2YnqB1oOwGbUN4BYtJULU
NXrzNVCcL3D3cVoN2GKObjeL9XOdzBwFOAHHgjDw57SAneYlAfc+moTK8uvYdAOeTo/J1d32
+0AbVqnGizPRYJ2IVIspHDR13eCDnGK5AvfCEFlaBuhmcCB1BkSx4wN0YGOBFjEZb6zIxWIo
iI2m/wAaAE1XH6G9fH7obc0NWpbuBluxmTODbjdgovt0NE54IHgjDwxB44AccAO/sB4o/PXt
E6bomruagDyxB5gA5MDyuQ5cE7rr8lT6AZbPfOn/SneeeIHm7Ccc8NO+GHfjjvxx3A8NBwPC
oYzSz14YeREOGnfMZcs8+b6WdxpcCmE8MfBOaKHbPCH03TjhxJ45/EcCs/EcMYOnjx5MvBHH
mjDzxh54wccYO/0g58e4wTPhXqKDOmV/MRfUs5rJfjriyPYVU+wvA1U+1vRFV6wP/erKynJo
AqsHI1WnsFLFvKQ/DfeoodXA3QRbhTtWJbLiKqwd3F3QRHedcIO9mzVHsDXF3wbPnhdQr4zj
TubOsY0BXPHyctHd1VP0VP85VP8/BU+ffEF=
}