Awesome Creative Coding
Carefully curated list of awesome creative coding resources primarily for beginners/intermediates.
Creative coding is a different discipline than programming systems in which 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.
You might also like Graphics resources and Awesome OpenGL.
Please read the contribution guidelines before contributing.
Contents
- Books
- Subreddits
- Communities
- Ecosystems/Frameworks
- Learning material
- Interactive tutorials
- Articles
- Math
- Machine learning/Ai
- Shader references & articles
- Talks / presentations / videos
- Related
Books
- Generative Art: A Practical Guide - Practical guide using Processing.
- Generative Design - Visualize, Program, and Create with Processing.
- The Nature of Code - Simulating natrual systems with Processing.
- The Book of Shaders - Step-by-step guide through the abstract and complex universe of fragment shaders.
- Programming Design Systems - Practical introduction to the new foundations of graphic design.
- Pixel Shaders - Interactive Introduction to Graphics Programming.
- Learning Modern 3D Graphics Programming - Series of tutorials on using OpenGL to do graphical rendering.
- Scratchapixel 2.0 - Learn Computer Graphics From Scratch.
- Programming Interactivity - Designer's Guide to Processing, Arduino, and openFrameworks.
- ofBook - Community-written book/guide on 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.
- Data-driven Graphic Design - Creative Coding for Visual Communication.
- 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.
- Learn OpenGL - Extensive tutorial resource for learning Modern OpenGL.
Subreddits
- r/creativecoding - Sharing and discussing the use of computer programming as a creative discipline.
- r/rraytraycing - Subreddit on raytracing.
- r/opengl - News and discussion about OpenGL on all platforms.
- r/graphicsprogramming - Subreddit on graphics programming.
- r/processing - Subreddit on Processing.
- r/shaders - Subreddit on shaders.
- r/proceduralgeneration - Subreddit on procedural generation.
Communities
- realtimevfx.com - Real Time VFX Community.
- creative-dev - Creative Developement Slack.
- The Creative Coding Podcast - Iain and Seb discuss the ins and outs of creative coding.
Ecosystems / Frameworks
Desktop
- Processing - Computer programming language and IDE for visual arts.
- Cinder - Open source library for professional-quality creative coding in C++.
- openFrameworks - Open source C++ toolkit for creative coding.
- vvvv - Hybrid visual/textual live-programming environment for easy prototyping and development.
- NodeBox - Cross-platform, node-based GUI for efficient data visualizations and generative design.
- Structure Synth - Cross-platform application for generating 3D structures by specifying a design grammar.
- Unity - Game engine, but useful for creative coding and installations.
- i-score - Interactive sequencer to control creative coding libraries and toolkits.
Web
- 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.
- Fabric.js - Javascript canvas library, SVG-to-canvas parser.
- Sketch.js - Minimal JavaScript creative coding framework.
- Two.js - Two-dimensional drawing api geared towards modern web browsers.
Learning material
- The Coding Train - Daniel Shiffman makes videos about creative coding.
- Shaders - Shader tutorial in the context of lwjgl-basics.
- 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.
- WebGL 2 Fundamentals - WebGL2 from the ground up. No magic.
- 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.
- Introduction to shaders - Part 1 of an introduction to shaders using 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.
- Interactive 3D Graphics - Udacity course that teach you the principles of 3D computer graphics.
- Interactive Computer Graphics - Computer graphics course from Coursera.
- MFGD - Fragment Shaders - YouTube playlist about fragment shaders.
- Learn OpenGL - Learn the inner workings of computer graphics.
- Cat Like Coding - Tutorials on math, algorithms, and Unity features.
- Three glslify example - Example on how to use three.js with glslify.
- Kadenze Creative Coding - Selection of Kadenze courses covering p5.js, TensorFlow, Max/Jitter, and ChucK.
Interactive tutorials
- Shader-school - Workshop for GLSL shaders and graphics programming.
- Webgl-workshop - The sequel to shader-school: Learn the WebGL API.
- Fragment-oundry - Interactive fragment shader tutorial.
- SDF Tutorial 1: box & balloon - Shadertoy tutorial on raytracing.
- HOWTO: Ray Marching - Shadertoy tutorial on Ray Marching.
- Raymarch Tutorial2 - Shadertoy raymarch tutorial.
- GLSL 2D Tutorials - Shadertoy GLSL 2D Tutorial.
- Bubble Breakdown - Shader breakdown by Perlin.
Articles
- Shepherding random numbers - Tiny guide to shepherding random numbers.
- FBO particles - Article about FBO/GPGPU particles by @nicoptere.
- Ray marching (with THREE.js) - Article about ray marching with three.js by @nicoptere.
- Visualizing Algorithms - Looks at the use of visualization to understand, explain and debug algorithms.
- Custom shaders with Three.JS - Introduction to custom shaders, uniforms, textures and lighting in three.js.
- Modern OpenGL Series - Good introduction to some of the OpenGL terms.
- An intro to modern OpenGL - First part of an introduction to modern OpenGL.
- Experimenting with Three.js shaders and the ShaderMaterial - Introduction to custom mesh shader materials.
Math
- Math as code - Cheat-sheet for mathematical notation in code form.
- Coding Math - Teaches you the math you need to understand as a programmer.
- Math snippets - Math snippets with graphic programming in mind.
- Formul Animations - The principles of painting with maths.
- Learning Maths again - Collection of JS and GLSL math snippets.
- Eases - Grab-bag of modular easing equations.
- Math for Motion - Visualization of different motion equations.
- Matrix Multiplication - Matrix multiplication visualized.
- Algebra rules - The most useful rules of basic algebra.
- Immersive Math - Fully interactive linear algebra.
Inspiration
- 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.
- CodePen - Show case of advanced techniques with editable source code.
- 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.
- 31 days of Canvas tutorials - Collection of canvas tutorials by Seb Lee-Delisle.
- 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.
- People You Should Follow on CodePen - List of interesting people worth following.
Machine Learning / A.I.
- 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.
Shader References & Articles
- The Book of Shaders Glossary - Shader glossary by theme.
- GLSL - OpenGL ES shading language reference.
- gltut - 3D programming glossary.
- 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.
Tools
- F3 - Powerful 3D design app that enables you to live code 3D form.
- Fragment - Mac app to live code GLSL graphics.
- Chrome Shader Editor - Live editing shaders in the browser.
- ShaderTool - Modern shader IDE for programmers and FX artists.
- Shadershop - Interface for programming GPU shaders.
- hg_sdf - GLSL library for building signed distance functions.
Talks / Presentations / Videos
- Intro to WebGL - Intro to WebGL with three.js.
- Inigo Quilez Live - Collection of live coding videos by Íñigo QuĂlez.
- There is also canvas - Bruno Imbrizi go through the use of canvas for creative coding at WebExpo 2016. Interactive slides here.
- Draw. Move. Fail. Repeat. - Slides by @williamapan from his Creative developer workshop at Gobelins.
- OpenGL 3D Game Tutorials - Beginners tutorial series about creating 3D games OpenG.
Websites / Blogs
- abandonedart.org - Generative art blog by Matt Pearso. Good for inspiration.
- 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.
Related:
- Awesome opengl - Curated list of awesome OpenGL libraries, debuggers and resources.
- Graphics resources - List of graphic programming resources.
- Awesome canvas - Curated list of awesome HTML5 canvas with examples, related articles and posts.
- Awesome audio visualization - Curated list about Audio Visualization.
- Awesome computer vision - Curated list of awesome computer vision resources.
- Magic Tools - List of game development resources to make magic happen.
- Hanecci’s link collection - Link collection of ray marching on the GPU.
- Awesome visualization research - List of recommended research papers and other readings on data visualization.
License
To the extent possible under law, Terkel Gjervig has waived all copyright and related or neighboring rights to this work.