Skip to content

创造性编程

Awesome Creative Coding Awesome

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.

Books

Online Books

Courses

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 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 (WebGL½, 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

Talks

Articles • Tutorials

Shaders • OpenGL • WebGL

Canvas

Hardware

Other

Interactive

Quick References • Cheatsheets

Communities

Subreddits

Slack

Other

Math

Machine learning • Computer Vision • Ai

  • ml4a - Machine learning for artists.
  • Keras.js - Run Keras models (tensorflow backend) in the browser, with GPU support.
  • Tesseract.js - Pure Javascript Multilingual OCR.
  • Google ML - Cloud machine learning by Google.
  • TensorFlow - Open source software library for machine intelligence.
  • ConvNetJS - Deep Learning in your browser.
  • Wekinator - Allows anyone to use machine learning.
  • Machine Learning - Coding Train repo with links to machine learning resources.
  • CreativeAi.net - Space to share creative Ai projects.
  • AI Playbook - Ai microsite intended to help newcomers get started.
  • Teachable Machine - Explore how machine learning works, live in the browser.
  • TensorFlow.js - JavaScript library for training and deploying ML models in the browser and on Node.js.
  • Hello TensorFlow - Fully commented TensorFlow.js demo.
  • ml5.js - Friendly machine learning for the web.
  • Model Zoo - Discover open source deep learning code and pretrained models.
  • Runway - Toolkit that adds artificial intelligence capabilities to design and creative platforms.
  • Lobe - Build, train, and ship custom deep learning models using a simple visual interface.
  • ModelDepot - Platform for discovering, sharing, and discussing easy to use and pre-trained machine learning models.

Inspiration

  • 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

Schools • Workshops

Blogs • Websites

  • CreativeApplications.Net [CAN] - Famous digital art blog.
  • iquilezles.org - Home of Íñigo Quílez, specialised in GLSL and math snippets.
  • bit-101.com - Blog by Keith Peters, specialised in creative coding.
  • ibreakdownshaders - Explore the math behind shaders.
  • adriancourrèges.com - Blog of software engineer Adrian Courrèges. Articles about game graphics studies etc.
  • clicktorelease.com - Home of Jaume Sanchez Elias, with demos, talks, articles on WebGL and WebVR.
  • syntopia - Blog about generative art and systems, by Mikael Hvidtfeldt Christensen.
  • madebyevan.com - WebGL experiments and articles by Evan Wallace.
  • songho.ca - Home of Song Ho Ahn, with a good collection of tutorials on OpenGL and math.
  • simonschreibt.de - Game art tricks, design tricks by Simon schreibt.
  • sighack.com - Blog about generative art algorithms and techniques, by Manohar Vanga.
  • jsdo.it-archives - Compilation of WebGL experiments including comparisons on WebGL frameworks and physics engine (oimo.js, cannon.js, ammo.js)
  • WebAudio Weekly - Newsletter to know everything about the WebAudio API

License

CC0

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