Viewing items tagged with: OpenFrameworks

Please Log In or Register


“Elements is an interactive installation where visitors embody one of four elements: Earth, Wind, Fire or Water. Through these dynamic forms, they can define, transform and sculpt the environment, using the elements to bring life and light together in a playful, ever changing space.” – Design I/O
To read the full description and a complete list of credits, please visit the post on

Screen saver (OSX only) available for download.

Created by Design I/O: Theo Watson, Emily Gobeille and Nick Hardeman.

Made while the Minister of Interactive Art at Design I/O.











Drawing Machine

Scarf Series

Each pen plot is unique, generated from custom code that draws inspiration from a folded, patterned scarf. Each piece is original and will only be printed a single time. Many of these 11×17″ pieces take many hours to print due to the complex, intricate lines and the slow deliberate movement of the HP7475 plotter.

Scarf Series: Number 5

“Scarf Series: Number 5” 11 x 17 in.

Scarf Series: Number 6

“Scarf Series: Number 6” 11 x 17 in.

Scarf Series: Number 7

“Scarf Series: Number 7” 11 x 17 in.

Scarf Series: Number 8

“Scarf Series: Number 8” 11 x 17 in.

Scarf Series: Number 11

“Scarf Series: Number 11” 11 x 17 in.

Scarf Series: Number 12

“Scarf Series: Number 12” 11 x 17 in.


Stacks Series

Original algorithmic artworks generated from custom code that draw inspiration from a stack of books. Color is added by hand using water color.


“1468020948” 11 x 17 in.


“1468342185” 11 x 17 in.


“1468278549” 17 x 11 in.



Bruce is a portrait that marries algorithmically generated content with hand made strokes. Created using custom beard and braid generation applications that drive the HP7475 pen plotter mixed with hand drawn pen marks and watercolor. More information about the process available in this process breakdown post.



“Bruce” 11 x 17 in.

Beard Close Up



A combination of hand and machine made marks driven by custom software. Pen lines created using the HP7475 pen plotter.


“Barracuda” 11 x 17 in.




Squids are created using a custom squid generator application I wrote in OpenFrameworks. Each squid is randomly generated and therefore unique. Squids are printed on a pen plotter and then water colored by hand. More information about the process in this post.


“Genevieve” 8.5 x 11.5 in.

Lucas by Nick Hardeman

“Lucas” 9 x 11.5 in.

Harold by Nick Hardeman

“Harold” 9 x 11.5 in.

Paola by Nick Hardeman

“Paola” 9 x 11.5 in.

Valeria by Nick Hardeman

“Valeria” 11 x 18 in.

Alfredo by Nick Hardeman

“Alfredo” 11 x 18 in.

Damarion by Nick Hardeman

“Damarion” 11.5 x 18 in.

Dede by Nick Hardeman

“Dede” 9 x 11.5 in.



Peacocks are created using a custom peacock generator application written in OpenFrameworks. Each peacock is programmatically generated, and therefore unique. Peacocks are printed on a HP7475 pen plotter and then water colored by hand. Each peacock is a triptych, composed of three 11 x 17″ pieces to compose the complete work. More information about the process in this post.

Franklin by Nick Hardeman

“Franklin” Triptych: three 11 x 17 in. pieces.





Damarion – Squid Process Break Down

Squids are created using a custom squid generator application I wrote in OpenFrameworks. Each squid is randomly generated, and therefore unique. Squids are printed on a pen plotter and then water colored by hand. Below is the process for creating “Damarion.” More pen plotter pieces are viewable in Drawing Machine.

The output printed on the pen plotter and then water colored by hand, yielding the finished result below:

Damarion by Nick Hardeman




Just finished a Barracuda using the HP7475 pen plotter, some custom code and watercolor. I love that the output from my application will ultimately result in physical pen marks on a piece of watercolor paper. Available for purchase





Pen Plotter Portrait “Bruce” – Breakdown





Beard Close Up

Plotting on the HP7475

Beard Generator

Below is a screen capture of the beard generator application I created in openFrameworks.  Parameters could be adjust to control the appearance of the beard, such as max length, max curliness, gravity, etc.

Generative Beard Growth

I drew some guide lines in Illustrator so I would know the general shape of the beard. Imported the lines into OF and made a grid of hairs and watched them wander, curl and grow.

Beard Outline

One issue with the pen plotter is the lack of clipping. Which can be seen in the above gif. The lines eventually just form a dark mass of curlies. The plotter receives commands that construct lines and outlines, so I had to write some clipping code so that each hair would look more like a tendril. The output after clipping below.


Braid Generator

Now onto the braids. Instead of creating the braids entirely programmatically, I wanted finer control of their appearance. So I created three “braid pieces” in Illustrator. They are in green, pink and yellow. I designed them to be repeatable, nestling in nicely with their neighbors.


Braid Pieces

Each piece has four points of reference, as shown by the orange circles. They helped me determine the width and height of the braid and the offset of the lines to the center axis. I used the local x distance from the center axis to rotate the line points around a curve using the normal along the curve.


This position rotation is applied to every point in every line of each piece. The results of using many braid pieces along curved paths are depicted below.


Braid Generator

HP7475 Pen Plotter with OpenFrameworks

HP7475 Pen Plotter Printing from OpenFrameworks
I recently purchased a HP7475 Pen Plotter from ebay for about $110 with shipping. I love that this printer uses physical pens that are dragged on paper to make marks. The marks have the inconsistencies that arise when drawing with a pen on paper and they are beautiful.
The first step was talking with the printer from my MacBook. This printer was initially released in 1983. Several people have detailed steps about sending printer commands from a modern computer.

The printer uses a language called HPGL that is rather straight forward. The above links provide several different ways to communicate with the printer. I want to use OpenFrameworks to communicate with the printer and the above methods seem overly complicated to achieve this. Add-on time!
The original manual is online and there is a cheat sheet for some of the printer commands.
I wrote ofxHPGL to communicate with the printer and it’s rather straightforward. The serial buffer on the printer is super tiny, so there is a sleep millis in there so that the buffer doesn’t overflow. If the printer starts acting weird, that is usually the issue.





ofxBullet Soft Bodies

How to Add ofxSyphon to OpenFrameworks

Step by Step video on how to add ofxSyphon addon to an empty OpenFrameworks project. View in full screen.

It’s hard to read the framework search path. It is: “$(SRCROOT)/../../../addons/ofxSyphon/libs/Syphon/lib/osx”


Always wanted to figure out shadows.
Simple approach in OpenFrameworks. Cleaned it up and put it in an addon.

Shadows in OpenFrameworks

OF Flag with ofxBullet Soft Bodies

OF Flag

Having some fun with soft bodies in ofxBullet

Older Posts
Newer Posts