by Danielle Navarro
🗓️ July 25 and 26, 2022
⏰ 09:00 - 17:00
🏨 Maryland 1
✍️ rstd.io/conf
Computer-generated artwork has been around for quite a while. The idea of using R for this purpose, however, is a little more recent. Designed originally as a programming language for academic statistical computing, R is now a mainstream language for data science and analytics. Can it also work as an artistic medium? Is there an overlap between our familiar data science workflows and the artistic process? Perhaps we can become better data scientists through art, and vice versa.
This workshop provides a hands-on introduction to generative art in R. You’ll learn artistic techniques that generative artists use regularly in their work including flow fields, iterative function systems, and more. You’ll also learn about R packages that are specialized for generative art including jasmines, ambient, and ggfx. But more than that, you’ll learn how to reuse skills you already have as part of an artistic process: with a little work, ggplot2, dplyr, and Rcpp can become an artist's best friends. Finally, I’ll talk about how generative art helped me learn new programming skills and turned out to be valuable to me in the workplace.
The assumed background is that you’re reasonably comfortable using R and RStudio, and have experience with tidyverse. There are places where C++, git/github, and blogdown are used, but these aren’t major parts of the workshop.
Everything you need for the workshop is (or will be!) posted online at art-from-code.netlify.app.
If you want to run the workshop locally, the easiest way to get set up is as follows. First, create project from GitHub, e.g., with the command
usethis::create_from_github(
repo_spec = "rstudio-conf-2022/art-from-code",
destdir = "wherever/you/would/like"
)
Then, within the project, install dependencies:
remotes::install_deps()
An alternative option is to use RStudio Cloud. To do this, go to rstudio.cloud and create a project from this GitHub repository rstudio-conf-2022/art-from-code.
From there it's a two-step process. First, the cloud machine won't have the remotes package so you'll need to install that:
install.packages("remotes")
Then you can install all the dependencies listed in the DESCRIPTION file with:
remotes::install_deps()
Time | Activity |
---|---|
09:00 - 10:30 | Session 1: Get started |
10:30 - 11:00 | Coffee break |
11:00 - 12:30 | Session 2: Spatial noise tricks |
12:30 - 13:30 | Lunch break |
13:30 - 15:00 | Session 3: Polygon tricks |
15:00 - 15:30 | Coffee break |
15:30 - 17:00 | Session 4: Shading tricks |
Time | Activity |
---|---|
09:00 - 10:30 | Session 1: Iterated function systems |
10:30 - 11:00 | Coffee break |
11:00 - 12:30 | Session 2: Tiles and tesselations |
12:30 - 13:30 | Lunch break |
13:30 - 15:00 | Session 3: Pixel shaders |
15:00 - 15:30 | Coffee break |
15:30 - 17:00 | Session 4: Wrap up |
Danielle Navarro is a generative artist, data scientist, professional educator, mathematical psychologist, academic professor in recovery, open source R developer, and coauthor of “ggplot2: Elegant Graphics for Data Analysis” (3rd edition). She is currently a developer advocate at Voltron Data working with the Apache Arrow ecosystem. You can find her art at https://art.djnavarro.net, and other professional details at https://djnavarro.net. Danielle lives in Sydney, Australia with her two children and her Netflix subscription.
This work is licensed under a Creative Commons Attribution 4.0 International License.