Ultimate Resource Guide to Creative Coding
Are you unsure of where to start when it comes to creating a project? Look no further than this ultimate resource guide to creative coding.
With the rise of STEAM-based teaching, creative coding finds itself right in the crosshair of our zeitgeist. It straddles the line between form and function. When it comes to writing a program in general it is a specific task to decide why you would choose one language over another. This ultimate resource guide to creative coding will cover the pros and cons of different frameworks, some useful websites for inspiration and learning, and resources on where to find work as a creative coder. Explore, create, share.
Openframeworks
Language: C++
“openFrameworks is an open source C++ toolkit designed to assist the creative process by providing a simple and intuitive framework for experimentation.”
Pro: Runs on top of OpenGL, so requires some knowledge about that graphics library. A huge range of tools and add-ons. Cross-compatible (for now…Apple is deprecating OpenGL support). A large community of developers with open source projects.
Con: A lot of setup necessary and previous knowledge of developing audio/visual software.
Processing
Language: Java
“Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology. There are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning and prototyping.”
Pro: Provides its own IDE for quick development and easy execution. Easy to pair with other Java libraries. Cross compatible. Has a focus on education so it is easy to learn.
Con: Can easily become bloated and slow
P5.js
Language: JavaScript
Pro: p5.js is easy to use out of the box. You write it just like you would any other javascript library and it works with familiar setup() and update()/draw() functions. If you know Processing than p5 works very similarly considering it was designed with the same intentions: “to make coding accessible for artists, designers, educators, and beginners”. P5 introduces the ability to interact with HTML5 elements making it an excellent web design tool. There is a large community and lots of documentation for help getting started.
Con: Because it is a web-based graphics library it can be slow and is not great to use for large projects. Along similar lines garbage collection is not ideal.
Check out http://dayekaye.com/zenso/ for an example
Three.js
Language: JavaScript
Pro: Very similar to p5.js in my opinion. Includes a built-in web editor for very fast prototyping. https://threejs.org/editor/
Con: Frequently changing without updated documentation.
Check out http://complexcontext.co/magnolia for an example.
OPENRNDR
Language: Kotlin / Java
To be honest I have very little experience with this framework so most of this is unverified researching about it.
“In short, OPENRNDR is a tool to create tools. It is an open source framework for creative coding for Kotlin / Java 8+ that simplifies writing real-time interactive software. It fully embraces its existing infrastructure of (open source) libraries, editors, debuggers and build tools. It is designed and developed for prototyping as well as the development of robust performant visual and interactive applications. It is not an application, it is a collection of software components that aid the creation of applications. “
Con: Not easy to set up from the instructions provided on the website. Where all the previous frameworks use a very similar syntax this was a little more foreign to me.
Tools
In this ultimate resource guide to creative coding, I figured I would provide some ways to get started writing shaders in glsl. While writing shaders is tedious and difficult there are a lot of great algorithms and methods to learn. I would start with reading The Book of Shaders and playing around with different chapters.
Resources
https://dvnctech.wpcomstaging.com/2018/05/31/a-case-for-the-steam-powered-future-we-crave/
http://creativeapplications.net/jobs
https://www.reddit.com/r/generative/
http://www.creativeapplications.net/tools/