Ultimate Resource Guide to Creative Coding

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

https://openframeworks.cc/

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.

An OpenFrameworks project visualizing the path of light inside a diamond

Processing

https://processing.org

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

The start of a program that will draw branches of the Collatz conjecture as it approaches 1. Written in Processing's IDE

P5.js

https://p5js.org/

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.
An image run through some procedural algorithms to create a pattern in p5.jsCheck out http://dayekaye.com/zenso/ for an example

Three.js

https://threejs.org/

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.  

Shouts out to theonlyjprizzle for this audio reactive music video written in three.js
Check out http://complexcontext.co/magnolia for an example.

OPENRNDR

https://openrndr.org/

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. “

 

Pro: https://medium.com/openrndr/what-makes-openrndr-different-from-other-frameworks-for-creative-coding-12b4919b0a49

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.

https://thebookofshaders.com/

shadertoy.com

glslViewer

 

Resources

https://dvnc.tech/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/

 

Leave a Reply