When you hear the word “creative”, what type of profession comes to mind? Maybe a graphic designer, painter, sculptor, illustrator, or writer? It’s unlikely that you would consider a “programmer” when thinking of creative fields of work. But programmers have the potential to be creative and come up with ideas or concepts that will impact others in positive ways.
We often turn to programmers to solve mathematical-related problems, but the concept of mathematics in programming is what powers programmers to innovate. When you think of mathematics you imagine numbers, expressions, and equations. But what about art, music, or even beautiful visuals? Those numbers and equations that we often view as mundane and overly-formulaic can generate beautiful visuals and music. This article will present dozens of examples of motion graphics and interactive visuals created with computational code, along with some useful references and resources.
Beautiful Motion Graphics Created with Programming Link
First we’ll look at some examples of beautiful and inspiring motion graphics created by programmers. Some of these are audio-reactive whereas others are data visualization.
House of Cards40 by Radiohead41
In Radiohead’s video for “House of Cards”, no cameras or lights were used. Instead, 3D plotting technologies collected information about the shapes and relative distances of objects. The video (directed by James Frost) was created entirely with visualizations of that data.
Free Applications for Creating Visuals with Computational Code Link
- Open Processing79
Share your sketches online.
- Useful Processing Applet Source Codes80
A collection of free Java applet source codes.
- Processing with Eclipse81
If you are an avid Java programmer and have been using Eclipse for your daily routine this would be best way to use Processing, making your workspace comfortable and familiar. Another benefit that Eclipse adds is that you can harness the power of the latest Java IDE.
Quartz Composer Link
Using third-party tools like Effect Builder AE83 and QC Integration FX84 you can turn your Quartz compositions into plug-ins for professional video editing / motion graphics applications such as Apple Final Cut, Adobe After Effects, Apple Motion, etc., without writing a single line of code. Many professional applications like Pixelmator use Quartz Composer on Mac to generate graphics and this is one of the reasons why some graphics processing application are available only for Mac OS X. As you probably guessed, Quartz Composer is only available for Mac OS X. Users of Mac OS X 10.6 or later can utilize OpenCL in Quartz Composers.
- Quartz Composer Programming Guide85
Guide for Quartz Composer.
- Quartz Composer Release Notes for Mac OS X v10.686
Highlights major changes to Quartz Composer in Snow Leopard.
- Quartz Compositions87
Forum dedicated to Quartz Composer users.
- Quartz Composer Tutorials88
Collection of some of the best Quartz Composer tutorials.
- Installing 3rd Party Plug-Ins for Quartz Composer89
Kineme offers plug-ins for Quartz Composer, including audio analysis, particle effects, and Kineme3D which can import 3D Models.
- Futurismo Zugakousaku91
A great collection of Quartz Composer examples.
- Sam Kass Blog92
Quartz Composer examples that use iSight as an input source for creating real-time effects.
- Free Webcam Audio Visualizer
OpenFrameworks94 is a tool for creating interactive visuals, and is widely used among creative programmers. The user interface is simple and similar to that of Processing. Similar to Processing, it uses libraries, but it’s difficult to find third-party libraries and requires knowledge of C++ programming.
NodeBox99 is similar to Processing and OpenFrameworks with the only major difference being the programming language used, which is Python. Although NodeBox has a small number of libraries in comparison with Processing, they are of good quality. NodeBox supports PDF, QuickTime movies, fonts and uses the Mac OS X Core Image library for image manipulations (blend modes, color changes, filters etc). NodeBox is available only for Mac OS X.
VVVV is usually used in large media environments like concerts and art installations for real-time motion graphics, video and audio processing and interactive motion graphics. Unlike Quartz Composer, VVVV comes with audio synthesis, 3D Mesh manipulation, and real-time video synthesis built in. It is a powerful application for generating visuals in real-time, even at very high resolution and high frame-rates.
Another important feature of VVVV is that it can make use of multiple computers behaving in sync. All programming and editing can be done on one server computer, while all client computers execute their respective tasks. You can easily use the CPU and GPU power of each computer to do some amazing effects at a cheaper cost. Since VVVV uses DirectX, it’s only available for Windows.
Strukt has done many projects using VVVV, including this beautiful letter universe installation102.
eMotion is a new free application which can generate real-time as well as offset graphics. It has an awesome text and particle engine which is driven by real-world physics. It is available only for Mac OS X.
Creating Interactive Visuals with Computational Code Link
Here are some examples demonstrating adding interactivity into visuals.
Graffiti Analysis 2.0 by Evan Roth
Interactive Projection at GAGA Gallery147112 | Laser tag113
This project uses powerful lasers to virtually in-script graffiti on tall buildings. The laser is tracked and the graphics are projected in real time. Also check out the Eyewriter project which uses the same technology for helping physically disabled graffiti artists to once again bring their talent back to life. You can take a look at how-to and source code114, too.
Lights on138 by thesystemis139
Created for the Ars Electronica museum, which has a facade that contains 1085 LED controllable windows. The window colors are changed in real time with music that is broadcast on speakers surrounding the building. Visuals are created using openFrameworks.
Vinyl Workout141 by Theo Watson145142
A giant record is projected on the floor and it can be played by running around its surface in the direction you want it to go. The speed of playing music is in sync with the speed of the moving person.
Funky Forest – Interactive Ecosystem144 by Theo Watson145142
Funky Forest is an interactive installation for children. They can play with the water on floor, grow trees and water it and interact with various creatures. Built using openFrameworks. Also see these other amazing installations: Interactive Mural146, Interactive Projection at GAGA Gallery147112, Guten Touch148, Jellyfishes149 and Interactive Dancers System150.
Reverse Shadow Theatre152 by Gabor Papp153
Amazing example in which the code powers the real-time puppet animation. Uses multiple software – Processing, Eyesweb and Animata. Both Eyesweb and Animata154 are open source, as is Processing. Here Eyesweb handles the motion tracking while Animata takes in the input data from Eyesweb and does the real-time animation. Also watch Jazz Pub155.
DaVinci162 by Razorfish – Emerging Experiences163
Apart from producing amazing visual and real-time animations, computational code can give new meaning to human-computer interaction. If you like Microsoft Touch Screen Table then you are sure to like DaVinci. You can interact with a virtual world through a user interface that uses object recognition, real-world physics simulation, and gestural interface design.
Books for Reference Link
Programming Interactivity: A Designer’s Guide to Processing, Arduino, and Openframeworks168 by Joshua Noble and Noble Joshua
Processing: Creative Coding and Computational Art by Ira Greenberg
Real-Time Motion Graphics with Quartz Composer: A Hands-On Guide to Learning Quartz Composer172 by Graham Robinson and Surya Buchwald
Processing: A Programming Handbook for Visual Designers and Artists174 by Casey Reas and Ben Fry
Algorithms for Visual Design Using the Processing Language176 by Kostas Terzidis
OpenCV is a library of programming functions for real-time computer vision. You can use it for human-computer interaction, object identification, segmentation and recognition, face recognition, gesture recognition, camera and motion tracking, ego motion, motion understanding, stereo and multi-camera calibration and depth computation, and mobile robotics.
Open-source software to send signals to the i/o board.
- 10 Best Software for Visual Performance Artists181
Some of the best professional software for live audio-visual performance
- Flickr Group: Processing.org182
Collection of graphics created using Processing
- Flickr Group: Algorithmic Abstracts183
Abstract art created by writing code.
- Flickr Group: VVVV184
Collection of images created with VVVV.
- Flickr Group: Generative Visuals185
- 1 http://vimeo.com/1747316
- 2 http://vimeo.com/user656427
- 3 http://vimeo.com/1747316
- 4 http://vimeo.com/user656427
- 5 http://vimeo.com/2726147
- 6 http://vimeo.com/2726147
- 7 http://vimeo.com/7174318
- 8 http://vimeo.com/revoid
- 9 http://vimeo.com/7174318
- 10 http://vimeo.com/2712195
- 11 http://vimeo.com/stefangoodchild
- 12 http://vimeo.com/2712195
- 13 http://vimeo.com/174357
- 14 http://vimeo.com/flight404
- 15 http://vimeo.com/174357
- 16 http://vimeo.com/1693639
- 17 http://vimeo.com/ruimadeira
- 18 http://vimeo.com/1693639
- 19 http://vimeo.com/711364
- 20 http://vimeo.com/user320217
- 21 http://vimeo.com/711364
- 22 http://vimeo.com/994502
- 23 http://vimeo.com/user475471
- 24 http://vimeo.com/994502
- 25 http://vimeo.com/1593564
- 26 http://vimeo.com/user656427
- 27 http://vimeo.com/1593564
- 28 http://vimeo.com/2094557
- 29 http://vimeo.com/flight404
- 30 http://vimeo.com/2094557
- 31 http://vimeo.com/2574845
- 32 http://vimeo.com/okdeluxe
- 33 http://vimeo.com/2574845
- 34 http://vimeo.com/658158
- 35 http://vimeo.com/flight404
- 36 http://vimeo.com/658158
- 37 http://vimeo.com/354751
- 38 http://vimeo.com/lennyjpg
- 39 http://vimeo.com/354751
- 40 http://www.youtube.com/watch?v=8nTFjVm9sTQ
- 41 http://www.radiohead.com/
- 42 http://www.youtube.com/watch?v=8nTFjVm9sTQ
- 43 http://vimeo.com/615344
- 44 http://vimeo.com/flight404
- 45 http://vimeo.com/615344
- 46 http://vimeo.com/3092499
- 47 http://vimeo.com/defetto
- 48 http://vimeo.com/3092499
- 49 http://vimeo.com/1200976
- 50 http://vimeo.com/universal
- 51 http://vimeo.com/1200976
- 52 http://vimeo.com/1912921
- 53 http://vimeo.com/eomine
- 54 http://vimeo.com/1912921
- 55 http://vimeo.com/2120027
- 56 http://vimeo.com/flight404
- 57 http://vimeo.com/2120027
- 58 http://vimeo.com/simongeilfus
- 59 http://vimeo.com/169308
- 60 http://vimeo.com/flight404
- 61 http://vimeo.com/169308
- 62 http://vimeo.com/3550384
- 63 http://vimeo.com/ruimadeira
- 64 http://vimeo.com/3550384
- 65 http://vimeo.com/3245120
- 66 http://vimeo.com/user656427
- 67 http://vimeo.com/3245120
- 68 http://vimeo.com/6239027
- 69 http://vimeo.com/user313340
- 70 http://vimeo.com/6239027
- 71 http://vimeo.com/2016712
- 72 http://vimeo.com/vs
- 73 http://vimeo.com/2016712
- 74 http://vimeo.com/2320742
- 75 http://vimeo.com/aaronkoblin
- 76 http://vimeo.com/2320742
- 77 http://processing.org/
- 78 http://processingjs.org/
- 79 http://www.openprocessing.org/
- 80 http://www.thepixelart.com/useful-processing-applet-source-codes/
- 81 http://backspaces.net/29/processing-with-eclipse/
- 82 http://developer.apple.com/graphicsimaging/quartz/quartzcomposer.html
- 83 http://www.pixlock.com/
- 84 http://www.chv-plugins.com/cms/FxPlug/QC-Integration/QC-Integration.php
- 85 http://developer.apple.com/documentation/GraphicsImaging/Conceptual/QuartzComposer/qc_intro/chapter_1_section_1.html
- 86 http://developer.apple.com/mac/library/releasenotes/GraphicsImaging/RN-QuartzComposer/index.html
- 87 http://www.quartzcompositions.com
- 88 http://www.thepixelart.com/quartz-composer-tutorials/
- 89 http://vimeo.com/809083
- 90 http://kineme.net/
- 91 http://www.zugakousaku.com/
- 92 http://www.samkass.com/blog/page4/page4.html
- 93 http://www.openframeworks.cc
- 94 http://www.openframeworks.cc
- 95 http://wiki.openframeworks.cc/index.php?title=OF_Start_Up_Guide
- 96 http://www.openframeworks.cc/forum/
- 97 http://wiki.openframeworks.cc
- 98 http://www.nodebox.net
- 99 http://www.nodebox.net
- 100 http://nodebox.net/code/index.php/Library
- 101 http://www.strukt.com/
- 102 http://vimeo.com/3765704
- 103 http://vimeo.com/41193
- 104 http://vimeo.com/dimitre
- 105 http://vimeo.com/41193
- 106 http://www.vidvox.net
- 107 http://vimeo.com/4377703
- 108 http://vimeo.com/visionlabz
- 109 http://vimeo.com/5966947
- 110 http://vimeo.com/3047446
- 111 http://vimeo.com/4377703
- 112 http://vimeo.com/262063
- 113 http://www.theowatson.com/site_docs/work.php?id=40
- 114 http://muonics.net/blog/index.php?postid=15
- 115 http://www.theowatson.com/site_docs/work.php?id=40
- 116 http://vimeo.com/7260240
- 117 http://vimeo.com/tangible
- 118 http://vimeo.com/7260240
- 119 http://vimeo.com/6378943
- 120 http://vimeo.com/gregorhofbauer
- 121 http://vimeo.com/6378943
- 122 http://vimeo.com/1362832
- 123 http://vimeo.com/olekristensen
- 124 http://vimeo.com/1362832
- 125 http://www.chrisoshea.org/projects/hand-from-above/
- 126 http://www.chrisoshea.org
- 127 http://www.chrisoshea.org/projects/hand-from-above/
- 128 http://vimeo.com/5756657
- 129 http://vimeo.com/griduo
- 130 http://vimeo.com/5595869
- 131 http://vimeo.com/5756657
- 132 http://vimeo.com/7541297
- 133 http://vimeo.com/user1953754
- 134 http://vimeo.com/7541297
- 135 http://vimeo.com/5094780
- 136 http://vimeo.com/memotv
- 137 http://vimeo.com/5094780
- 138 http://vimeo.com/4706049
- 139 http://vimeo.com/thesystemis
- 140 http://vimeo.com/4706049
- 141 http://vimeo.com/3871236
- 142 http://vimeo.com/muonics
- 143 http://vimeo.com/3871236
- 144 http://vimeo.com/3872687
- 145 http://vimeo.com/muonics
- 146 http://vimeo.com/4177026
- 147 http://vimeo.com/262063
- 148 http://vimeo.com/3288753
- 149 http://vimeo.com/1017469
- 150 http://vimeo.com/3922752
- 151 http://vimeo.com/3872687
- 152 http://vimeo.com/706938
- 153 http://vimeo.com/gabor
- 154 http://animata.kibu.hu
- 155 http://vimeo.com/664556
- 156 http://animata.kibu.hu/tutorials.html
- 157 http://originalhamsters.com/blog/2008/12/15/animata-osc/
- 158 http://vimeo.com/706938
- 159 http://vimeo.com/3193063
- 160 http://vimeo.com/kylemcdonald
- 161 http://vimeo.com/3193063
- 162 http://vimeo.com/3635423
- 163 http://vimeo.com/razorfishee
- 164 http://vimeo.com/3635423
- 165 http://vimeo.com/7063106
- 166 http://vimeo.com/seeper
- 167 http://vimeo.com/7063106
- 168 http://oreilly.com/catalog/9780596154158
- 169 http://oreilly.com/catalog/9780596154158
- 170 http://www.learningprocessing.com/
- 171 http://www.learningprocessing.com/
- 172 http://www.amazon.com/Real-Time-Motion-Graphics-Quartz-Composer/dp/0321636945/
- 173 http://www.amazon.com/Real-Time-Motion-Graphics-Quartz-Composer/dp/0321636945/
- 174 http://www.amazon.com/Processing-Programming-Handbook-Designers-Artists/dp/0262182629/
- 175 http://www.amazon.com/Processing-Programming-Handbook-Designers-Artists/dp/0262182629/
- 176 http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470375485.html
- 177 http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470375485.html
- 178 http://oreilly.com/catalog/9780596514556
- 179 http://oreilly.com/catalog/9780596514556
- 180 http://www.arduino.cc/en/Main/Software
- 181 http://www.thepixelart.com/best-software-for-visual-performance-artist/
- 182 http://www.flickr.com/groups/processing/
- 183 http://www.flickr.com/groups/_aa/pool/
- 184 http://www.flickr.com/groups/vvvv/
- 185 http://www.flickr.com/groups/vjing/