terkelg/awesome-creative-coding
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
About terkelg/awesome-creative-coding
terkelg/awesome-creative-coding is an open-source project on GitHub, mainly written in HTML. Creative Coding: Generative Art, Data visualization, Interaction Design, Resources. It currently holds 15,456 stars and 1,047 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board, currently at rank #65 with 7 new stars today.
GitHub Repository Details
README
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
- Frameworks • Libraries • Ecosystems
- Visual Programming Languages
- Sound Programming Languages
- Web Programming • Libraries
- Projection Mapping • VJing
- Online
- Hardware
- Other
- Learning Resources
- Videos
- Talks
- Articles
- Shaders • OpenGL • WebGL
- Canvas
- Hardware
- Other
- Interactive
- Quick References • Cheat Sheets
- Communities
- Subreddits
- Slack
- Other
- Math
- Machine Learning • Computer Vision • AI
- Inspiration
- Events
- Museums • Galleries
- 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 p5.js.
- 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.
- 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 goes 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.
Tools
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.
- TiXL [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.
- 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.
- JOY.JS - Realtime visual coding tool, easy to understand and aimed at beginners.
- 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.
- JSCAD - 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.
- twgl.js - 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.
- textmode.js - JavaScript canvas library for real-time ASCII and textmode graphics.
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.
- 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.
- editor.textmode.art - Online web editor for textmode.js.
- synth.textmode.art - Online live coding environment for textmode.js.
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.
- 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](htt
