Procedural Animation

Course Number: ACCAD 7104

Days and Times: MWF 1:30 - 3:05pm, May 11 - July 1, 2016

Location: Room 349A Sullivant Hall

Instructor: Matthew Lewis, lewis.239@osu.edu

________

Notes: misc links, files mentioned, and such...

________


…………………………………………………………………………………………

Final - Friday July 1st, 1:30-3:05pm




..........................................................................

Class [19] Fri June 24


L-systems

Grains

Game of Life

Crowds

Matt's Parametric and Fab work


..........................................................................

Class [18] Wed June 22


Crowd Assessment and Red follows Yellow (short)

Tanks!

Autodesk Generative Design

Verizon Door


COPs

ROPs


Project proposals


..........................................................................

Class [17] Mon June 20


- Discussed final assignment


- Prepared to discuss final project on Wednesday


- Presented/discussed examples of interest

..........................................................................

Class [16] Fri June 17



- Homework 3 presentations


{Homework 4 assignment}  "Open project" due in class Friday July 1st

- present informal proposal/ideas this Wednesday 22nd

- Reference examples you used / combined

- extend or combine previous work, or try something new that didn't have enough time for

- document in your hw folder

 * text and images explaining your work

 * a flipbook or rendered movie (or movies) showing your work

 * include a houdini file that's easy to understand (i.e. well org, commented, etc)

 * optional: include recorded interactive demo movie


- For Monday's Class: choose a new example for 10-15 minute discussion



..........................................................................

Class [15] Wed June 15


Discussed:

- viscosity examples

- RBD Glue strength vs Make Breakable min impact

- Flip tank sizing

- Denting with Pops example (multi-solvers)


..........................................................................

Class [14] Mon June 13


{LAB} “tube skirt”

- create a tube cloth “skirt” around a static RBD sphere

- constrain the top points to the sphere

- animate the sphere’s position

..........................................................................

Class [13] Fri June 10


{LAB} “volumes”

- create a polygon mess (Copy SOP, lots of overlapping shapes)

- convert to Volume via IsoOffset SOP (Volume tool) and see resolution vs speed/memory at high res

- Convert to VDB (via SDF tool or SOP) then polygons (“Convert VDB” tool or SOP) and compare interactivity as you manipulate SOP parameters


{LAB} “volume fluid”

- create Fluid container

- create fluid source and fill container (speed up with timescale parameter)

- flow around static object

- disappear into sink


..........................................................................

Class [12] Wed June 8


{LAB} “attributes”

- use the Attribute Create SOP to add a custom point attribute with a value between 0 and 1

- see the attribute in a Geometry Spreadsheet Pane

- set the attribute using $BBX in Point SOP

- promote the attribute from points to polygons (verify in a Detail pane)

- visualize the attribute using Color SOP or rename to Cd attribute

  * point(“../someSOP”, $PT, ”attributeName”, 0)

  * prim(“../someSOP”, $PT, ”attributeName”, 0)


{LAB} “solid Finite element objects”

- create+drop some solid objects

- drop on some static + RBD objects

- compare behavior to “organic tissue” solids

- Clip SOP to see interior

- Fracture solids

- Embed hires version in a low res solid

- animate object in SOP network


{LAB} “Particle fluids”

- convert an object to fluid and run it down a terrain 

- toss some objects in a “FLIP tank”

- set up an EMIT and SINK flow

..........................................................................

Class [11] Mon June 6


{LAB} “Collision Course”

- Drop some objects down an inclined stuff-scape

- collide with static objects

- collide with dynamic objects


{LAB} “Rube”

- Use “RBD Point Object” to make lots of copies to drop and collide

- Break an object into parts with “RBD Fracture”

- use Pin, Spring, and Hinge constraints in a rube goldberg fashion

- Break an object with “make breakable”



..........................................................................

Class [10] Fri June 3


Homework 2 review


{Homework 3 assignment}  "Moving Parts" due in class Friday June 17th

-Demonstrate+document breadth of dynamics experimentation

-Reference any examples you used / combined

-Recommend "what does this do?" (vs "how can I make X”)

-Build on previous knowledge: SOPs/CHOPs/POPs

-document in your hw folder

 * text and images explaining your work

 * a Flipbook or rendered movie (or movies) showing your motion

 * include a Houdini file that's easy to understand

..........................................................................

Class [09] Wed June 1


Homework 2 Lab - problem solving


..........................................................................

Class [--] Mon May 30


   Memorial Day Holiday


..........................................................................

Class [08] Fri May 27



{LAB} “Particle Choreography”

- Use basic POP emitters to create particles

- Use Collision, Limit, and Force POPs

- Animate their parameters with CHOPs



..........................................................................

Class [07] Wed May 25



{LAB} “reactive”

- change color based on speed

- start shaking (noise) as go faster

- move away when something gets close

- Use Vector, Slope, or Area CHOPs to create other movement relationships



{Lab} “fountain”

- spray particles upwards out of an object

- use gravity to make them come back down

- collide with some objects and try different collision behaviors

- animate when spraying, how many particles, and initial velocity

- spray particles from multiple locations in sequence(s)


{Lab} “Basic Forces”

- Use the Particle SOP with Force and Metaball SOPs

- Use an animated source object or objects

- Animate a sequence of forces/attractions (first this, then that…)


..........................................................................

Class [06] Mon May 23


{LAB} - drive parameters with CHOPs

-adding layers of motion: 

 * move an object with a CHOP: Wave, Noise

 * explore high and low frequency and amplitude 

 * animate scale, rotation, translation, and construction/deformation

 * drive 2 objects with 2 CHOPs

 * drive 2 objects with 2 channels in one CHOP


- create 10 different channels in one CHOP: chan[1-10]

- animate 10 objects with those 10 channels: e.g: chopci(chopPath, $CY, $F)

- drive the number of channels using the number of object copies

  * `ch(pathToYourNumberOfCopiesParam)` returns number of copies

  * use: chan[1-`ch(pathToNumCopiesParam)`] (instead of chan[1-10])

- change additional attributes with additional multi-channel CHOPs



..........................................................................

Class [05] Fri May 20


Homework 1 review


{Homework 2 assignment}  "Procedural Motion" due in class Friday June 3rd

-Demonstrate+document breadth of CHOP + Particle usage/experimentation

-Provide multiple parameters for modifying motion qualities

 * high level is better than low level (e.g. "nervousness" better than "speed")

-Drive multiple SOP parameters with CHOPs

-document in your hw folder:

 * text and images explaining your work

 * a flipbook movie (or movies) showing your motion

 * include a houdini file that's easy to understand (i.e. well org, commented, etc)

 * include a CamStudio recorded parameter demo


..........................................................................

Class [04] Weds May 18


{Lab} “motion expressions”

- use “$F * _frequency_” to make things change (control speed)

- use “_amplitude_ * sin($F * _frequency_) + _offset_” to animate properties

- use for object Scale Rotate Translate (SRT)

- use in SOPs creatively


{LAB} 

- drive parameters with CHOPs

-adding layers of motion: 

 * move an object with a CHOP: Wave, Noise

 * explore high and low frequency and amplitude 

 * animate scale, rotation, translation, and construction/deformation

 * drive 2 objects with 2 CHOPs

 * drive 2 objects with 2 channels in one CHOP

 * drive N objects with N channels


..........................................................................

Class [03] Mon May 16



{Lab} “garden variety”

  - make a minimal flower or plant (stem/petals/leaves/etc)

  - make many Copies

  - use copy stamping with stamp() to vary the modeling parameters for the flowers/plants


{Lab} “digital asset”

  - make sure you’re comfortable using ch() expressions to drive parameter with other parameters

  - create a new slider and spare channel: use it to control several parameters

  - create a digital asset with a few control parameters (fence, flower, facade, factory…)


* Expressions and expression cookbook (a web whiteboard )

* Architecture: dynamic facade


* CityEngine

* digital assets 

* Elevator asset

* Bridge asset

* Creep with Copy



* First Steps Video - intro tutorial

* OD | Force - Houdini portal

* Orbolt Assets - Asset store - Asset Guidelines

* Houdini Engine - Houdini assets in Maya and Unity



..........................................................................

Class [02]


* Japanese Boy video 

* Procedural Design Resources

* Procedural City - see Programming 


{Lab} “Parametric Object” (building/vehicle/face/robot/gadget/etc) with component relationships

  * use size variables to keep it on the ground ($YMIN)

  * adjust part positions based on other parts’ size/position e.g. ($SIZEX / 2.0)

  * adjust part sizes based on other parts’ size or position

  * adjust SOP parameters based on size and position

    * remap value range with fit()

  * adjust one SOP parameter based on the value of another parameter with ch()

  * adjust SOP parameters based on other SOP’s parameter values with ch()



{Lab} “minimalist city” - Copy SOP

  * Copy a square/box/circle/etc to make a tall grid of “windows”

  * Make four copies for four sides of a building

  * Make a street by Copying a row of buildings

  * variable height buildings with random() and/or sin() expression ($PT or $CY)

  * Make a city of streets

  * Use SOPs to modify your window, building, street, and city


..........................................................................

Class [01]


* Syllabus

* Notes

* homework


* Side Effects Software 

* OD|Force

* Getting Started

* Quick Ref Card


{Lab} “Computer Graphics!”

  * stack and arrange shapes (assemble a vehicle/building/robot/etc)

  * position lights

  * aim a camera

  * apply materials

  * render images


* Sweep SOP example


{Lab} “Surface Operators” - model non-representationally combining as many of these as you can

    * Box, Circle, Grid, Font, Sphere, Torus, Tube

    * Transform, Merge

    * Superquad, Metaball

    * Magnet, Bulge, SoftTransform

    * Carve, Clip, Divide, Extrude, Mountain, PointJitter, PolyWire, Revolve, Subdivide, Twist, Wireframe

    * Align, Merge, Rails, Ray, Skin, Sweep, Transform

    * Delete, Facet, Group, Resample, Peak/SoftPeak

    * PolyReduce, Convert

    * DO NOT USE YET: 

        * Copy/Duplicate, particles, L-systems, fractal, manual modeling

        * characters, animation, dynamics, materials, rendering, hair, fire, fluid, etc


{Homework 1}  “Parametric Model”  - due in class Friday May 20th

  -Create a parametric model 

  -Create multiple low-level parameters: make small/local changes

  -Create multiple high-level parameters: make big/global changes

  -Demonstrate breadth/diversity of SOP usage

  -provide a document in your homework folder which explains your model’s parameters:

    * text descriptions

    * images

    * movie (can be just CamStudio or other screen recording)

    * Houdini file that’s easy to understand

  - put in your files in Y:\Courses\2015-2016\AC7104_Lewis_SU2016\(Your UserName)\Hw1\