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.
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 - Explore the role of deep learning in
music generation and assisted music composition.
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.
- 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.
- Three.js Journey - This
course by Bruno Simon will teach you the secrets to create the coolest
WebGL websites with Three.js whether you are a beginner or an advanced
developer.
- 3D
Computer Graphics Programming - Learn all the theory and the math
behind 3D graphics while creating a software renderer from scratch using
the C programming language
Frameworks • Libraries •
Ecosystems
- Processing [Cross-platform] -
Computer programming language and IDE for visual arts.
- py5 [Cross-platform] - A library
that integrates Processing into the Python 3 ecosystem.
- Cinder [Cross-platform] - Open
source library for professional-quality creative coding in C++.
- openFrameworks
[Cross-platform] - Open source C++ toolkit for creative coding.
- NAP [Cross-platform] -
Open source data-driven real-time control & visualization platform
suited for professional installations in C++, incl. Vulkan
renderer.
- 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.
- nannou [Cross-platform] -
Open-source creative coding framework for the Rust language.
- thi.ng [Cross-platform] - Open source
collection of computational design tools for JavaScript, TypeScript,
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.
- AsyncGraphics
[iOS, macOS] - Open source, live graphics, async / await, Swift package,
powered by Metal.
- Lygia
[Cross-platform] - Granular and multi-language (GLSL, HLSL, WGSL, MSL
and CUDA) shader library designed for performance and flexibility.
- Fragment.tools
[Cross-platform] - A web development environment for creative
coding.
Visual Programming Languages
- vvvv [Win] - Hybrid
visual/textual live-programming environment for easy prototyping and
development.
- 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.
- ossia score [Cross-platform] -
Interactive, intermedia audio-visual sequencer.
- 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.
- JOY.JS - Realtime visual coding
tool, easy to understand and aimed at beginners.
- Circles [iPhone, iPad, Mac] -
Live graphics node editor, powered by AsyncGraphics.
- TIC-80 - Make pixel art style games
and art on a 240*136 pixel screen.
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.
- Overtone - An open source
audio environment designed to explore new musical ideas from synthesis
and instrument building to live-coding.
- Melrōse - A MIDI producing
environment for creating (live) music.
- Glicol - Graph-oriented live coding
language and music/audio DSP library written in Rust.
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.
- 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.
- Theatre.js -
Motion design library with visual tools
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.
- Shader Park - A JavaScript
library for creating interactive procedural 2D and 3D shaders.
- 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 -
Algorithmic Designs Created with Processing, p5js and processingjs.
- 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.
- Hydra - Live code-able video
synth and coding environment.
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.
- 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.
- shoebot [Cross-platform] -
Shoebot is a creative coding environment designed for making vector
graphics and animations with Python.
- 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 scalable
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.
- 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-process 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 explains the basics 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.
- 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.
- Into
Vertex Shaders - Series of tutorials about WebGL, Three.js, and
Three.bas.
- The
Spaces of WebGL - Brief overview over the different coordinate
systems throughout 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 Programming - Deck on OpenGL/GLSL shader programming.
- Particles
in a Simplex Noise Flow Field - Perlin noise flow field
tutorial.
- Flow
Fields, Part 1 - Introduction to flow fields also known as vector
fields.
- Flow
Fields, 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 • Cheat
Sheets
- Shaderific GLSL -
OpenGL ES shading language reference.
- The Book of Shaders
Glossary - Shader glossary by theme.
- gltut
glossary pages: 1, 2,
3,
4,
5,
6,
7,
8
- OpenGL 3D programming glossary.
- Canvas
Cheatsheet - Quick and visual canvas cheatsheet.
- WebGL
Cheatsheet - WebGL 1.0 API reference card.
- Glossary
of Computer Graphics - Glossary of terms relating computer
graphics.
- GLSL
Reference Guide - OpenGL Shading Language quick reference
guide.
- 3D
Maths Cheat Sheet - Math cheatsheet by Anton Gerdelan, from his
OpenGL book.
- docs.GL - Improvement of the official
OpenGL documentation.
- OpenGL
Shading Language - Khronos Group GLSL wiki.
- OpenGL
4.3 Reference Card - PDF Reference Card for the OpenGL 4.3 API.
- Easings - Interactive easing
functions cheatsheet.
- PixelSpirit - GLSL library
on the back of tarot cards, for learning and reference.
- Procedural
Patterns And Noises - Collection of procedural patterns and
procedural noises.
- Visual Noises -
Visualize noise algorithms in 1D and 2D.
- Trigonoparty -
Simple trigonometry visualisation.
- Morphogenesis
- Exploration of how shapes, forms, and patterns emerge in nature.
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
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 - 3 day event
offering conferences, workshops, digital showcases &
installations.
- CODAME ART+TECH - Projects and
nonprofit events, to inspire through experience.
- NextArt Night - Inspiring people
through creative uses of tech.
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
License

To the extent possible under law, Terkel
Gjervig has waived all copyright and related or neighboring rights
to this work.
creativecoding.md
Github