212 lines
17 KiB
Markdown
212 lines
17 KiB
Markdown
# Awesome Creative Coding [](https://github.com/sindresorhus/awesome)
|
||
|
||
[<img src="" align="right" width="70">](https://github.com/terkelg/awesome-creative-coding)
|
||
|
||
> A curated list of **beginner-friendly** tools, resources and shiny things to get you started.
|
||
|
||
*You might also like [Graphics resources](https://github.com/mattdesl/graphics-resources) and [Awesome OpenGL](https://github.com/eug/awesome-opengl).*
|
||
*Please read the [contribution guidelines](contributing.md) before contributing.*
|
||
|
||
-
|
||
|
||
## Contents
|
||
<details>
|
||
<summary>Table of Contents</summary>
|
||
<ul>
|
||
<li><a href="#books">Books.</a></li>
|
||
<li><a href="#subreddits">Subreddits.</a></li>
|
||
<li><a href="#communities">Communities.</a></li>
|
||
<li><a href="#ecosystems--frameworks">Ecosystems/Frameworks.</a></li>
|
||
<li><a href="#learning-material">Learning material.</a></li>
|
||
<li><a href="#interactive-tutorials">Interactive tutorials.</a></li>
|
||
<li><a href="#articles">Articles.</a></li>
|
||
<li><a href="#math">Mat.h</a></li>
|
||
<li><a href="#machine-learning--ai">Machine learning/Ai.</a></li>
|
||
<li><a href="#shader-references--articles">Shader references & articles.</a></li>
|
||
<li><a href="#talks--presentations--videos">Talks / presentations / videos.</a></li>
|
||
<li><a href="#related">Related.</a></li>
|
||
</ul>
|
||
</details>
|
||
|
||
## Books
|
||
- [Generative Art: A Practical Guide](http://zenbullets.com/book.php) - A practical guide using Processing.
|
||
- [Generative Design](http://www.generative-gestaltung.de/) - Visualize, Program, and Create with Processing.
|
||
- [The Nature of Code](http://natureofcode.com/) - Simulating natrual systems with Processing.
|
||
- [The Book of Shaders](https://thebookofshaders.com/) - Step-by-step guide through the abstract and complex universe of fragment shaders.
|
||
- [Programming Design Systems](https://programmingdesignsystems.com/) - A practical introduction to the new foundations of graphic design.
|
||
- [Pixel Shaders](http://pixelshaders.com/) - An Interactive Introduction to Graphics Programming.
|
||
- [Learning Modern 3D Graphics Programming](https://paroj.github.io/gltut/) - A series of tutorials on using OpenGL to do graphical rendering.
|
||
- [Scratchapixel 2.0](http://www.scratchapixel.com/) - Learn Computer Graphics From Scratch.
|
||
- [Programming Interactivity](http://shop.oreilly.com/product/9780596154158.do) - A Designer's Guide to Processing, Arduino, and openFrameworks.
|
||
- [Algorithms for Visual Design Using the Processing Language](https://www.amazon.com/gp/0470375485/) - Experiment with design problems to create 3D animations, GUIs, and more.
|
||
- [Data-driven Graphic Design](https://www.amazon.com/dp/1472578309/) - Creative Coding for Visual Communication.
|
||
- [Foundation HTML5 Animation with JavaScript](http://www.apress.com/us/book/9781430236658) - Everything you need to know to create animation using the HTML5 canvas.
|
||
- [Playing with chaos](http://www.playingwithchaos.net/) - Programming Fractals and Strange Attractors in JavaScript.
|
||
- [Ray Tracing in One Weekend](https://www.amazon.com/Ray-Tracing-Weekend-Minibooks-Book-ebook/dp/B01B5AODD8/) - Mini book about Ray Tracing.
|
||
- [Learn OpenGL](https://learnopengl.com/) - Extensive tutorial resource for learning Modern OpenGL.
|
||
|
||
## Subreddits
|
||
- [r/creativecoding](https://www.reddit.com/r/creativecoding/) - Sharing and discussing the use of computer programming as a creative discipline.
|
||
- [r/rraytraycing](https://www.reddit.com/r/raytracing/]) - Subreddit on raytracing.
|
||
- [r/opengl](https://www.reddit.com/r/opengl/]) - News and discussion about OpenGL on all platforms.
|
||
- [r/graphicsprogramming](https://www.reddit.com/r/GraphicsProgramming/]) - Subreddit on graphics programming.
|
||
- [r/processing](https://www.reddit.com/r/processing/) - Subreddit on Processing.
|
||
- [r/shaders](https://www.reddit.com/r/shaders/) - Subreddit on shaders.
|
||
- [r/proceduralgeneration](https://www.reddit.com/r/proceduralgeneration/) - Subreddit on procedural generation.
|
||
|
||
|
||
## Communities
|
||
- [realtimevfx.com](https://realtimevfx.com/]) - Real Time VFX Community.
|
||
- [creative-dev](https://creative-dev.herokuapp.com/) - Creative Developement Slack.
|
||
- [The Creative Coding Podcast](http://creativecodingpodcast.com/) - Iain and Seb discuss the ins and outs of creative coding.
|
||
|
||
|
||
## Ecosystems / Frameworks
|
||
|
||
### Desktop
|
||
- [Processing]()- Computer programming language and IDE for visual arts.
|
||
- [Cinder](https://libcinder.org/) - Open source library for professional-quality creative coding in C++.
|
||
- [openFrameworks](http://openframeworks.cc/) - Open source C++ toolkit for creative coding.
|
||
- [vvvv](https://vvvv.org/) - Hybrid visual/textual live-programming environment for easy prototyping and development.
|
||
- [NodeBox](https://www.nodebox.net/node/) - Cross-platform, node-based GUI for efficient data visualizations and generative design.
|
||
- [Structure Synth](http://structuresynth.sourceforge.net/) - Cross-platform application for generating 3D structures by specifying a design grammar.
|
||
|
||
### Web
|
||
- [three.js](https://github.com/mrdoob/three.js/) - JavaScript 3D library.
|
||
- [regl](https://github.com/regl-project/regl) - Functional WebGL.
|
||
- [Stackgl](http://stack.gl/) - Open software ecosystem for WebGL, built on top of browserify and npm.
|
||
- [Paper.js](http://paperjs.org/) - The swiss army knife of vector graphics scripting.
|
||
- [Pixi.js]() - HTML 5 2D rendering engine that uses webGL with canvas fallback.
|
||
- [p5.js](https://p5js.org/) - JavaScript library that starts with the original goal of Processing.
|
||
- [Fabric.js](http://fabricjs.com/) - Javascript canvas library, SVG-to-canvas parser.
|
||
- [Sketch.js](http://soulwire.github.io/sketch.js/) - Minimal JavaScript creative coding framework.
|
||
- [Two.js](https://two.js.org/) - Two-dimensional drawing api geared towards modern web browsers.
|
||
|
||
|
||
## Learning material
|
||
- [Coding Rainbow](https://www.youtube.com/user/shiffman) - Daniel Shiffman makes videos about creative coding.
|
||
- [Shaders](https://github.com/mattdesl/lwjgl-basics/wiki/Shaders) - Shader tutorial in the context of lwjgl-basics.
|
||
- [Create 3D Graphics in JS Using WebGL](https://egghead.io/courses/create-3d-graphics-in-javascript-using-webgl) - Get started creating content with WebGL without any frameworks.
|
||
- [Learn HTML5 Graphics and Animation](https://egghead.io/courses/learn-html5-graphics-and-animation) - Introduction to the canvas 2D drawing API.
|
||
- [WebGL 2 Fundamentals](http://webgl2fundamentals.org/) - WebGL2 from the ground up. No magic.
|
||
- [Shaders: A primer](https://notes.underscorediscovery.com/shaders-a-primer/) - A primer on shaders.
|
||
- [Shaders: Second stage](https://notes.underscorediscovery.com/shaders-second-stage/) - The second part to the previous.
|
||
- [WebGL Lessons — Fragment Shaders](https://github.com/Jam3/jam3-lesson-webgl-shader-intro) - A brief introduction to fragment shaders.
|
||
- [WebGL Lessons — ThreeJS Shaders](https://github.com/Jam3/jam3-lesson-webgl-shader-threejs) - Using custom vertex and fragment shaders in ThreeJS.
|
||
- [ThreeJS post-proces example](https://github.com/Jam3/threejs-post-process-example) - example of post-processing effects in ThreeJS.
|
||
- [Introduction to shaders](https://aerotwist.com/tutorials/an-introduction-to-shaders-part-1/) - Part 1 of an introduction to shaders using threejs.
|
||
- [Ray Marching and Signed Distance Functions](http://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing) - Introduction to ray tracing.
|
||
- [Introduction to Ray Tracing](http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/) - A simple method for creating 3D images.
|
||
- [GLSL lighting walkthrough](https://github.com/stackgl/glsl-lighting-walkthrough) - Phong shading tutorial with glslify.
|
||
- [Interactive 3D Graphics](https://classroom.udacity.com/courses/cs291) - Udacity course that teach you the principles of 3D computer graphics.
|
||
- [Interactive Computer Graphics](https://www.coursera.org/learn/interactive-computer-graphics) - Computer graphics course from Coursera.
|
||
- [MFGD - Fragment Shaders](https://www.youtube.com/playlist?list=PLW3Zl3wyJwWMpFSRpeMmSBGDShbkiV1Cq) - YouTube playlist about fragment shaders.
|
||
- [Learn OpenGL](https://learnopengl.com/) - Learn the inner workings of computer graphics.
|
||
|
||
|
||
## Interactive tutorials
|
||
- [Shader-school](https://github.com/stackgl/shader-school) - A workshopper for GLSL shaders and graphics programming.
|
||
- [Webgl-workshop](https://github.com/stackgl/webgl-workshop) - The sequel to shader-school: Learn the WebGL API.
|
||
- [Fragment-oundry](http://hughsk.io/fragment-foundry) - Interactive fragment shader tutorial.
|
||
- [SDF Tutorial 1: box & balloon](https://www.shadertoy.com/view/Xl2XWt) - Shadertoy tutorial on raytracing.
|
||
- [HOWTO: Ray Marching](https://www.shadertoy.com/view/XllGW4) - Shadertoy tutorial on Ray Marching.
|
||
- [Raymarch Tutorial2](https://www.shadertoy.com/view/XlBGDW) - Shadertoy raymarch tutorial.
|
||
- [GLSL 2D Tutorials](https://www.shadertoy.com/view/Md23DV) - Shadertoy GLSL 2D Tutorial.
|
||
|
||
|
||
## Articles
|
||
- [Shepherding random numbers](http://inconvergent.net/shepherding-random-numbers/) - Tiny guide to shepherding random numbers.
|
||
- [FBO particles](http://barradeau.com/blog/?p=621) - Article about FBO/GPGPU particles by @nicoptere.
|
||
- [Ray marching (with THREE.js)](http://barradeau.com/blog/?p=575) - Article about ray marching with three.js by @nicoptere.
|
||
- [Visualizing Algorithms](https://bost.ocks.org/mike/algorithms/) - A look at the use of visualization to understand, explain and debug algorithms.
|
||
- [Custom shaders with Three.JS](https://csantosbh.wordpress.com/2014/01/09/custom-shaders-with-three-js-uniforms-textures-and-lighting/) - Introduction to custom shaders, uniforms, textures and lighting in three.js.
|
||
- [Modern OpenGL Series](https://github.com/tomdalling/opengl-series) - Good introduction to some of the OpenGL terms.
|
||
- [An intro to modern OpenGL](http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html) - First part of an introduction to modern OpenGL.
|
||
- [Experimenting with Three.js shaders and the ShaderMaterial](http://blog.2pha.com/experimenting-threejs-shaders-and-shadermaterial) - Introduction to custom mesh shader materials.
|
||
|
||
|
||
## Math
|
||
- [Math as code](https://github.com/Jam3/math-as-code) - A cheat-sheet for mathematical notation in code form.
|
||
- [Coding Math](https://www.youtube.com/user/codingmath) - Teaches you the math you need to understand as a programmer.
|
||
- [Math snippets](https://github.com/terkelg/math) - Math snippets with graphic programming in mind.
|
||
- [Formul Animations](https://www.youtube.com/watch?v=0ifChJ0nJfM) - The principles of painting with maths.
|
||
- [Learning Maths again](https://github.com/silviopaganini/maths) - Collection of JS and GLSL math snippets.
|
||
- [Eases](https://github.com/mattdesl/eases) - A grab-bag of modular easing equations.
|
||
- [Math for Motion](https://soulwire.co.uk/math-for-motion/) - Visualization of different motion equations.
|
||
- [Matrix Multiplication](http://matrixmultiplication.xyz) - Matrix multiplication visualized.
|
||
|
||
|
||
## Inspiration
|
||
- [Shadertoy](https://www.shadertoy.com/) - Build and share shaders with the world and get inspired.
|
||
- [GLSLbin](http://glslb.in/) - Fragment shader sandbox with support for glslify.
|
||
- [GLSL Sandbox](http://glslsandbox.com/) - Online shader editor and gallery.
|
||
- [CodePen](http://codepen.io/) - Show case of advanced techniques with editable source code.
|
||
- [OpenProcessing](https://www.openprocessing.org/) - Algorithmic Designs Created with Processing, p5js and processingjs.
|
||
- [Dwitter](https://www.dwitter.net/) - Social network for short JavaScript demos.
|
||
- [Chrome Experiments](https://www.chromeexperiments.com/) - Showcase of web experiments written by the creative coding community.
|
||
- [Codedoodl.es](https://codedoodl.es) - A showcase of curated creative coding sketches.
|
||
- [For your Processing](http://fyprocessing.tumblr.com/) - Projects and tutorials about Processing.
|
||
- [31 days of Canvas tutorials](http://creativejs.com/2011/08/31-days-of-canvas-tutorials/) - Collection of canvas tutorials by Seb Lee-Delisle.
|
||
- [Art From Code](http://www.artfromcode.com/) - Code sketches by Keith Peters.
|
||
- [Generator.x](https://www.flickr.com/groups/generatorx/) - Flickr group about generative strategies in art & design.
|
||
- [Generative Art](https://www.flickr.com/groups/generativeart/) - Flickr group about generative art.
|
||
|
||
|
||
## Machine Learning / A.I.
|
||
- [ml4a](http://ml4a.github.io/) - Machine learning for artists.
|
||
- [Keras.js](https://transcranial.github.io/keras-js/) - Run Keras models (tensorflow backend) in the browser, with GPU support.
|
||
- [Tesseract.js](http://tesseract.projectnaptha.com/) - Pure Javascript Multilingual OCR.
|
||
- [Google ML](https://cloud.google.com/ml/) - Cloud machine learning by Google.
|
||
- [TensorFlow](https://www.tensorflow.org/) - Open source software library for machine intelligence.
|
||
- [ConvNetJS](http://cs.stanford.edu/people/karpathy/convnetjs/started.html) - Deep Learning in your browser.
|
||
- [Wekinator](http://www.wekinator.org/) - Allows anyone to use machine learning.
|
||
|
||
|
||
## Shader References & Articles
|
||
- [The Book of Shaders Glossary](https://thebookofshaders.com/glossary/) - Shader glossary by theme.
|
||
- [GLSL](http://www.shaderific.com/glsl/) - OpenGL ES shading language reference.
|
||
- [gltut](https://paroj.github.io/gltut/Basics/Intro%20Glossary.html) - 3D programming glossary.
|
||
- [Smooth minimum](http://iquilezles.org/www/articles/smin/smin.htm) - Article about the smooth based primitive union.
|
||
- [Modeling with distance functions](http://iquilezles.org/www/articles/distfunctions/distfunctions.htm) - Collection of distance functions in one centralized place.
|
||
- [Volumetric rendering](http://www.alanzucconi.com/2016/07/01/volumetric-rendering/) - Explains how to create complex 3D shapes inside volumetric shaders.
|
||
|
||
|
||
## Tools
|
||
- [F3](http://www.syedrezaali.com/f3-mac-app/) - Powerful 3D design app that enables you to live code 3D form.
|
||
- [Fragment](http://www.syedrezaali.com/store/fragment-osx-app) - Mac app to live code GLSL graphics.
|
||
- [Chrome Shader Editor](https://chrome.google.com/webstore/detail/shader-editor/ggeaidddejpbakgafapihjbgdlbbbpob?hl=en) - Live editing shaders in the browser.
|
||
- [ShaderTool](http://store.steampowered.com/app/314720/) - Modern shader IDE for programmers and FX artists.
|
||
- [Shadershop](http://www.cdglabs.org/Shadershop/) - Interface for programming GPU shaders.
|
||
- [hg_sdf](http://mercury.sexy/hg_sdf/) - A glsl library for building signed distance functions.
|
||
|
||
|
||
## Talks / Presentations / Videos
|
||
- [Intro to WebGL](http://davidscottlyons.com/threejs/presentations/frontporch14/) - Intro to WebGL with three.js.
|
||
- [Inigo Quilez Live](http://www.iquilezles.org/live/index.htm) - Collection of live coding videos by Íñigo Quílez.
|
||
- [There is also canvas](https://slideslive.com/38898318/there-is-also-canvas) - Bruno Imbrizi go through the use of canvas for creative coding at WebExpo 2016. Interactive slides [here](https://brunoimbrizi.github.io/webexpo-2016/dist/).
|
||
- [Draw. Move. Fail. Repeat.](http://setimeout.com/workshops/gobelins-2016/) - Slides by [@williamapan](https://twitter.com/williamapan) from his Creative developer workshop at Gobelins.
|
||
|
||
## Websites / Blogs
|
||
- [abandonedart.org](http://abandonedart.org/) - Generative art ideas by Matt Pearson.
|
||
- [iquilezles.org](http://www.iquilezles.org) - Home of Íñigo Quílez.
|
||
- [bit-101.com](http://www.bit-101.com/blog/) - Blog by Keith Peters.
|
||
- [IBreakDownShaders](http://ibreakdownshaders.blogspot.com.au/) - Explore the math behind shaders.
|
||
|
||
|
||
## Related:
|
||
- [Awesome opengl](https://github.com/eug/awesome-opengl) - A curated list of awesome OpenGL libraries, debuggers and resources.
|
||
- [Graphics resources](https://github.com/mattdesl/graphics-resources) - A list of graphic programming resources.
|
||
- [Awesome canvas](https://github.com/raphamorim/awesome-canvas) - A curated list of awesome HTML5 canvas with examples, related articles and posts.
|
||
- [Awesome audio visualization](https://github.com/willianjusten/awesome-audio-visualization) - A curated list about Audio Visualization.
|
||
- [Awesome computer vision](https://github.com/jbhuang0604/awesome-computer-vision) - A curated list of awesome computer vision resources.
|
||
- [Magic Tools](https://github.com/ellisonleao/magictools) - A list of game development resources to make magic happen.
|
||
- [Hanecci’s link collection](http://d.hatena.ne.jp/hanecci/20131005/p1) - Link collection of ray marching on the GPU.
|
||
- [Awesome visualization research](https://github.com/mathisonian/awesome-visualization-research) - A list of recommended research papers and other readings on data visualization.
|
||
|
||
|
||
## License
|
||
|
||
[](https://creativecommons.org/publicdomain/zero/1.0/)
|
||
|
||
To the extent possible under law, [Terkel Gjervig](http://terkel.com) has waived all copyright and related or neighboring rights to this work.
|