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.
Please read the contribution guidelines before contributing.
- Online Books
- Learning Resources
- Machine learning • Computer Vision • Ai
- Schools • Workshops
- Blogs • Websites
- 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.
- Data-driven Graphic Design - Creative Coding for Visual Communication.
- 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.
- The Book of Shaders - Step-by-step guide through the abstract and complex universe of fragment shaders.
- WebGL Fundamentals - WebGL from the ground up. No magic.
- WebGL 2 Fundamentals - WebGL2 from the ground up. No magic.
- Learn OpenGL - Extensive tutorial resource for learning Modern OpenGL.
- Scratchapixel 2.0 - Learn Computer Graphics From Scratch.
- ofBook - Community-written book/guide on openFrameworks.
- OGLdev - Collection of modern OpenGL tutorials by Etay Meiri.
- OpenGL Tutorial - Site dedicated to tutorials for OpenGL 3.3 and later.
- Open.gl - Guide that teach you the basics of using OpenGL.
- Pixel Shaders - Interactive Introduction to Graphics Programming.
- OpenGLBook - Free OpenGL programming tutorial in online book format.
- Graphics Programming Projects - Book about 3D computational graphics by Morgan McGuire.
- On Generative Algorithms - Notes about generating various organic patterns, with examples and Python code, by Anders Hoff.
- 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 Coding - FutureLearn course on programming with Processing.
- 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.
- 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.
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.
- hg_sdf [Cross-platform] - GLSL library for building signed distance functions.
Visual Programming Languages
- vvvv [Mac, 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.
- 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.
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.
Web Programming • Libraries
- 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.
- Two.js - Two-dimensional drawing api geared towards modern web browsers.
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.
- 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.
- Arduino - Open source microcontroller kits for building digital devices and interactive objects.
- Raspberry Pi - Small single-board computers.
- Intel Edison - Computer-on-module offered by Intel as a development system for wearables and Internet of Things devices.
- 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.
- 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.
- The Coding Train - Daniel Shiffman makes videos about creative coding.
- MFGD - Fragment Shaders - YouTube playlist about fragment shaders.
- Shaders Laboratory - YouTube channel about shaders.
- Makin' Stuff Look Good - YouTube channel about shaders case studies.
- openFrameworks tutorials - YouTube playlist about openFrameworks.
- Fun with WebGL 2.0 - YouTube playlist about WebGL 2.0.
- Modern OpenGL 3.0+ Tutorials - YouTube playlist about modern OpenGL.
- Vertexshaderart - YouTube playlist about vertex shaders.
- Diving in Three.js - YouTube playlist diving into three.js.
- Shadertoy Tutorials - YouTube playlist teaching you how to make shaders, starting with zero knowledge using shadertoy.
- 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.
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.
- HTML Canvas Deep Dive - Profound introduction to the canvas API.
- 31 days of Canvas tutorials - Collection of canvas tutorials by Seb Lee-Delisle.
- Cat Like Coding - In depth tutorials on math, algorithms and Unity.
- Fun Programming - Learn creative coding writing simple programs.
- Creative-coding on iOS with C4 - Introduction to C4 published on Creative Applications.
- COSMOS - An end-to-end tutorial on the design, programming and launch of an app using C4.
- Particle Physics - Particle physics explained.
- Visualizing Algorithms - Looks at the use of visualization to understand, explain and debug algorithms.
- Adventures in Game Development World - Easy to understand collection of articles on game developement, but relevant to creative coding as well.
- Shepherding random numbers - Tiny guide to shepherding random numbers.
- Amit’s Game Programming Information - Collection of resources on stuff like path-finding, Ai, math etc.
- 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.
Quick References • Cheatsheets
- 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.
- The newbie's PBR Cheat Sheet - Short and sweet visual overview on PBR.
- r/creativecoding - Sharing and discussing the use of computer programming as a creative discipline.
- r/raytraycing - 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.
- r/MachineLearning - Subreddit on machine learning.
- Creative-Dev Slack - Creative Development Slack.
- Generative Art Slack - Generative Art Slack.
- Creative Coding Club - Creative Coding Club Slack.
- Creative Coding - Creative Coding Slack.
- openFrameworks - openFrameworks Slack.
- The Creative Coding Podcast - Iain and Seb discuss the ins and outs of creative coding.
- realtimevfx.com - Real Time VFX Community.
- Data Stories - Podcast on data visualization.
- 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.
- Image Kernels - Interactive and visual introduction to image kernels.
- Sine and Cosine - Interactive explination of sine and cosine.
- Perlin Noise - Perlin noise explained in detail.
- Vector Math for 3D Computer Graphics - Tutorial on vector algebra and matrix algebra from the viewpoint of computer graphics.
- Desmos - Graph functions, plot data, evaluate equations, explore transformations, and much more.
- MFGD - Math for game developers YouTube playlist.
- Essence of linear algebra - Essence of linear algebra YouTube playlist.
- Mathematics of Animation - Slides about the mathematics of animation (repo).
- Sketching with Math and Quasi Physics - Beautiful and visual introduction to math and quasi physics.
- Gene Kogan: Perlin Noise - introduction to 2D and 3D perlin noise.
- Matrix Math and You - High level introduction to matrices.
- Mathematical Symbols - List of all mathematical symbols and signs.
- The magnificent 2d matrix - Interactive tool to better understand transformation matrices.
Machine learning • Computer Vision • Ai
- ml4a - Machine learning for artists.
- Keras.js - Run Keras models (tensorflow backend) in the browser, with GPU support.
- 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.
- OpenProcessing - Algorithmic Designs Created with Processing, p5js and processingjs.
- 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.
- 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.
- OFFF Festival - Digital design festival (Online Flash Film Festival).
- Resonate - Festical in Belgrade about cutting edge music, visual arts and digital culture.
- 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.
Schools • Workshops
- School for Poetic Computation - School in New York that explore the intersections of code, design, hardware and theory.
- Copenhagen Institute of Interaction Design - Hosts a range of educational initiatives, most notably, the Interaction Design Programme and the CIID Summer School.
- Residencies, Fellowships, Summer Schools - Huge list of residencies, fellowships and summer schools around the world (Navigate with the bottom left tabs).
Blogs • Websites
- 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.
- 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 triks by Simon schreibt.
- Awesome opengl - Curated list of awesome OpenGL libraries, debuggers and resources.
- Awesome webgl - Curated list of awesome WebGL libraries, resources and much more.
- 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.
- Awesome visualization research - Curated list of recommended research papers and other readings on data visualization.
- Awesome livecoding - Curated list of livecoding languages and tools.
- Awesome graphics - Curated list of computer graphics tutorials and resources.
- Graphics resources - Curated list of graphic programming resources.
- Magic tools - Curated list of game development resources to make magic happen.
- Hanecci’s link collection - Link collection of ray marching on the GPU.
- Awesome public datasets - Curated list of public avalible datasets, mostly free resources.
- Link collection of ray marching on the GPU - Curated list from 2013.
To the extent possible under law, Terkel Gjervig has waived all copyright and related or neighboring rights to this work.