Design Computation

# Modules

## Fundamentals

1. Static Form
Introduction to Processing. Basic syntax, sketch structure, function execution. Drawing methods.
Structure 1. Shape 1. Color 1.
2. Parameterization
Data and state. What we know. Types and values. Variables. Mathematics to change state. Using variables to describe the data of a design proposition.
Data 1. Math 1.
3. Rules and Decisions
Conditional logic and execution. State machines.
Control 1.
4. Multiplicity
Loops and arrays. The naming problem. Indexing. Parallel arrays used to describe multiple properties.
5. Dynamic Form and Associativity
Using pseudocode to describe computational processes. Breaking down problems into something computable. More mathematics. Tying states together so geometries are associated. Breaking down a process into repeated chunks of instructions. Giving names to procedures and sets of instructions.
6. Multiplicity 2: Objects
Basics of creating and using classes and objects.
1. Defining classes of objects.
2. Referencing with variables and arrays.
3. PVectors
4. ArrayLists
5. Inheritance
6. Polymorphism
7. Images and Typography
8. Coordinate Systems
1. Transformation methods
2. pushMatrix() … popMatrix()
9. 3D
Working in three dimensions.
1. PeasyCam
2. Geometry: beginShape() … endShape()
10. Visualization
1. Rendering techniques
11. Files and Formats
2. Parsing existing file formats

## Intermediate

1. 3D Geometry
Surfaces, meshes, mathematically driven surfaces, NURBS, operations to change, parameterization of, etc.
2. Pseudophysics
1. Particle Systems
2. Spring + Point Mass Systems
3. Cellular Automata
4. Fractals
5. Distributed Systems
1. Agents
2. Behavior
6. Artificial Life
7. Artificial Intelligence
8. Processing Libraries
9. Algorithms
1. Sort
2. Geometric
10. Data Structures
1. Trees
2. Graphs
3. Queues
4. Lists
5. Dictionaries
11. Search
12. Tooling
Interface design, making something presentable to the world.
13. Intro to Computational Geometry
1. Mesh Library (Voronoi, Delaunay, convex hull)
14. Generative Form
1. Growth rules
2. Creating a semantic model