For each module, I will provide written and video tutorials on the topics. You can review whichever format suits you best. If the amount feels overwhelming, please reach out and we can help you narrow things down, and select a subset of the material to focus an exercise around. It's a lot!
- 📗 Chapter 4 Particle Systems
- 🚂 Particle Class - 10 min
- 🚂 Particle Emitter Class - 8 min
- 🚂 Particle Class with Inheritance - 6 min
- 🚂 Particle Textures and Blending - 13 min
- Filippo Vanucci, Scrollables
- African Cosmos collection
- Particle Life by Tom Mohr
- Particle Dreams by Karl Sims
- Tron Legacy, GMUNK, JT Nimoy
For each module, I will provide a list of additional video tutorials and readings that you may draw on for further exploration. It's unlikely you would be able to consume everything in one week and if you are looking for guidance about what might fit with your interests and learning style the most, please reach out.
- 📕 "Particle animation and rendering using data parallel computation", Karl Sims (available via NYU network/proxy)
- 📕 "Particle Systems, a Technique for Modeling a Class of Fuzzy Objects", Reeves (available via NYU network/proxy)
- 🚂 Higher-Order Array function videos
- 🚂 Particle System with higher-order functions
- 📕 Higher order function from Eloquent JavaScript
It is totally reasonable to simply refactor an assignment from previous weeks with new organization ideas (System
class, inheritance, higher-order array functions, and more!). Some other ideas (along the lines of the visual design of a particle system) are below and, as usual, you are welcome to invent your own exercise inspired by this week's material!
- Use a particle system in the design of a "Mover" object. In other words take one of the earlier examples and instead of rendering a
Mover
as a simple circle, emit particles from the mover's location. Sample "asteroids"-style example. - Model a specific visual effect using a particle system -- fire, smoke, fireworks, waterfall,
- Create a simulation of an object shattering into many pieces. How can you turn one large shape into many small particles? What if there are several large shapes on the screen and they shatter when you click on them? (Sample Shattering)
- Create a particle system with different “kinds” of particles in the same system. Try varying more than just the look of the particles. How do you deal with different behaviors using inheritance?
- Experiment with image textures for particles. How might you use an array of images assigning each
Particle
a different image? (Sample Image Textures). What kinds of blendMode() or other visual enhancements might you consider?
Submit a link to your blog post to the course wiki. - ITP Section, IMA Section
The following emoji key will hopefully help you navigate the material for each module.
- 🚂 Video tutorial from Coding Train
- 🎥 Other video tutorial
- 📗 Nature of Code book
- 📕 Other reading
- 💻 Code examples
- 🎨 Creative project references