Let’s get it started.
a) Why Processing?
Processing (or P5) is a programming environment, made by artist, with art creation in mind. It is a set of tools, including a programming language, designed to facilitate the use of software within the visual arts, and to promote visual representations within technology. Processing is focused on making digital creation simple and fun, with an emphasis on visuals and interactions. This makes it particularly fitted for makers, designers and visual artists.
Hopefully you already have had a hand on Processing (or at least another classic language) if not, the following workshop might be a bit hard to follow. If you come from another language, or if you're not at ease with Processing, be sure to have close by the reference page, always usefull to remember and rediscover key words and key concepts.
One might wonder why not using a more specific tool for data visualization. That's a very good question. Processing is far for being the fittest tool at hand, and this is precisely why we are using it. If specific tools guide you to create specific visualization, a classic programing language won't force any direction and will let you free to create and invent new paths.
By the way, Processing is an open source language. This means that you have access to the code, and you can do pretty much whatever you want with it. This open source mind is all about sharing, and building together. If you create with Processing, think about releasing your creation with open source so that other people can learn from your work!
b) Setting up Processing
To set up processing, just download it : https://www.processing.org/download/
- Windows: Extract the .zip file you just download anywhere you want (a classic is the Program Files folder, but your desktop will do). Enter the newly extracted folder, and double click on “processing.exe” to start.
- Mac OS X: Unzip your download file, and drag the Processing icon to the Applications folder (or your desktop if you don’t have the right to the Applications folder). Double-click the Processing icon to start.
- Linux: Untar your downloaded .tar.gz file and enter the directory you just created. Run processing with the command ./processing.
You should have now in front of you the Processing environment open. It’s similar on all system, so if you share your code, people should have no issue making it run.
To be sure it's runnng smoothly, just type the following code and make it run (Ctrl+R, or the play button).
rect(25,25,50,50);
If you feel the need to refresh your memory about the IDE you can always refere to the getting started page.
c) Data Visualization
Data visualisation is a field where data is not just states but visually shared, using a medium that is more human. This way, humans can make more of the data set, get more of the information and single out the salient point more easily.
Before anything else, Data Visualization is Design, and hence is about sharing something, an information. It's not about data decoration but about a story, a focus on what the reader will get. Data Visualization is just one tool (among many) to share information. Use it accordingly, with a focus on the message.
You can single out two kinds of content/story, either you have a message you want to share through the data and how you display it, or you want to allow the user to explore your visualization for him/her to make his/her own story. You're never completely on one or the other side, but both extreme are good to keep in mind while giving a direction to your work.
All in all, Data Visualization is a powerful tool for reasoning and communicating about data in a more human friendly way.
Last, be aware of the limitation of the tool. When sharing a message through Data visualisation, you're dependent on the data, its quality and potential bias. Beside, how you use the data might heavily mislead the reading of it. Always be clear and concise, but keep in mind that the mere fact that you have a story in mind might end up as manipulation.
d) Data (input)
Data is what you will feed your system, what you will use to display. Through your practice, you will encounter many kind of datas, and many kind of format style; but whatever you learn on one will be mainly applicable for other data sets. You can have textual data, graphs data (like networks & trees), tables, streams (real time data)... It's good in general to have a feel of data and its classic formatting. Beyond that, dataset can be a great source of inspiration when you're not sure what to visualize!
All in all, the process is straight forward: find data, acquire data, filter data, process data, organise data, visualise data. Each step are a source of inspiration and an occasion to express yourself.
e) Medium (output)
Last, medium. You're not just visualizing data in general, you're outputting it someplace specific. Would that be on paper (and already different if a book, newspaper, poster...), on a website, on a tablet or smartphone, on a computer screen, as a projection... They all play differently. It's where your sensibility will be most useful: learning what works on which mediums.
For instance, a good question to ask yourself when presenting data is "Should it be static, dynamic or interactive?". Depending on your choices and conditions, different media will suit your needs best. In short: to each medium it specificity.
On a side note, it is important to see code as a medium too, the one you create with. It's a medium that allow for multiple kind of creation, art & design among others. Having a good grasp of what code is allow you to better understand its possibilities and precise your sensibility. Code is a language, a medium, with which you can do many things. You can draw, write poems or sign contracts with a pen. Same with code. And it’s by its practice, its knowledge and the culture you will create that will emerge interesting digital art, design, prototypes... Many thing can be said of the nature of code, and while that would be very interesting to develop, that is out of the scope of this workshop. While that is true, I hope this workshop will make you see how poetic code can be, even if it’s sometimes frustrating: as any deep and complex language is when you are learning it.