awesome-creative-coding
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
Top Related Projects
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
Source code for the Processing Core and Development Environment (PDE)
Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
Convolutional Neural Networks
Creative coding library for Unity
GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web
Quick Overview
Awesome Creative Coding is a curated list of resources for creative coding, focusing on generative art, data visualization, and interactive design. It serves as a comprehensive guide for artists, designers, and developers interested in exploring the intersection of art and technology.
Pros
- Extensive collection of resources covering various aspects of creative coding
- Well-organized categories make it easy to find specific tools and information
- Regularly updated with new and relevant content
- Community-driven project with contributions from many experts in the field
Cons
- Can be overwhelming for beginners due to the sheer amount of information
- Some listed resources may become outdated over time
- Lacks in-depth tutorials or guides for specific tools or techniques
- May not cover all niche areas of creative coding
Note: As this is not a code library but a curated list of resources, there are no code examples or getting started instructions to provide.
Competitor Comparisons
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
Pros of openFrameworks
- Comprehensive C++ toolkit for creative coding, offering a complete development environment
- Extensive documentation and community support for learning and troubleshooting
- Cross-platform compatibility, allowing development for various operating systems and devices
Cons of openFrameworks
- Steeper learning curve, especially for those new to C++ programming
- Larger project size and potentially slower compilation times compared to curated lists
- May include unnecessary features for specific creative coding projects
Code Comparison
openFrameworks:
#include "ofApp.h"
void ofApp::setup(){
ofBackground(0);
}
void ofApp::draw(){
ofDrawCircle(ofGetWidth()/2, ofGetHeight()/2, 100);
}
awesome-creative-coding: No direct code comparison available, as it's a curated list of resources rather than a framework.
Summary
openFrameworks is a comprehensive C++ toolkit for creative coding, offering a complete development environment with extensive documentation and cross-platform compatibility. However, it has a steeper learning curve and larger project size compared to awesome-creative-coding, which is a curated list of resources for creative coding. awesome-creative-coding provides a wide range of tools, libraries, and learning materials across various programming languages and platforms, making it more flexible for exploring different creative coding approaches.
Source code for the Processing Core and Development Environment (PDE)
Pros of Processing
- Complete development environment with IDE, libraries, and tools
- Extensive documentation and learning resources for beginners
- Large, active community with numerous examples and tutorials
Cons of Processing
- Limited to Java-based programming language
- Less flexibility in terms of language and platform choices
- Steeper learning curve for those new to programming
Code Comparison
Processing:
void setup() {
size(400, 400);
}
void draw() {
ellipse(mouseX, mouseY, 50, 50);
}
Awesome Creative Coding (using p5.js as an example):
function setup() {
createCanvas(400, 400);
}
function draw() {
ellipse(mouseX, mouseY, 50, 50);
}
Summary
Processing is a comprehensive creative coding environment with its own IDE and ecosystem, while Awesome Creative Coding is a curated list of resources for various creative coding tools and frameworks. Processing offers a more structured approach with built-in tools, while Awesome Creative Coding provides a broader overview of different options and techniques available in the field of creative coding.
Processing is ideal for beginners and those who prefer a unified environment, while Awesome Creative Coding caters to developers looking to explore diverse tools and languages for creative coding projects.
Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
Pros of Cinder
- Comprehensive C++ framework for creative coding
- Extensive documentation and examples
- Cross-platform support (Windows, macOS, iOS)
Cons of Cinder
- Steeper learning curve for beginners
- Requires C++ knowledge
- Less flexibility in choosing tools and libraries
Code Comparison
Cinder (C++):
#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
class BasicApp : public ci::app::App {
public:
void draw() override {
ci::gl::clear(ci::Color::gray(0.1f));
}
};
CINDER_APP(BasicApp, ci::app::RendererGl)
Awesome Creative Coding (JavaScript example using p5.js):
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
}
Key Differences
- Awesome Creative Coding is a curated list of resources, while Cinder is a specific framework
- Awesome Creative Coding covers various languages and tools, Cinder focuses on C++
- Awesome Creative Coding provides a broader overview of creative coding, Cinder offers a complete ecosystem
Use Cases
- Cinder: Ideal for performance-critical applications and complex visual projects
- Awesome Creative Coding: Better for exploring different tools and techniques across multiple platforms
Convolutional Neural Networks
Pros of darknet
- Provides a complete, ready-to-use neural network framework for object detection
- Includes pre-trained models for immediate application in computer vision tasks
- Offers high-performance C implementation for efficient execution
Cons of darknet
- Focused solely on neural networks and computer vision, lacking creative coding diversity
- Steeper learning curve for those not familiar with machine learning concepts
- Less frequently updated compared to awesome-creative-coding
Code comparison
awesome-creative-coding (curated list, no code):
## Graphics
- [Processing](https://processing.org) - Computer programming language and IDE for visual arts.
- [p5.js](https://p5js.org) - JavaScript library that starts with the original goals of Processing.
darknet (C code for neural network):
layer make_convolutional_layer(int batch, int h, int w, int c, int n, int size, int stride, int padding, ACTIVATION activation, int batch_normalize, int binary, int xnor)
{
layer l = {0};
l.type = CONVOLUTIONAL;
Summary
darknet is a specialized neural network framework for object detection and computer vision, offering pre-trained models and efficient C implementation. awesome-creative-coding, on the other hand, is a curated list of resources covering a wide range of creative coding topics. While darknet provides hands-on tools for specific machine learning tasks, awesome-creative-coding serves as a comprehensive reference for various creative programming disciplines.
Creative coding library for Unity
Pros of Klak
- Focused on Unity-specific creative coding tools and utilities
- Provides ready-to-use components for audio-visual effects and interactions
- Actively maintained with frequent updates and new features
Cons of Klak
- Limited scope compared to the broader creative coding landscape
- Requires Unity knowledge and may have a steeper learning curve for beginners
- Less comprehensive in terms of resources and tutorials
Code Comparison
Klak (Unity C# script):
using Klak.Math;
using UnityEngine;
public class NoiseExample : MonoBehaviour
{
void Update()
{
float noise = Perlin.Noise(Time.time);
transform.position = new Vector3(0, noise, 0);
}
}
awesome-creative-coding (JavaScript example using p5.js):
function setup() {
createCanvas(400, 400);
}
function draw() {
let noise = noise(frameCount * 0.01);
let y = map(noise, 0, 1, 0, height);
ellipse(width / 2, y, 20, 20);
}
While Klak provides Unity-specific tools for creative coding, awesome-creative-coding offers a curated list of resources covering various platforms and languages. Klak is more focused and practical for Unity developers, while awesome-creative-coding serves as a comprehensive reference for creative coders across different environments.
GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web
Pros of GSAP
- Focused library for animation, offering high performance and cross-browser compatibility
- Extensive documentation, tutorials, and community support
- Professional-grade features like timeline control and advanced easing functions
Cons of GSAP
- Limited scope compared to the broad range of resources in awesome-creative-coding
- Requires a license for commercial use, unlike the free resources listed in awesome-creative-coding
- Steeper learning curve for beginners compared to some simpler animation libraries
Code Comparison
GSAP example:
gsap.to(".box", {duration: 2, x: 300, rotation: 360, ease: "bounce.out"});
A simple animation example using p5.js (from awesome-creative-coding):
function draw() {
ellipse(mouseX, mouseY, 50, 50);
}
Summary
GSAP is a powerful, specialized animation library, while awesome-creative-coding is a curated list of resources for various creative coding projects. GSAP offers more advanced animation capabilities but has a narrower focus. awesome-creative-coding provides a broader range of tools and libraries for different creative coding aspects but doesn't offer the depth of animation features that GSAP does.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
- Online Books
- Courses
- Tools
- Learning Resources
- Communities
- Math
- Machine learning ⢠Computer Vision ⢠Ai
- Inspiration
- Events
- Schools ⢠Workshops
- Blogs ⢠Websites
- Related
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
- 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.
- Computer Graphics from Scratch - A raytracing and rasterization textbook that teaches you how OpenGL and DirectX works.
- A Primer on Bézier Curves - A free book for when you really need to know how to do Bézier things.
- 3D Game Shaders For Beginners - Step-by-step guide to real-time shading techniques.
- XEM WebGL Guide - Step-by-step guide to WebGL.
- Creative Coding Notebooks - An authorial set of fundamental Python recipes on Creative Coding and Computer Art, by Diego Inácio.
- WebGL Academy - Learn WebGL and 3D algorithmic in a progressive and interactive way.
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 your 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
Tools
Frameworks ⢠Libraries ⢠Ecosystems
- Processing [Cross-platform] - Computer programming language and IDE for visual arts.
- py5 [Cross-platform] - A library that intergrates Processing into the Python 3 ecossystem.
- 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.
- 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.
- 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.
- Theatre.js - Motion design library with visual tools
- GraphicsJS - A lightweight open-source JavaScript library for graphics and animations (SVG/VML).
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 - 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.
- 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 scaleable patterns as SVGs.
Learning Resources
Videos
- 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 Tutorial Series - YouTube series to learning openFrameworks
- openFrameworks tutorial - YouTube playlist about openFrameworks - not updated [2015].
- Shader Tutorial Series - YouTube playlist about Shaders, using Visual Studio Code.
- Kha Tutorial Series - YouTube playlist about the Kha framework, built in Haxe.
- 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.
- WebGL Lightning - Introduction to WebGL lightning with Greg Tatum.
Talks
- Intro to WebGL Slides Video - 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.
- OpenGL 3D Game Tutorials - Beginners tutorial series about creating 3D games OpenG.
- How We Do This Shit - Talk on how tech-based artists do this financially.
- Making WebGL Dance - How I Learnt to Stop Worrying and Love Linear Algebra.
- The Pixel Factory - Talk about WebGL, GPUs and Math by Steven Wittens.
- Poetic Computation - Inspiring talk by Zach Lieberman.
- Generative Machines - FITC talk by Matt DesLauriers about his passion for generative art.
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-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.
- 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 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 - 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
- HTML Canvas Deep Dive - Profound introduction to the canvas API.
- 31 days of Canvas tutorials - Collection of canvas tutorials by Seb Lee-Delisle.
Hardware
- Pen Plotter Art & Algorithms Part 1, 2 - How to use the AxiDraw pen plotter with JavaScript.
Other
- Noise in Creative Coding - In-depth blog post about noise as an indispensable tool for creative coding.
- 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.
- Amitâs Game Programming Information - Collection of resources on stuff like path-finding, Ai, math etc.
- Tips to Improve Your Generative Artwork - Tips to make your art look better.
- Working With Color in Generative Art - Tips on how to get color right.
Interactive
- 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.
- Let's Make A Ray Marcher - Interactive Shader-Toy on writing a ray marcher.
- Raymarching - Interactive Shader-Toy raymarching tutorial.
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.
- 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
- 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.
- r/generative - Subreddit on generative art and music.
Slack
- Creative Coding Club - Creative Coding Club Slack.
Other
- 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.
- 3D Programming Weekly Articles - Great collection of shader and math related resources.
- Pass The Pen - A community of front-end developers who build collaborative creative coding projects on CodePen.
- Creative Tech Weekly - A weekly newsletter of resources around creative technology.
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.
- 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.
- Game Dev Movement cheatsheet with examples - JavaScript math snippets for movement.
- Maths & trigonometry cheat sheet for 2D & 3D games - Maths cheat-sheet for 2D and 3D game-makers.
- Matrices for Creative Coding - Introduction to matrices by Greg Tatum.
- Making Things With Maths - Talk by Steven Wittens about bezier curves, procedural generation, physics engines and fractals.
- MyPhysicsLab - Interactive real-time physics simulations, with formulars and code.
- Intuitive Math - Explanations of fields like Linear Algebra and Geometry designed to help you develop a visual intuition for what is going on.
- L-systems - A Haskell package for L-systems.
- Linear Interpolation - Introduction to linear interpolation (also known as mix/lerp).
- Practical use of Vector Math in Games - In-depth article on vectors for game math.
- Shepherding random numbers - Tiny guide to shepherding random numbers.
- Shepherding random grids - Tiny guide to shepherding random grids.
- Shepherding random growth - Tiny guide to shepherding random growth.
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.
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
- ZKM â Zentrum für Kunst und Medien, Karlsruhe/Germany - ZKM organizes exhibitions and events on the effects of media, digitization, and globalization.
- Ars Electronica Center, Linz/Austria - Museum of the Future â a place where diverse blends of artistic genres, scientific domains and technological directions are displayed and processed.
- Technorama, Zurich/Switzerland - Technorama allows hands-on experiences of hundreds of natural phenomena and technology.
- Kate Vass Gallery - Zürich/Switzerland - Contemporary art gallery presenting works by international established, mid-career, and emerging artists focusing on photography and new technologies.
- Digital Art Museum - Berlin/Germany - Digital Art Museum is an online resource for the history and practice of digital fine art.
- NXT Museum - Amsterdam/Netherlands - The first museum in the Netherlands dedicated to new media art.
Schools ⢠Workshops
- Goldsmiths, UoL, MA Computational Art - Graduate program in London which develops your arts practice through the expressive world of creative computation
- UAL Creative Computing Institute - school in London working at the intersection of creativity and computational technologies
- 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
- 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
Related
- 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.
- 3D Machine Learning - A resource repository for 3D machine learning.
- Awesome creative technology - Curated list of Creative Technology groups, companies, studios, collectives and more.
License
To the extent possible under law, Terkel Gjervig has waived all copyright and related or neighboring rights to this work.
Top Related Projects
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
Source code for the Processing Core and Development Environment (PDE)
Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
Convolutional Neural Networks
Creative coding library for Unity
GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot