DigitalFruit- Aaron Penne

DigitalFruit is an interview series from Adafruit showcasing some of our favorite digital fine artists from around the world. As we begin this new decade with its rapidly changing landscape, we must envision our path through a different lens.  Over the next few weeks we’ll feature many innovative perspectives and techniques that will inspire our maker community to construct a bold creative frontier.  The only way is forward.

1. Where are you based?

Seattle, Washington, USA

2. Tell us about your background?

First off, I was an Electrical Engineer for the first years of my career, so I have used Adafruit many times and am thrilled to be talking with you!

While studying Electrical Engineering I worked at a local coffee shop and wrote poetry to perform with the Ruthless Hippies ( I did not shy away from expressing myself, but I was analytical by nature. It is only natural to have found a creative outlet through technology. I learned to code through my embedded systems education, but I learned to love programming from my friend and mentor emptymonkey ( They treated programming as a meditation, a creative exploration of fundamentals, and that approach has shaped my career.

After school I worked in aerospace as an engineer on a sensors and camera team, responsible for managing all the data coming from our aircraft. I understood that data was more important in some ways than the physical components. I pivoted careers to become a Data Scientist at Booz Allen Hamilton then joined Amazon Web Services as a Data Engineer. These data focused jobs involved data visualization which I absolutely loved and found success with ( Edward Tufte’s data viz rules are law, and I worked hard to produce visualizations within those constraints. At a certain point I wanted to take the matplotlib scripts beyond those rules and stumbled upon Zach Bodtorf’s ( generative artwork created with matplotlib and I haven’t looked back since.

3. What inspires your work?

Curiosity. I want to explore and experiment and push the boundaries of my understanding of code. The aim is to create an image that has movement, life, or latent emotion. I go back and forth between thinking the code itself is the artwork, in a Sol Lewitt instruction way, or that the code doesn’t matter at all and the output is all important. Either way, exploring surprising results or taking an idea to completion are equally satisfying.

Artists like Zach Lieberman (, Jared Tarbell (, and the entire online generative artwork community keep me inspired by their novel output. The artwork in the generative space is much more diverse and mature than expected, and it continues to surprise me. There is a never-ending stream of new ideas to be inspired from, and the nature of programming means you can follow Zach Lieberman’s motto of “always be iterating.”

4. What are you currently working on?

I spent the past few months exploring domain warping and working with regular Python image libraries (instead of Processing). This has been a rewarding experience and allowed me to explore the line between digitally created images and organic feeling forms. Currently I am taking this ethos back into Processing and working with primitives to create complex compositions. Leveraging the computer’s ability to draw thousands of dots with every frame of a sketch is very exciting, but I want to avoid hardedge lines or shapes. The space I am exploring is the same gray area between digital and organic, but now incorporating simple loops and rules to create the complexity. With a few lines of code an entire particle system with wild interactions can be formed, and the results are exciting.

To this end I recently explored Jared Tarbell’s Happy Place work from 2004. The work is over 15 years old but still feels years ahead of current generative artwork. I ported components of Tarbell’s code to Python and learned quite a bit from their approach. There is a tension between the rendered components and the underlying movement of particles that is very interesting. Recreating the work of the master’s is always a useful exercise, as it is in painting classes. It is possible to gain a new perspective by following their approach.

5. Describe your process and what tools you like to use.

I jot down ideas in a notebook or in OneNote depending on when the idea hits. I’ll let it sit for a few days, and wait until the mood to actually create comes on its own. For me, it’s not worth forcing it. My current setup, and it has changed frequently, is to use the command line implementation of I describe it on GitHub:

Python is preferred because I want to augment the skills used in my day job. Programming in the same language but with a different approach improves my problem solving at work, so there is a dual benefit of creative outlet and technical practice. Sometimes I code on a Macbook, other times on a Raspberry Pi. I use git religiously for fear of losing work and not being able to recreate a piece. Even further, I’ve started saving off a copy of each run of each script into a code_archive directory with the same filename as the output image, so I will always (knock on wood) be able to recreate an image.

When starting a new project I like to scale the size down to around 1000 px by 1000 px to allow quick iteration. After finding something worth exploring I will create hundreds of variations, then look at them all as small thumbnails using XnViewMP ( to quickly judge which ones have good composition from “far away”. Then I will hone in on those visually pleasing outputs and tweak parameters. Frequently at this stage an entirely new idea or three come up and I create new directories and scripts and either orphan them or explore them as time permits. My goal in creating artwork is to explore, so I let the instincts lead, and leave the code somewhat messy. This is great for getting somewhere interesting quickly but is awful for going back and cleaning up the code. But that’s ok, this is a creative outlet, not a code review! In spite of that, I like to go back and refactor code so I can tweak it easier later. Also, I have fellow artists in mind, since I try to always open source my code it is helpful for the future learner if the code is readable.

Open sourcing my code comes directly from emptymonkey’s love of open source and the huge amount of learning I have gained from other open source artwork. Without folks like Kjetil Golid ( and Dan Shiffman ( I would never be able to flourish in this space.

6. What does your workplace or studio look like? Do you work in silence or listen to music while you work?

Working at home is best for me, usually while my wife and pugs are asleep (and while I should be sleeping). I prefer to create artwork from my couch or bed, somewhere comfortable. Definitely not my work desk otherwise if I make artwork after work it feels like I have been coding for 12 hours straight, because, well, I have.

Music is its own inspiration with layered patterns, sometimes that adds quite a bit to the process. Other times silence is preferred to minimize distractions. I listen to all kinds of music constantly, but while working I enjoy Four Tet, Jack Rose, Animal Collective, or anything good.

7. How has technology shaped your creative vision?

The primary thing for me is leveraging the computer’s skill of doing lots of repetitive things very quickly. It would take me a long time to draw 1,000,000 circles with a pencil, but my computer can do it almost instantaneously. Experimentation is easy with a program. Instead of redrawing everything from scratch, a generative artist can change a few variables and rerun the program, getting a completely new output. This can lead to interesting results as Tyler Hobbs ( talks about; instead of changing a parameter from 0 to 1, change it to 1000 or -1000. It pays to go big with experimentation, the computer won’t get hurt.

Patterns in nature and in everyday objects are very exciting when looked at with generative artwork in mind. Some seemingly boring bark or wrinkles in fabric become inspiration and a new problem to solve. When going about the day I see all kinds of interesting forms that can be interpreted with a generative program. It would take me many years to become a skilled painter, but I’ve already spent years becoming a programmer, so I am able to get to the end result of an artwork and feel satisfied with the output much faster by coding than if I tried to paint something beautiful.

8. Any tips for someone interested in getting started in the digital art form?

Just jump in and try it out. There are so many tools to try like Processing, openFrameworks, OPENRNDR, TouchDesigner, Blender, Python libraries, etc. Pick the one that has your language/ethos of choice and go for it. If you are new to programming, I would recommend Processing because the community is massive, open, and geared towards teaching. If you are an experienced programmer, I would still recommend Processing but from the command line so you can use vim or the development environment of your choice.

Allow yourself to be inspired by more than just other digital artwork. Absorb all sorts of mediums, patterns, data inputs, plants, architecture, etc. There are so many interesting patterns and forms waiting to be unraveled. Something that has helped me grow my skills is to recreate aspects of pieces by superior artists. Doing this to practice will teach you quite a bit. Giving yourself parameters to work within helps focus your output and gives more interesting results once you start to tweak it.

Some extra bits: Use the HSB color space. Don’t rely on random noise or Perlin noise, try to use something with a pattern like sine waves or data inputs. Save the random seed used so you can recreate your work. Get involved in an artistic community in your town or online such as I like to think that your next piece is always your best piece. By that I mean don’t get hung up on the current work or be too precious about it. Just keep on chugging along, full steam ahead, because your skills increase with every iteration.

9. Where do you see generative and digital art heading in the future?

Generative art is such a fascinating space because technology is always getting more powerful. Although generative artwork has been around since the middle of the 20th century, it still feels new. Instead of being static like a finished painting, a generative artwork can change with every run of the program, its outputs are potentially limitless. Instead of being a distant object it can be interactive, projected, immersive, on your phone, on your TV, in your video games. Investigating creative ways to apply artistic concepts to this massive digital world is very exciting. I’m thinking of Refik Anadol’s projections on the side of the Walt Disney Concert Hall in Los Angeles ( which brought the architecture to life, or of Daniel Rozin’s interactive Mechanical Mirrors which respond in real time to the viewer’s presence ( By embracing these sorts of possibilities creativity will flourish in exciting new ways.

The community of creative coders is the core of what I think makes this space special. I have been lucky enough to form a Generative Artists Club with a few hundred artists who build off of each other. The open conversation around algorithms, printing, plotters, color theory, etc. breathe life into the network. I believe firmly that this community is pushing the generative artwork medium forward. Increasing diversity and inclusion in this community is important. The more people that create generative artwork, the more everyone involved will benefit and learn new things. I’ve seen this attitude and collaboration among many other artists, and believe it will propel generative artwork into the future.

Aaron Penne




DigitalFruit is curated by Adafruit lead photographer- Andrew Tingle

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Join 27,000+ makers on Adafruit’s Discord channels and be part of the community!

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more

CircuitPython – The easiest way to program microcontrollers –

Maker Business — To make it through a tough business cycle, layoffs should be a last resort

Wearables — Hot glue’s undo button

Electronics — Servo Pulses

Python for Microcontrollers — Python on Microcontrollers Newsletter: CircuitPython 6.2.0 released, and More! #Python #Adafruit #CircuitPython @micropython @ThePSF

Adafruit IoT Monthly — ESP Earrings, RP2040 WiFi, and more!

Microsoft MakeCode — Mechanical Coin Bank

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — Adafruit New Products this Week: featuring Adafruit FunHouse – WiFi Home Automation Development Board!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

No Comments

No comments yet.

Sorry, the comment form is closed at this time.