The 2018 RobotArt Competition
Behind me are my 6 submissions into the 2018 competition. Every brush stroke in these paintings were done with the robotic arm that I am holding. NO HANDS!
My process of getting a robot to paint:
When I started the robotics project, I first needed to figure out which robot would suite my needs and then understand its capabilities: accuracy, repeat-ability, and most importantly how to control it. I decided the best way to start was with an off-the-shelf system to focus on the programming (although I’d LOVE to build a robot one day).
Early Paintings – November 2017
My first robotic arm had wasn’t consistent enough for drawing with a +/-5mm tolerance in all directions (sometimes the pen would touch the page other times it would not). This created many challenges especially in the z-direction (up & down) — not great for putting a marker or a pencil consistently to the page. Sometimes the robot would slam the page with a marker and other times go off the painting area (perhaps creating “happy accidents” that are often wanted in art. Since a large paintbrush with long bristles is forgiving with large z ranges for heights (it will touch the page at various heights), my very first paintings were random straight lines with a larger brush.
My early paintings (above) were random brush strokes because my first robot as the robot had no accuracy to hit programmed locations (let alone paint a straight line). The change in thickness of the brushstroke in both pieces is due to the inaccuracy of the robot!
Importance of the Under-Painting
When using acrylic paint in my process by hand, I paint in discrete layers. So I used this layering philosophy to programming my robot from the beginning. In my process, it is critical to have an under-painting to get depth in a painting (more important to me than adding the ability to mix paint on a palette). So the first things I programmed the robot to do was to clean the brush thoroughly and to wait for layers to dry before dipping the brush into the next color. In the videos I posted for the competition you will see the robot waiting up to 7 minutes between colors.
Mountain Range (6″ x 6″ Acrylic on Canvas) has a bright blue under-painting that you can see in progress on the left side. The blue peaks through on the final painting (right)
Progression from wobbly lines to painterly curves
My first robot had servo motors that vibrated a lot… and it eventually died. The replacement robot used with stepper motors was higher precision +/- 0.2mm. Since I had already started on the path of random lines to compensate for first robots issues – I continued on this programming path.
Due to the accuracy of the new robot, the lines it painted were too straight; not painterly, at all! So I spent time working out the trigonometry to draw curves with an input of two x,y coordinates and the angle of the curve.
The most significant programming time was spent to create code that painted curves (right) versus straight lines (left). Artists paint with human joints of their wrists making most paint strokes have a curve to them. To get this painterly look this was a critical step in the development of my robotic painting process.
Finding Subject Matter for the Robot
I then created brush stroke sets based 8 colors as limited by the competition. It took many, many attempted paintings to figure out how to optimize the brush stroke set based on the image file.
When considering what to paint for the Robot Art Competition, I looked carefully at the brush strokes the robot created. I initially tried landscape paintings, but had awful results. Mostly because landscapes require a lot of blending and reviewing with a human eye to get thoughtful perception of depth, likewise landscapes are best on bigger canvases and my robot was limited to 6″ x 6″ squares. Floral immediately made sense for the composition as depth is not required and I could get bold paintings with minimal colors in a very small space (6” x 6”) to be exact. I also loved the idea of a very technical piece of equipment painting a very human interest like flowers.
I chose floral still-life as the main subject matter of my 2018 submission based on the capabilities of the robot, the limits of the competition… and well people like flowers 🙂
5th place overall
My artwork placed 5th overall, you can see the results here. Thanks to everyone that took part in the public voting. As a non-American participant, my prize money had to be donated to a US charity (as part of the rules). I donated my prize to the Oceanites who study climate change in Antarctica through monitoring the penguin population. I wanted to support a cause I felt strongly about that was not limited to the US. My artwork gained international media attention which you can read here.
My 2018 submissions to the 3rd annual Robot Art Competition.
Getting a robotic arm to paint was fun, challenging and exhausting, on average each entry has about 15 hours of work (excluding the hours of doing trigonometry and learning python before I could start considering a painting… then the post painting video editing for the competition). My art practice (by hand) has improved as this project made me focus on simplifying my work. Getting to basics and creating art with a very limited capability tool. Also defining my brush strokes or how to paint an area vs. outline an area.
Blog Posts about the Robotic Arm
Read more specific stories about getting a robot to paint:
With my robotic arm project, 'Painting Variables', I keep getting asked to share videos of the process. I thought it might be fun as a first example to attempt to do an "Aquatic" Paint-by-Numbers. I have been focused on making the brushstrokes more organic which lends...
I had to open my algebra textbooks to review my engineering notes to paint curves. SOH CAH TOA is written throughout my notebook to remind myself of the sine and cosine calculations. Thankfully it came back to me quickly. The two paintings below are VERY different,...
There was a mistake in my code. However, I think the results were rather... artistic. When working on my color mixing software as mentioned in my previous color mixing post, I separated the sub-routines for cleaning the brush and dipping the brush into a new color....