Watercolor Simulation in COPs

While experimenting in COPs I had a simple idea, could Cellular Automata be used to simulate fluid behaviour? After a bunch of tests that didn’t lead anywhere, I decided to look online if someone smarter than me had already approached the topic.

Lo and behold, they had! The paper “simple cellular automaton based simulation of ink behaviour” from 1999 uses CA to simulate watercolors, flowing and drying. It splits the simulation into a water layer, a wet/dry ink layer, paper height and paper absorption. Water spreads along the papers surface based on the height of the paper as it advects pigments. Over time the water evaporates and the pigments get left behind in the paper.


I ported the Paper over to OpenCL and added support for physically based colormixing based on Kubelka-Munk for which I wrote a blog about here: Kubelka-Munk Colormixing


grab it on gumroad here

Simulation Details

The model splits the behavior into distinct layers:

  • Water layer: controls fluid spread and drying over time.
  • Wet/dry ink layer: manages pigment concentration and advection.
  • Paper height and absorption: governs flow resistance and capillary action.

and now we get to look at these (in my opinon) beautiful results. In the future I’d like to try some custom approaches using motion vectors and diffusion to get similar results.

Read the full paper here.

Ink diffusion simulation test 44

Take a look at this walkthrough to see all of the nodes in action

Particle Lenia interacting with ink simulation in COPs

other Projects ↘

Datamoshing in COPs