Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nature-of-code/NOC-S17-1-Physics-Animation

Syllabus for Part 1 of Nature of Code: "Physics and Animation" at ITP Spring 2017
https://github.com/nature-of-code/NOC-S17-1-Physics-Animation

Last synced: 3 days ago
JSON representation

Syllabus for Part 1 of Nature of Code: "Physics and Animation" at ITP Spring 2017

Awesome Lists containing this project

README

        

The Nature of Code Part 1 (Spring 2017)
======================================

Syllabus for Part 1 of Nature of Code: "Physics and Animation" at ITP Spring 2017

Class Info
----------
* Daniel Shiffman: [email protected]
* Section 1: Tuesdays, 9:00-11:30am
* Section 2: Wednesdays, 9:00-11:30am
* [Office Hours](https://itp.nyu.edu/inwiki/Signup/Shiffman)
* [Sign up for Mailing List](https://groups.google.com/a/itp.nyu.edu/forum/#!forum/natureofcode)

Resources
---------
* [All course videos](https://www.youtube.com/user/shiffman/playlists?view=50&sort=dd&shelf_id=6) -- If you would like offline access to the videos and/or just prefer to watch them somewhere other than YouTube, let me know.
* [Nature of Code Kadenze Course](https://www.kadenze.com/courses/the-nature-of-code/info)
* [Online textbook](http://natureofcode.com/book/)
* [p5.js code examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js)
* [Processing (Java) code examples](https://github.com/shiffman/The-Nature-of-Code-Examples)
* [Other ports](https://github.com/shiffman/The-Nature-of-Code-Examples/blob/master/README.md)
* [Further Reading](http://natureofcode.com/book/further-reading/)
* Some assignments and materials based on Mimi Yin's [Nature of Code course](https://github.com/mimiyin/Nature-of-Code-S-16/).

Related Reading and Watching
----------------------------
* [Coding Math Video Series](http://www.youtube.com/user/codingmath)
* [Generative Design with Processing](http://www.amazon.com/gp/product/1616890770/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1616890770&linkCode=as2&tag=natureofcode-20)
* [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1435457331/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1435457331&linkCode=as2&tag=learniproces-20)
* [Computational Beauty of Nature](http://www.amazon.com/gp/product/0262561271/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0262561271&linkCode=as2&tag=natureofcode-20)
* [Form and Code](http://formandcode.com/)

Week 1 - Introduction (Jan 24/25)
-------------------------------
* Class Intro / Overview
* [Related and Past Projects](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Nature-of-Code-Related-and-Past-Projects)
* [Processing](http://www.processing.org), [p5.js](http://p5js.org), or ______________.
* Randomness, Probability, and Perlin Noise
* [Nature of Code Introduction](http://natureofcode.com/book/introduction/)
* [Videos I.1 - I.5](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YVljJvFRCyRM6mmF5wMPeE)
* [Perlin Noise playlist](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6bgPNQAdxQZpJuJCjeOr7VD)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/introduction)
* Object Oriented Programming Review & Vectors
* [Nature of Code Chapter 1](http://natureofcode.com/book/chapter-1-vectors/)
* [Videos 1.1 - 1.6](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZwSmtE13iJBcoI-r4y7iEc)
* [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp1_vectors)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp01_vectors)
* Assignment
* [Sign up for class mailing list](https://groups.google.com/a/itp.nyu.edu/forum/#!forum/natureofcode)
* [Assignment](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Homework-1).
* Supplemental Reading
* [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/) Chapter 5
* [Computational Beauty of Nature](http://www.amazon.com/gp/product/0262561271/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0262561271&linkCode=as2&tag=natureofcode-20), Introduction
* [Probability Theory](http://www.probabilitytheory.info/)

Week 2 - Build a Physics Engine (Jan 31 / Feb 1)
------------------------
* [Nature of Code Chapter 2](http://natureofcode.com/book/chapter-2-forces/)
* [Videos 2.1 - 2.6](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZRrqLcQ5BkBKmBLiGD8n4O)
* [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp02_forces)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp02_forces)
* [Assignment](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Homework-2).
* Supplemental Reading
* [Newtonian Physics, An Online Textbook](http://www.lightandmatter.com/area1book1.html) (This is long, you may find Chapter 4 to be particularly relevant to this week's discussion.)
* [The Physics Classroom -- Newton's Laws](http://www.physicsclassroom.com/Class/newtlaws/newtltoc.html)
* [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/), Chapters 12 and 14

Week 3 - Oscillation and Particle Systems (Feb 7/8)
-------------------------------
* [Nature of Code Chapter 3: Oscillation](http://natureofcode.com/book/chapter-3-oscillation/)
* [Nature of Code Chapter 4: Particle Systems](http://natureofcode.com/book/chapter-4-particle-systems/)
* Videos 3.1 - 3.5, Videos 4.1 - 4.9
* [p5.js chapter 3 examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp03_oscillation)
* [p5.js chapter 4 examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp04_systems)
* [Simple Harmonic Motion by Memo Akten](http://www.memo.tv/simple-harmonic-motion/)
* [Demo of Oscillating Movement and Sine Wave](https://www.youtube.com/watch?v=PhvJcVDuJsY#t=55)
* Supplemental reading
* [Trigonometry, What is it good for?](http://www.phy6.org/stargaze/Strig1.htm)
* [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/), Chapter 4
* ["Particle animation and rendering using data parallel computation", Karl Sims](http://doi.acm.org/10.1145/97879.97923) (available via NYU network/proxy)
* ["Particle Systems, a Technique for Modeling a Class of Fuzzy Objects", Reeves](http://doi.acm.org/10.1145/357318.357320) (available via NYU network/proxy)
* [How my Dog learned Polymorphism](http://www.javaranch.com/campfire/StoryPoly.jsp)
* [Particle System API, by David K. McAllister](http://www.siggraph.org/education/materials/HyperGraph/animation/particle.htm)
* [Particle Systems by Allen Martin](http://web.cs.wpi.edu/~matt/courses/cs563/talks/psys.html)
ms)
* [Assignment](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Homework-3)

Week 4 - Autonomous Agents (Feb 14/15)
-----------------------------------
* [Nature of Code Chapter 6: Autonomous Agents](http://natureofcode.com/book/chapter-6-autonomous-agents/)
* [Videos 6.1 - 6.8](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6YHt0dtyf4uiw8tKOxQLvlW)
* [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp06_agents)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp06_agents)
* Supplemental
* [Reas Process Compendium](https://vimeo.com/22955812)
* [Braitenberg Vehicles](http://books.google.com/books/?id=7KkUAT_q_sQC)
* [Craig Reynolds' Steering Behaviors for Autonomous Characters](http://www.red3d.com/cwr/steer/)
* [BetterExplained/ Dot Product + Finding The "Normal"](http://betterexplained.com/articles/vector-calculus-understanding-the-dot-product/)
* [Finding the closest point on a curve.](http://www.mesacc.edu/~marfv02121/readings/nearest_point/index.html)
* [Homework-4: Final Project Start](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Project-Step-1)

Week 5 - Physics Libraries (Friday Feb 24!)
---------------------------
* '''Please note the makeup time for this week on Friday, Feb 24'''
* '''Both classes will meet in room 50 from 12pm-3pm'''
* [Add your questions here](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Questions:-Steering-and-Physics-Engine)
* [Nature of Code Chapter 5: Physics Libraries](http://natureofcode.com/book/chapter-5-physics-libraries/)
* Box2D
* [Box2D web site](http://box2d.org/)
* [Videos 5.1 - 5.12](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6akvoNKE4GAxf6ZeBYoJ4uh)
* [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp05_libraries/box2d)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp05_libraries/box2d-html5)
* Toxiclibs
* [Videos 5.13 - 5.16](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6akvoNKE4GAxf6ZeBYoJ4uh)
* [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp05_libraries/toxiclibs)
* [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp05_libraries/toxiclibs)
* [ToxicLibs](http://toxiclibs.org/)
* [ToxicLibs.js](http://haptic-data.com/toxiclibsjs/)
* [The Making of Nokia Friends](https://vimeo.com/1472427)
* [Advanced Character Physics](http://www.gamasutra.com/resource_guide/20030121/jacobson_pfv.htm)
* Bullet
* [bRigid Processing Library](http://www.lab-eds.org/bRigid)
* [ammo.js Javascript port](https://github.com/kripken/ammo.js/)
* [simple 3d box demo](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp5_physicslibraries/bRigid_jBullet)
* Other libraries?

Week 6 - Catch-up and Project Workshop (Feb 28 / Mar 1 )
------------------------------------
* More on inheritance/polymorphism
* Geometry and Texturing
* Matter.js
* Closer look at flocking and complex systems
* Preview of NOC: Intelligence and Learning

Week 7 - Project Presentations (Mar 7/8)
------------------------------
* [Project Presentations and Documentation](https://github.com/shiffman/NOC-S17-1-Physics-Animation/wiki/Project)

Policies
-----------------------------------------------
* Submit assignments by the evening before class to the extent possible.
* Come prepared with questions.
* Put away screens during others' presentations.
* Participate!
* Document!
* Grading:
* 40% Class Participation
* 40% Quality of assignments
* 20% Final project
* For a 2-point class, 2 or more unexcused absences is grounds for failure.