Generative Design

3976197493_197b3f082e_o.png

Generative design is a technique that leverages programming to amplify human creativity. Learn how artificial intelligence, mathematics, and software engineering can let us create games with vast and beautiful worlds. This course will bust the superficial myths in procedural content generation (PCG) around “infinite” content/replayability or “replacing” human design time/costs. It will expose new opportunities for bending game platform limitations and enabling designs unreachable without generative techniques. Learn to use generative grammars, biologically-inspired search algorithms, and even some of the latest deep machine learning ideas to generate images, music, and game level designs.

Readings: Students will read, watch, and play through relevant examples of generative design. Readings will address the theory and practice of generative design from both academic and craft practice (i.e. indie game designers) perspectives. In response, students will complete short quizzes that occasionally involve critical writing.

Programs: Students will design, build, and deploy their own unique interactive examples of generative design under technical and aesthetic requirements and building on example (JavaScript) code provided by the course staff. Submissions must be viewable to the public on the web, but they may be posted pseudonymously. (You are welcome to make up a new name for yourself for each program if you don't want to be associated with these projects in the future.)

Creative Projects: In small teams, students will propose, build, and deploy larger generative design projects. They will present their project and constructively critique and evaluate the work of others during the time normally reserved for final examinations.

Note on pre-requisites: This course assumes the ability to build and deploy interactive software at a skill level comparable to that resulting from CMPM 120. Students who have not completed this course but can explain or demonstrate similar experience are encouraged to request a permission code to join the course.

Course Staff

Instructor

Adam Smith amsmith@ucsc.edu (Please call me "Adam" or "Professor Smith")

Studio time (office hours):
- Regular weeks: Wednesdays and Fridays, 10am-noon in Engineering 2, room 256 (research lab).
- Finals week:
Monday, 12pm-5pm (5 hours)
Tuesday, 10am-5pm (7 hours)
Friday, 10am-12pm (2 hours)

Teaching Assistant

Isaac Karth ikarth@ucsc.edu (Please call me "Isaac")

Studio time (office hours):
- Regular weeks: Thursdays, 2pm - 4pm in Engineering 2, room 256 (research lab).
- Finals week:
Monday, 10am - 12pm  (2 hours)
Monday, 1:30pm - 3:00pm (1.5 hours)
Tuesday, 10am - 11:30am (1.5 hours)

Scoring and Grading

The course will be scored as following:

  • 30% Readings
  • 40% Programs
  • 30% Creative Project

The mapping from numerical scores to letter grades will depend only on scores, and it will be decided during a discussion of the course staff after all scores have been finalized.

Now that the quarter is ended, we can share the grading scale we came up with (for overall course score percentages):

00-60: F
60-70: C-
70-78: C
78-80: C+
80-81: B-
81-83: B
83-85: B+
85-89: A-
89-93: A
93-100: A+

Incompletes: Students with score below a certain threshold in certain categories may be given the option to take an I grade instead of the normal letter grade and complete or re-attempt some of the assigned work during the next quarter.

Late work policy: Readings and Programs may be submitted/completed late for fractional credit up until 8am on Monday of finals week. No late Reading and Programs past this point will be considered. The late penalty is 10% per day down to a maximum available score of 50% (automatically applied by Canvas).

Course Policies

Attendance: Outside of group project presentations and evaluation of your peers' presentations, attendance of lecture will not directly impact your score in the class. If you cannot reasonably attend a given lecture or your attendance would be distracting for your classmates, please instead review the webcast video recording for that lecture later on your own time.

Discussion Participation: Participation in in-class discussions is not necessary to earn points, however your contributions are valuable part of this course design. Your unique perspective can add to your peers' experiences in a way that the course staff alone cannot. As you decide how to participate, keep the UCSC Principles of Community in mind. 

Laptop/mobile use in lecture: Your devices will likely play a major role in your project presentations and some (unscored) collaborative programming activities -- please bring them. Please only operate them when they are relevant to your activity in the class and consider that one distracting flash from a screen can derail the concentration of many other students. If you have an urgent need to communicate with others outside of class, please do it outside or leave the lecture (and watch the remainder on the webcast system).

Collaboration: As hybrid artist-engineers / designer-programmers in training, you are expected to be able to productively work with others. Although reading and programming assignments are possible to complete individually, we expect you to talk with your peers, show them your screens, and make liberal use of copy-paste within your ad-hoc collaborative team before submitting your work. In deciding what and how to communicate with your peers, you should try to optimize how much others can learn from you and how much you can learn by teaching others. You can discuss solutions to assigned problems in Piazza, but the course may delete postings that do not respect the spirit of the collaboration policy. Note the attribution policy below.

Attribution: By default, we will assume any work you submit is artistically and technically entirely your own creation. Where this is not the case for your work, give credit to your collaborators and outside resources you used in your work using comments on your Canvas submissions.

Academic honesty: The Baskin School of Engineering has a zero tolerance policy for any incident of academic dishonesty. If cheating occurs, consequences may range from getting zero on a particular assignment to failing the course. In addition every case of academic dishonesty is referred to the students’ college Provost, who sets in motion an official disciplinary process. Cheating in any part of the course may lead to failing the course, suspension or dismissal from the Baskin School of Engineering, or from UCSC. The course staff is intent on setting up the course with many opportunities for you to learn from your peers and to not create unnecessary situations that might trap you into academic dishonesty.

Guests: Friends, family, and other faculty are welcome to join the lecture meetings (and even participate) with prior approval from the course instructor. That said, asking in person just before lecture starts would be enough.

Alternate interpretations of readings: Many reading assignments require interpretation that goes beyond the contents of the assigned texts. If you miss points for picking an answer that you truly believe is the best available answer in your interpretation, you can discuss this interpretation with Adam in office hours with the possibility of adjusting your score. Most often, this happens when a key phrase means something specifically different for you that it does not mean for others because of your individual background.

Student Resources

Disability Resource Center: UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089, or by email at drc@ucsc.edu.

CARE: Title IX prohibits gender discrimination, including sexual harassment, domestic and dating violence, sexual assault, and stalking. If you have experienced sexual harassment or sexual violence, you can receive confidential support and advocacy at the Campus Advocacy Resources & Education (CARE) Office by calling (831) 502-2273. In addition, Counseling & Psychological Services (CAPS) can provide confidential, counseling support, (831) 459-2628. You can also report gender discrimination directly to the University’s Title IX Office, (831) 459-2462. Reports to law enforcement can be made to UCPD, (831) 459-2231 ext. 1. For emergencies call 911.

CAPS: The Counseling and Psychological Services (CAPS) office provides a variety of counseling services to undergraduate and graduate students including individual counseling, groups and workshops, couple counseling, crisis services, on-campus psychiatry, the Let's Talk program, ADHD assessment, referrals to off-campus therapy, on-line self-help tools such as WellTrack, as well as a wide range of links to self-help resources on topics ranging from academic success, to depression, to general life issues.

Lecture Notes

Webcast videos of each lecture will be available here: https://webcast.ucsc.edu/ (username: cmpm-147-1 password: generate). Adam's Google Slides for each lecture will be posted below usually just before the beginning of each day's meeting. Videos will be posted on the webcast system within a few hours of the ending of each class meeting.

Thur 9/25 L01: Course Introduction

Tues 10/1 L02: Myths & Opportunities
Thur 10/3 L03: 🦄Tech Introduction  

Tues 10/8 L04: Images, Volumes, & Terrains
Thur 10/10 L05: #Powerpocalypse

Tues 10/15 L06: Seeding Chaos
Thur 10/17 L07: Combinatorics, Randomness, and Hashing

Tues 10/22 L08: Grids and Graphs
Thur 10/24 L09: Other Fantastic Beings

Tues 10/29 L10: Generative Building Blocks
Thur 10/31 L11: Grammars for Text Generation

Tues 11/5 L12: Design Grammars
Thur 11/7 L13: Current Events & Color Theory (Supplemental Slides: Color)

Tues 11/12 L14: Generators that Learn, Evaluate, and Improve
Thur 11/14 Guest Lecture by Tarn Adams: Emergent Narrative Building Blocks

Tues 11/19 L15: Final Project Introduction
Thur 11/21 L16: Project Ideation and Team Formation

Tues 11/26 [proposal presentations]
Thur 11/28 (no class, Thanksgiving Day)

Tues 12/3 [progress presentations]
Thur 12/5 L19: Course Recap

Finals Week
W 12/11 Creative Project Presentations

Course Summary:

Date Details Due