merlerker-landscape

OpenProcessing

My concept started from an idea to make data-driven tree rings that represent precipitation/drought data in California, and are explorable at multiple scales. I had the idea to use branching as the natural way to explore scale, where larger scales (state, basin) could be larger rings that branch into the smaller rings (grid cell), so switching scales meant you were slicing the tree at different points. I had the code to draw the rings in this wobbly way, but plugging in the data as an input and getting a neat ring that starts and ends in the same place proved to be challenging, and my DeepNote started crashing repeatedly 🙁 I pivoted (for now) to make a landscape from the tree rings that can shift from a top-down view (slice) to a perspective view (branch).

I use the random function to place multiple tree rings on the canvas, mapping their y position to the number of rings, so lower “trunks” are thicker. I draw rings with some wobble using Perlin noise to offset the radius as we go around the circle (learning the trick to get the noise values to start and end in the same place: use sin/cos functions as xoff,yoff inputs to noise, so your domain for the noise space is also a circle), then add stippling with a random angle stagger, so the stipples are not all lined up.