Generative Design

Generative Design


This course introduces the 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 focus on data-driven approaches, mainly using Neural Network techniques. Every week we will discuss a new method, including how to apply them to generate artifacts in domains such as visual arts, music, architecture, video games, etc.  Methods will be implemented with Javascript and P5.js (Processing).


CMPS12B: Introduction to Data Structure.
I expect that you are comfortable programming in one programming language and that you know basic data structures as well as the classic algorithms associated to them. Knowing Javascript is not expected in this course, but I assume you can quickly learn it as we discuss the methods. 

Teaching Staff

- Instructor

Lucas N. Ferreira (

Office Hours: E2-280, 1:00-3:00pm Mondays (or by appointment).

- Teaching Assistant

Max Kreminski (

Office Hours: E2 393, 10am-12pm Fridays (or by appointment.)



Days & Times: TuTh 01:00PM-04:30PM

Location: Soc Sci 2 179

- Week 1

Assignment 1: Music Visualization with Particle Systems

- Week 2

Assignment 2: Terrain Generation with Perlin Noise

- Week 3

Assignment 3: Interactive Artist NPC with Generative Grammars

- Week 4

Assignment 4Evolving Cars

- Week 5

Assignment 5: Music with Markov Chains

Final Project: Proposal

- Week 6

- Week 7

- Week 8


Your grade is broken down as follows:

  • Class Participation (in-class exercises): 10%
  • Programming Assignments: 50%
  • Final Project: 40%

The mapping from Letter grade to score is the following:

  • A+ = 100-97%
  • A = 97-93%
  • A- = 93-90%
  • B+ = 90-87%
  • B = 87-83%
  • B- = 83-80%
  • C+ = 80-77%
  • C = 77-70% 
  • D = 70-60% 
  • F = 60-0%


There will be 5 programming assignments in Javascript/p5.js due weekly on Thursday at 12:30pm.

- Submissions

Assignments will be submitted on Canvas as zipped project folders containing all of the necessary HTML/Javascript code. 

- Late Policy

Late submissions of assignments will be penalized 25% off and will be accepted no more than 1 week late.

Final Project

The final project is intended for you to create an expressive and interactive experience with all the concepts learned during the course.

Course Summary:

Date Details Due
CC Attribution This course content is offered under a CC Attribution license. Content in this course can be considered under this license unless otherwise noted.