This repository contains examples (in p5.js) implemented during the University of California, Santa Cruz - CMPM147 - Generative Design course and base code for programming assignments.
This course introduces students to fundamental methods of Generative Arts and Design. The first half of the course focus on both constructive and search-based approaches and the second half covers data-driven methods, with a focus on Neural Networks (Deep Learning). Every class we discuss a method, including how to apply it to generate artifacts in domains such as visual arts, music, narrative, video games, etc. Methods are implemented in Javascript with P5.js (Processing).
The webpage of the Summer 19 version of this course can be found here. In this webpage you can find link to slides, readings and assignment descriptions.
This is a hands-on course, so we implement in class all the covered generative methods with simple applications. In this repository, you can find all the examples implemented in the Summer 19 version of this course:
- L01 - Introduction [Slides]
- L02 - Javascript, Processing and p5.js [Slides]
- L03 - Randomnes and Noise [Slides]
- L04 - Cellular Automata [Slides]
- L05 - Generative Grammars [Slides]
- L06 - State Space Search [Slides]
- L07 - Evolutionary Algortihms [Slides]
- L08 - Markov Chains [Slides]
- L09 - Perceptron [Slides]
- L10 - Multilayer Perceptron [Slides]
- L11 - TensorFlow.js [Slides]
- L12 - Recurrent Neural Networks [Slides]
- L13 - Autoencoders [Slides]
- L14 - GANs [Slides]
- ASG1 - Music Visualization with Particle System [Description]
- ASG2 - Terrain Generation with Perlin Noise [Description]
- ASG3 - Interactive Artist NPC with Generative Grammars [Description]
- ASG4 - Evolving Cars [Description]
- ASG5 - Music with Markov Chains [Description]
- L06 - Include Planning (for narrative) and ASP.
- L07 - Change GA example to generate SMB levels.
- L14 - Implement simple GAN for digit generation.
- ASG2 - Include base code with optimized renderer to support large worlds.
- ASG4 - Change description to require Tournament selection instead of Roulette Wheel.
- ASG5 - Change description to generate monophonic music instead of polyphonic.