rosemary

Generative Artwork by Danielle Navarro

CC-BY-4.0 License

Stars
21
Committers
1

Generative Art by Danielle Navarro

Making generative artwork reminds me a lot of gardening. Both are aesthetic exercise, creating a pleasant and relaxing evironment that the artist/gardener can enjoy no less than anyone visiting the space. Both are hard work, too. Learning how to prune, learning which plants will thrive in the land that you have, knowing what nutrients differnt plants need, taking care of the garden in hard times, et cetera, none of these are easy. At the end you might have a sustainable native garden that blends in seamlessly with the environment and brings you joy, but growing the garden is itself a technical and sometimes physically demanding exercise.

Artwork is the similar in that respect, I have discovered. I make all my art using R, and rely heavily on the ambient package that provides an interface to the FastNoise C++ library for generating multidimensional noise of various kinds. Taking the time to learn (a little of) the technical skill required to work with these tools allowed me to start writing my own jasmines package that provides me with a collection of tools that I enjoy using. It has been (and still is) a demanding exercise that has made me think a lot about how to design programming interfaces, and while I doubt anyone except me will find much use for the jasmines package, the act of writing it is giving me joy in and of itself. Much like gardening, I find the construction process itself inherently rewarding.

Nevertheless, as with gardening, there is the personal act of creation that brings joy to the artist or gardener, and then there is also the products of that creation. Back when I still had room to garden, one of my favourite things about the jasmine vine I trained to run along the edges of our deck overlooking the valley was that at the end of every winter it would come into bloom along with the surrounding plants, and it was my favourite place to sit with a cup of coffee in the sunrise though the children would inevitably drag me back to reality.

The rosemary package is where Ive bundled a collection of generative art pieces I created using the jasmines package. The pieces themselves are publicly available as a flickr album release under a CC-BY licence, as is the rosemary package itself (jasmines is released under the more permissive MIT licence). I chose the name jasmines for the underlying engine not just because I love jasmines, but Jasmine is my middle name. I chose rosemary not just because I love rosemaries, but because I associate rosemary hedges with my mum who taught me to garden. To me, building the tool is a thing I do for myself, but the art is something I can share with others. If you would like to install the rosemary package, yourself, its the usual method for installing from GitHub:

#install.packages("remotes")
remotes::install_github("djnavarro/rosemary")

Each function in the package creates a single png file with the corresponding image, or, in a few cases, creates a few png files with different variants. To recreate the incantations piece, for instance, all you need to do is:

rosemary::incantations()

You would probably need to specify the dir argument so that the function knows where to create the incantations.png file, but if youre lazy like me and dont want to keep specifying it every time you can specify a default location by adding a line like this to the .Rprofile:

options(rosemary.images = "/home/danielle/Desktop")

Enjoy!