mattdesl/workshop-generative-art
mattdesl/workshop-generative-art has 1,405 GitHub stars and 264 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 06:08 UTC. Last push 2021-04-30.
A workshop on creative coding & generative art
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalCreative Coding & Generative Art with JavaScript
This repository includes code & resources for students attending my Generative Art & Creative Coding with JavaScript workshops in 2018.
Contents
Tools & Prerequisites
Here is a list of tools, software and libraries that will be used during the workshop.
| Tool | Documentation | Description |
|---|---|---|
| Code Editor | A JavaScript code editor, VSCode is recommended | |
| Browser | A modern browser, Chrome is recommended | |
| Canvas API | [docs] | The HTML5 <canvas> API, built into all browsers |
| Command-Line | [guide] | A command-line application like Terminal (macOS) or cmder (Windows) |
| Node.js (v8+) | [docs] | Used for running command-line JavaScript tools |
| npm (v5+) | [docs] | Used to install third-party dependencies and tools |
canvas-sketch |
[docs] | A development tool & framework for Generative Art |
canvas-sketch-util |
[docs] | Utilities for Math & Random Number Generation |
| ThreeJS | [docs] | A 3D rendering engine for WebGL |
Installing the Prerequisites
Before starting the workshop, make sure you have installed and set up:
- A browser, Chrome recommended
- A code editor, VSCode recommended
- A terminal application (like Terminal, cmder or cmd.exe)
- Node.js 8+ and npm 5+
If you already have these tools installed, you can use the --version flag to make sure you have at least node@8 and npm@5:
npm --version
node --version
Complete Installation Guide
If you haven't installed these yet, you can find more instructions here:
Installing canvas-sketch CLI
We will be using canvas-sketch and its command-line interface (CLI) during the workshop.
To install the CLI with npm, use the --global or -g flag like so:
npm install canvas-sketch-cli --global
:bulb: Note the
-clisuffix in the name; this tells npm to install the CLI tool, not the code library.
Command-Line Tips & Suggestions
If you are new to the command-line, you can read more details here:
Cloning & Running Examples
During the workshop, you won't need to clone and run this repository locally. However, if you wish to do so, you can find more instructions here:
Cheat Sheet
I've also included a small "cheat sheet" that you can use as a reference if you are forgetting some of the patterns and recipes discussed during the workshop.
Exercises
Below are a couple exercises you can tackle during lunch and free coding periods:
Other Modules for Creative Coding
This workshop encourages students to make use of npm modules to build complex and interesting artworks.
If you find a module you want to use, like point-in-polygon, you can install it from your project folder like so:
npm install point-in-polygon
Below are some nice modules for creative coding & generative art:
- load-asset - a utility to load images and other assets with async/await
- point-in-polygon - test if 2D point is within a polygon
- nice-color-palettes - a collection of 1000 beautiful color palettes
- gl-matrix - 2D and 3D vector & matrix math utilities
- poisson-disk-sampling - can be used for 2D and 3D object placements
- delaunay-triangulate - 2D and 3D triangulation
- simplify-path - simplify a 2D polyline path
- chaikin-smooth - smooth a 2D polyline path
- earcut - fast 2D and 3D polygon triangulation
- voronoi-diagram - for 2D and 3D voronoi diagrams
- svg-mesh-3d - convert SVG path string to a 3D mesh
- eases - a set of common easing functions
- bezier-easing - create cubic bezier curve functions
- glsl-noise - noise functions as a GLSL module (used with glslify)
- glsl-hsl2rgb - HSL to RGB function as a GLSL module (used with glslify)
Further Reading
More links to generative art & creative coding:
Generative Art
Anders Hoff — Writing on Generative Art
Tyler Hobbs — Writing on Generative Art
My Blog — Writing on Creative Coding & Generative Art
GLSL & Shaders
Math
Linear Interpolation — intro to
lerpmath-as-code — A cheat sheet for mathematical notation in code form
More Resources
awesome-creative-coding — a large list of resources
graphics-resources — a large list of papers & study material
Tools
giftool.surge.sh — A simple tool for creating looping GIF animations from a folder of PNG frames
cubic-bezier.com — A cubic Bezier curve editor, useful alongside the bezier-easing module
ThreeJS Editor — An online scene editor for ThreeJS
Communities
#plottertwitter, #generative, #webgl and similar hashtags on Twitter, Instagram etc.
License
This repository has a dual license.
The textual documentation and markdown files are all licensed as MIT.
The JavaScript source files have been released under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0), see src/LICENSE.md for details.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,115 starspublic-apis/public-apis
A collective list of free APIs
497,348 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
444,198 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,208 stars