#BFADT Code 2: Procedurality & openFrameworks
PUDT 2112
Miri Park miri@newschool.edu
When: Mon 7:00PM - 9:40PM
Location: Arnhold Hall 55 W 13th St. Room 804
Prerequisite: PUDT 2110 Code 1
Course description:
This studio is a continuation of the principles and techniques taught in Code 1, with a focus on generative design, simulation, and toolkits for procedural and interactive art. Using C++ and openFrameworks as our creative coding environment, we will learn to simulate physical, natural, mathematical, scientific, and theoretical systems, and integrate existing frameworks ranging from physics engines to computer vision to projection mapping. In addition to exploring applications of creative coding, we will also gain a thorough understanding of programming processes, structures, paradigms, and algorithms that will broaden our understanding of not just what we can do with code, but demystify the what, why, and how of programmatic systems. The work expected in the course will be visually and conceptually impactful, with the goal to create dynamic, critical, and creative outcomes.
Learning Outcomes:
- Develop a proficiency in creative coding using openFrameworks
- Gain an understanding of programming history, practices, and systems.
- Procedurally and algorithmically simulate elements of the natural world in a digital environment.
- Use these skills to make works of computational art of creative and conceptual depth.
Course Schedule:
Week | Date | Overview |
---|---|---|
1 | 1/23 | Introduction to openFrameworks, Hello World, building our first oF application. |
2 | 1/30 | Object oriented programming, simulating Newtonian kinematics: motion, forces, vectors |
3 | 2/6 | Math for code: trigonometry, Euclidean geometry, oscillations |
4 | 2/13 | Randomness, noise, fractals, patterns, and natural systems |
2/20 | No class, President's Day | |
5 | 2/27 | Particle Systems, flocking, L-Systems |
6 | 3/6 | Taking a deeper look, how computer systems work beneath the hood. C++ without our convenient IDEs. |
7 | 3/13 | Midterm Presentations |
3/20 | No class, Spring Break | |
8 | 3/27 | Memory management: pointers |
9 | 4/3 | animations, interpolations, lerp, imitating natural motion. |
10 | 4/10 | Box2D, electromagnetism, interaction between particles |
11 | 4/17 | Computer vision, image processing |
12 | 4/24 | Projection Mapping |
13 | 5/1 | Final proposals, workshop |
14 | 5/8 | Final Work session |
15 | 5/15 | Final Presentations |
Recommended Readings and Resources
- http://openframeworks.cc/learning/
- https://github.com/ofZach/algo2012
- https://github.com/patriciogonzalezvivo/sims2014
- http://natureofcode.com/book/
Grading Breakdown:
Assignment | Description | Points |
---|---|---|
Homework Assignments | There will be weekly homework following all lectures. Homework is due the following class unless otherwise stated. | 40 |
Midterm | Midterm will be assigned after 5 weeks of class, and to be turned in on the 7th week of class. All midterms must be presented. | 20 |
Final | Students will propose their own ideas for a final project, within the guidelines of the class. All finals must be presented and turned in. | 30 |
Attendance & Participation | Attendance is mandatory. Any unexcused absence will result in a deduction of the participation grade. 3 tardies is equivalent to an absence, 3 absences is a letter grade deduction. | 10 |
Total | 100 |