Convert Figma logo to code with AI

terkelg logoawesome-creative-coding

Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.

12,716
862
12,716
1

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)

5,320

Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.

25,692

Convolutional Neural Networks

1,878

Creative coding library for Unity

19,483

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.

5,320

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
25,692

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.

1,878

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.

19,483

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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.

Contents

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 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

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

Related

License

CC0

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