Awesome Creative Coding
Carefully curated list of awesome
creative coding
resources primarily for beginners/intermediates.
Creative coding is a different discipline than programming systems. The
goal is to create something expressive instead of something functional.
Interaction design,
information visualization and
generative art are all different types of creative coding
– which has become a household term describing
artworks articulated as code.
Please read the
contribution guidelines before
contributing.
⭐ Don’t know where to start? Check out
Creative Coding course on Frontend Masters. ⭐
🌟 Want to go deeper? Check out
Advanced Creative Coding with WebGL & Shaders on Frontend
Masters. 🌟
Contents
Books
-
Generative Art: A Practical Guide
- Practical guide using Processing.
-
Generative Design -
Visualize, Program, and Create with Processing.
-
The Nature of Code - Simulating
natural systems with Processing.
-
Programming Design Systems
- Practical introduction to the new foundations of graphic design.
-
Learning Modern 3D Graphics Programming
- Series of tutorials on using OpenGL to do graphical rendering.
-
Programming Interactivity
- Designer’s Guide to Processing, Arduino, and openFrameworks.
-
openFrameworks Essentials
- openFrameworks beginner Guide for programmer, visual artist, or
designer.
-
Mastering openFrameworks: Creative Coding Demystified
- Advanced in depth guide to openFrameworks.
-
Algorithms for Visual Design Using the Processing Language
- Experiment with design problems to create 3D animations, GUIs, and
more.
-
Foundation HTML5 Animation with JavaScript
- Everything you need to know to create animation using the HTML5
canvas.
-
Playing with chaos -
Programming Fractals and Strange Attractors in JavaScript.
-
Ray Tracing in One Weekend
- Mini book about Ray Tracing.
-
Processing 2: Creative Programming Cookbook
- Guides you to explore the Processing environment using practical and
useful recipes.
-
Data-driven Graphic Design
- Creative Coding for Visual Communication.
-
Real-Time Rendering
- Learn how to use modern techniques to generate synthetic
three-dimensional images in a fraction of a second.
-
Graphics Shaders: Theory and Practice
- Introduction to shader programming in general, but focusing on the
GLSL shading language.
-
Anton’s OpenGL 4 Tutorials
- Practical guide to starting 3d programming with OpenGL.
-
Physics for JavaScript Games, Animation, and Simulations
- Teaches JavaScript programmers how to incorporate real physics into
their HTML5 games, animations, and simulations.
-
Math for Programmers
- Book teaches you to solve mathematical problems in code.
-
Synthèse d’images avec OpenGL (ES)
- Book in french, which covers OpenGL, OpenGL ES and WebGL.
-
Hands-On Music Generation with Magenta
- Design and use machine learning models for music generation using
Magenta and make them interact with existing music creation tools
Online Books
Courses
-
Create 3D Graphics in JS Using WebGL
- Get started creating content with WebGL without any frameworks.
-
Learn HTML5 Graphics and Animation
- Introduction to the canvas 2D drawing API.
-
Interactive 3D Graphics
- Udacity course that teach you the principles of 3D computer graphics.
-
Interactive Computer Graphics
- Computer graphics course from Coursera.
-
Kadenze Creative Coding
- Selection of Kadenze courses covering p5.js, TensorFlow, Max/Jitter,
and ChucK.
-
Think. Create. Code
- EDX course to learn programming with ProcessingJS.
-
Creative Programming for Digital Media & Mobile Apps
- Coursera course on creative coding with processing.
-
Imaginary Institute -
Learn how to create gorgeous interactive graphics.
-
Future Learn: Creative Coding
- Use computer programming as a creative discipline to generate sounds,
images, animations and more.
-
Intro to JS: Drawing & Animation
- Use JavaScript and the ProcessingJS library to create drawings and
animations.
-
Advanced JS: Natural Simulations
- Combine JS, ProcessingJS, and mathematical concepts to simulate nature
in your programs
-
Interactive Data Visualization with Processing
- Learn how to read, map, and illustrate data with Processing.
-
Programming Data Visualizations: A Coding Toolkit for Processing
- Join information designer Nicholas Felton in the world of Processing.
-
Introduction to Data Visualization
- Join Nicholas Felton for a smart, comprehensive, and inspiring intro
to data visualization.
-
Programming Graphics I,
2,
3
- Learn generative art and Processing with art with Joshua Davis.
-
Creative Coding with Canvas & WebGL
- Workshop by Matt DesLauriers. that teaches you about generative art,
interactive animations, 3D graphics, and shaders.
-
Advanced Creative Coding with WebGL & Shaders
- Workshop by Matt DesLauriers that go deeper into graphics programming,
math and shaders.
Frameworks • Libraries • Ecosystems
-
Processing [Cross-platform] -
Computer programming language and IDE for visual arts.
-
Cinder [Cross-platform] - Open
source library for professional-quality creative coding in C++.
-
openFrameworks [Cross-platform]
- Open source C++ toolkit for creative coding.
-
C4 [iOS] - Open-source creative
coding framework for iOS.
-
Unity [Mac, Win] - Game engine, but
useful for creative coding and installations.
-
Godot
[Cross-platform] - Open source game engine, that can also be used for
all sorts of things.
-
PlayCanvas [Cross-platform] - Open
source, realtime collaborative WebGL engine.
-
hg_sdf [Cross-platform] - GLSL
library for building signed distance functions.
-
HYPE [Cross-platform] -
HYPE_processing, is a collection of classes that performs heavy lifting
tasks while using a minimal amount of code writing.
-
nannou [Cross-platform] - Open-source
creative coding framework for the Rust language
-
thi.ng [Cross-platform] - Open source
collection of computational design tools for the Clojure and
ClojureScript languages
-
PixelKit [iOS, Mac] - Open source,
live graphics, Swift framework, powered by Metal.
-
OPENRNDR [Cross-platform] - Open
source library for creative coding written in Kotlin.
-
Phaser [Cross-platform] - HTML5
framework for building games, uses both a Canvas and WebGL renderer.
-
Canvas-sketch
[Cross-platform] - HTML5 framework for making generative artwork in
JavaScript and the browser.
Visual Programming Languages
-
vvvv [Win] - Hybrid visual/textual
live-programming environment for easy prototyping and development.
-
VisualScript
[Cross-platform] - Visual coding language in the Godot game engine.
-
NodeBox [Mac, Win] -
Cross-platform, node-based GUI for efficient data visualizations and
generative design.
-
TouchDesigner [Mac, Win] -
Visual development platform to create realtime projects.
-
Quartz Composer
[Mac] - Development tool for processing and rendering graphical data.
-
Vuo [Mac] - Live interactive-media
programming environment.
-
Max [Mac, Win] -
Visual programming language for media.
-
Pure Data [Cross-platform] - Open
source visual programming language for multimedia.
-
i-score [Cross-platform] -
Interactive sequencer to control creative coding libraries and toolkits.
-
tooll [Win] - Open source tool for
creating interactive 3d content and animations.
-
XOD [Cross-platform] - Open source visual
programming language and environment for microcontroller-based projects.
-
Isadora [Cross-platform] - Scene
based media control software with integrated projection mapper.
-
cables [Cross-platform/Web] - Your model
kit for creating beautiful interactive content. Currently in private
beta, invites can be requested.
-
eternal [Web] -
Programs as graphs and graphs as compositional tools for creation
-
Notch Builder [Win] - Node-based
authoring tool with a strong focus on real-time graphics. Currently in
beta.
-
Synopsis - A suite of open source
software for computational cinematography.
-
JOY.JS - Realtime visual coding
tool, easy to understand and aimed at beginners.
-
Pixel Nodes [iPad] - Live graphics
node editor, powered by PixelKit.
Sound Programming Languages
-
SuperCollider
[Multi-platform] - Platform for audio synthesis and algorithmic
composition.
-
ChucK - Strongly-timed,
concurrent, and on-the-fly music programming language.
-
TidalCycles - Domain specific
language for live coding of pattern.
-
Sonic Pi - The live coding music
synth for everyone.
-
Csound - A sound and music computing
system.
-
Orca - Live coding
environment to quickly create procedural sequencers.
-
handel - A small procedural
programming language for writing songs in browser.
Web Programming • Libraries
-
three.js - JavaScript
3D library.
-
regl - Functional
WebGL.
-
Stackgl - Open software ecosystem for
WebGL, built on top of browserify and npm.
-
Paper.js - The swiss army knife of
vector graphics scripting.
-
Pixi.js - HTML 5 2D rendering
engine that uses webGL with canvas fallback.
-
p5.js - JavaScript library that starts
with the original goal of Processing.
-
Pts.js - JavaScript library for
visualization and creative-coding.
-
Fabric.js - Javascript canvas
library, SVG-to-canvas parser.
-
Maker.js - Parametric line drawing
for SVG, CNC & laser cutters.
-
OpenJSCAD - Programmatic 3D modeling
in JavaScript.
-
Sketch.js - Minimal
JavaScript creative coding framework.
-
Two.js - Two-dimensional drawing api
geared towards modern web browsers.
-
ClayGL - WebGL graphic library for
building scalable Web3D applications.
-
Proton - A lightweight and
powerful javascript particle engine.
-
lightgl.js - A
lightweight WebGL library.
-
picogl.js - A minimal
WebGL 2 rendering library.
-
Alfrid - A WebGL tool
set.
-
Babylon.js -
complete JavaScript framework for building 3D games with HTML 5 and
WebGL.
-
twigl - A Tiny WebGL
helper Library.
-
luma.gl - WebGL2
Components for Data Visualization.
-
css-doodle - A web component for
drawing patterns with CSS.
-
OGL.js - JavaScript 3D
library (WebGL)
-
Zdog - A pseudo-3D engine for canvas
& SVG
-
Oimo.js - Lightweight 3d
physics engine for javascript
-
Ammo.js - Direct port
of the Bullet physics engine to JavaScript using Emscripten
Projection Mapping • VJing
-
MadMapper [Mac] - Video mapping
projections and Light mapping.
-
VDMX [Mac] - Realtime multimedia
performance application.
-
Modul8 [Mac] - Real time video
mixing and compositing.
-
Resolume [Mac, Win] - Mixing of
digital video and effects in a realtime.
-
CoGe VJ [Mac] - VJ software
designed for realtime HD video mixing and compositing with a modular
user interface.
-
VirtualMapper -
Realtime preview tool for projection mapping.
-
Millumin [Mac] - A
software to create and perform interactive audiovisual shows.
-
Smode [Win] - A real-time 2D/3D
creation, compositing and video-mapping engine.
-
Veejay [Linux] - A live performance
tool featuring simple non-linear editing and mixing from multiple
sources (files, devices, streams…)
Online
-
Shadertoy - Build and share
shaders with the world and get inspired.
-
GLSLbin - Fragment shader sandbox with
support for glslify.
-
GLSL Sandbox - Online shader
editor and gallery.
-
Shdr Editor - Online shader
editor.
-
CodePen - Show case of advanced
techniques with editable source code.
-
Shadershop - Interface
for programming GPU shaders.
-
Vertexshaderart - Online
shader editor and gallery.
-
Cyos - Online shader editor.
-
GlslEditor - Simple
WebGL Fragment Shader Editor.
-
OpenProcessing - Create
and experiment with algorithmic design, Processing and P5.js.
-
P5.js Editor - Online web editor
for P5.js.
-
LiveCodeLab - Run-as-you-type tool
for VJs, musicians, teachers, students, kids.
-
Turtletoy - Minimalistic API and
online showcase for generative code. (Javascript)
-
ShaderGif - Open source home for
art made with code (WebGL1/2, JavaScript Canvas & P5.js).
-
P5LIVE - p5.js live-coding
environment.
-
NEORT - Digital art platform for
creative coders (Fragment Shader, Javascript Canvas).
-
Shelly - Learn programming by issuing
instructions to a turtle.
-
tixy.land - The most minimalist
creative coding environment is alive.
-
BBC Micro bot - Run your
tweet on an 8-bit computer emulator.
Hardware
-
Arduino - Open source
microcontroller kits for building digital devices and interactive
objects.
-
Raspberry Pi - Small
single-board computers.
-
Puck.js - Open source JavaScript
microcontroller you can program wirelessly.
-
BeagleBoard - Low-power open
source single-board computers.
-
Makey Makey - Turn everyday
objects into touchpads and combine them with the internet.
-
Tessel - Easy to use microcontroller
that runs JavaScript.
-
Leap Motion - Sensor device
that supports hand and finger motions as input.
-
AxiDraw - Simple, modern, and
precise pen plotter.
-
Phidgets - Sensors, input devices
and controllers for computers.
-
Teensy - USB-based
microcontroller development system.
-
Lightform - AR projection mapping
with built-in depth sensor.
Other
-
Structure Synth
[Cross-platform] - Application for generating 3D structures by
specifying a design grammar.
-
F3 [Mac] - Powerful
3D design app that enables you to live code 3D form.
-
Fragment [Mac]- App to
live code GLSL graphics.
-
ShaderTool [Win]
- Modern shader IDE for programmers and FX artists.
-
Syphon [Mac] - Allows
applications to share frames with one another in realtime.
-
KodeLife - Real-time
GPU shader editor, live-code performance tool and graphics prototyping
sketchpad.
-
ISF - GLSL
shaders for use in interactive applications.
-
glslViewer
- Live-coding console tool that renders GLSL Shaders.
-
DrawBot [Mac] - Education oriented
2d graphics programming environment based on python.
-
Klak - A collection of
scripts for creative coding with Unity.
-
basil.js - Scripting (JS) in InDesign
for designers and artists in the spirit of Processing.
-
Konstrukt
[Cross-platform] - A commandline tool to generate different scaleable
patterns as SVGs.
Learning Resources
Videos
Talks
Articles • Tutorials
Shaders • OpenGL • WebGL
-
Introduction to shaders
- Part 1 of an introduction to shaders using threejs.
-
Three.js 101
- Introduction to three.js from a creative coder perspective.
-
Experimenting with Three.js shaders and the ShaderMaterial
- Introduction to custom mesh shader materials.
-
lwjgl: Shaders
- Shader tutorial in the context of lwjgl-basics.
-
Shaders: A primer
- A primer on shaders.
-
Shaders: Second stage
- The second part to the previous.
-
WebGL Lessons — Fragment Shaders
- A brief introduction to fragment shaders.
-
WebGL Lessons — ThreeJS Shaders
- Using custom vertex and fragment shaders in ThreeJS.
-
ThreeJS post-proces example
- example of post-processing effects in ThreeJS.
-
Ray Marching and Signed Distance Functions
- Introduction to ray tracing.
-
Introduction to Ray Tracing
- A simple method for creating 3D images.
-
GLSL lighting walkthrough
- Phong shading tutorial with glslify.
-
Three glslify example
- Example on how to use three.js with glslify.
-
WebGL Beyond Dom
- Greg Tatum explain the basic of WebGL using Regl.
-
FBO particles - Article
about FBO/GPGPU particles by
@nicoptere.
-
Ray marching (with THREE.js)
- Article about ray marching with three.js by
@nicoptere.
-
Custom shaders with Three.JS
- Introduction to custom shaders, uniforms, textures and lighting in
three.js.
-
An intro to modern OpenGL
- First part of an introduction to modern OpenGL.
-
Modern OpenGL Series
- Good introduction to some of the OpenGL terms.
-
Smooth minimum
- Article about the smooth based primitive union.
-
Modeling with distance functions
- Collection of distance functions in one centralized place.
-
Volumetric rendering
- Explains how to create complex 3D shapes inside volumetric shaders.
-
Real-time Rendering -
Book, blog and collection of resources regarding real-time rendering.
-
OpenGL 4 Shaders
- Short and sweet introduction to OpenGL shaders by Anton Gerdelan.
-
On ray casting, ray tracing, ray marching and the like
- The title says it all. Introduction by Adok.
-
Sun and Black Cat
- Articles on shaders and other computer graphics related topics.
-
Writing a small software renderer
- Really good introduction to how basic software rendering works.
-
WebGL Tutorials - Website
with a really good collection of WebGL tutorials.
-
Generating Geometry: 1,
2,
3
- Beginner introduction on how to create geometry object.
-
Three.js sine animation
- Learn how to add sine waves to a circle with three.js. (oF version)
-
Into Vertex Shaders
- Series of tutorials about WebGL, Three.js, and Three.bas.
-
The Spaces of WebGL
- Brief overview over the different coordinate systems through out the
3D graphics pipeline.
-
WebGL Workshop - Short and
sweet online introduction to WebGL.
-
THREE.js & instanced geometry
- Fluffy predator with three.js and instanced geometry.
-
Particle Effects via Billboards
- How to create a particle effects with billboarding and WebGL.
-
Beautifully Animate Points with WebGL and regl
- How to create GPGPU particles with regl.
-
WebGL Tutorial: Directional Shadow Mapping without extensions
- Introduction to the concepts behind real time directional light shadow
mapping.
-
WebGL Quest -
A tutorial and a list of useful resources to use WebGL raymarching and
distance functions easily.
-
Exploring bump mapping with WebGL
- Introduction to different bump mapping techniques.
-
OpenGL/GLSL Shader Programing
- Deck on OpenGL/GLSL shader programing.
-
Particles in a Simplex Noise Flow Field
- Perlin noise flow field tutorial.
-
Flow Fields, Part 1
Part 2
- Introduction to flow fields also known as vector fields.
-
Graphics for Games
- Introduction to 3D graphics programming including shaders, math
post-processing etc. from Newcastle University.
-
Three.js Basics
- Introduction to Three.js by Eric Haines.
-
An Interactive Introduction to WebGL and three.js
- Slides from the SIGGRAPH 2017 WebGL workshop.
-
How to Start Learning Computer Graphics Programming
- Advice and thoughts on how to get started by Eric Arnebäck.
-
What Every Coder Should Know About Gamma
- Deep dive into the importance of gamma.
Canvas
Hardware
Other
Interactive
Quick References • Cheatsheets
Communities
Subreddits
Slack
Other
Math
Machine learning • Computer Vision • Ai
-
ml4a - Machine learning for
artists.
-
Keras.js - Run
Keras models (tensorflow backend) in the browser, with GPU support.
-
Tesseract.js - Pure
Javascript Multilingual OCR.
-
Google ML - Cloud machine
learning by Google.
-
TensorFlow - Open source
software library for machine intelligence.
-
ConvNetJS
- Deep Learning in your browser.
-
Wekinator - Allows anyone to use
machine learning.
-
Machine Learning
- Coding Train repo with links to machine learning resources.
-
CreativeAi.net - Space to share
creative Ai projects.
-
AI Playbook - Ai microsite
intended to help newcomers get started.
-
Teachable Machine
- Explore how machine learning works, live in the browser.
-
TensorFlow.js - JavaScript
library for training and deploying ML models in the browser and on
Node.js.
-
Hello TensorFlow -
Fully commented TensorFlow.js demo.
-
ml5.js - Friendly machine learning for
the web.
-
Model Zoo - Discover open source deep
learning code and pretrained models.
-
Runway - Toolkit that adds
artificial intelligence capabilities to design and creative platforms.
-
Lobe - Build, train, and ship custom deep
learning models using a simple visual interface.
-
ModelDepot - Platform for
discovering, sharing, and discussing easy to use and pre-trained machine
learning models.
Inspiration
-
OpenProcessing -
Algorithmic Designs Created with Processing, p5js and processingjs.
-
Dwitter - Social network for
short JavaScript demos.
-
Chrome Experiments -
Showcase of web experiments written by the creative coding community.
-
Codedoodl.es - Showcase of curated
creative coding sketches.
-
For your Processing -
Projects and tutorials about Processing.
-
Art From Code - Code sketches
by Keith Peters.
-
Generator.x -
Flickr group about generative strategies in art & design.
-
Generative Art
- Flickr group about generative art.
-
Inspiring Online - Open source
micro blog about inspiring and creative works published online.
-
People You Should Follow on CodePen
- List of interesting people worth following.
-
Raven Kwok - Tumblr by
visual artist Raven Kwok.
-
P5Art - Really good collection of
experiments in Processing.
-
Echophon - Tumblr with visual
inspiration.
-
Bees & Bombs - Tumblr
with gifs by Dave.
-
DevArt - Celebration of art
made with code by artists that push the possibilities of creativity.
-
Folds2d - Tumblr with curves,
surfaces, scalar and vector fields.
-
W:BLUT Inspiration -
Collection of gifs, links and images by W:Blut.
Events
-
OFFF Festival - Digital design
festival (Online Flash Film Festival).
-
Gray Area Festival - Creative
coding, art and technology festival.
-
Signal Festival - Showcase
of light art and emerging technologies in Prague, the Czech Republic.
-
Eyeo Festival - Bring together
creative coders, data designers and creators working at the intersection
of data, art and technology.
-
Mutek - Organization dedicated to
digital creativity in sound, music, and audio-visual art.
-
Node - An open platform for the
exchange on culture, arts and technology.
-
Digital Design Days - OFFF - 3 day
event offering conferences, workshops, digital showcases &
installations.
-
CODAME ART+TECH - Projects and
nonprofit events, to inspire through experience.
-
Curated Creative Events -
Hand-picked design, code, art, fashion and maker events.
-
NextArt Night - Inspiring people
through creative uses of tech.
-
GROW - The Parisian rendez-vous
for creative coders, GROW is about opening new possibilities in digital
creation.
Museums • Galleries
Schools • Workshops
Blogs • Websites
-
CreativeApplications.Net [CAN]
- Famous digital art blog.
-
iquilezles.org - Home of Íñigo
Quílez, specialised in GLSL and math snippets.
-
bit-101.com - Blog by Keith
Peters, specialised in creative coding.
-
ibreakdownshaders
- Explore the math behind shaders.
-
adriancourrèges.com -
Blog of software engineer Adrian Courrèges. Articles about game graphics
studies etc.
-
clicktorelease.com - Home
of Jaume Sanchez Elias, with demos, talks, articles on WebGL and WebVR.
-
syntopia - Blog about
generative art and systems, by Mikael Hvidtfeldt Christensen.
-
madebyevan.com - WebGL experiments
and articles by Evan Wallace.
-
songho.ca - Home of Song Ho Ahn,
with a good collection of tutorials on OpenGL and math.
-
simonschreibt.de - Game art
tricks, design tricks by Simon schreibt.
-
sighack.com - Blog about generative
art algorithms and techniques, by Manohar Vanga.
-
jsdo.it-archives
- Compilation of WebGL experiments including comparisons on WebGL
frameworks and physics engine (oimo.js, cannon.js, ammo.js)
-
WebAudio Weekly -
Newsletter to know everything about the WebAudio API
Special Thanks
License
To the extent possible under law,
Terkel Gjervig has waived all copyright
and related or neighboring rights to this work.