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!
These videos are in-progress "rough cuts." Not every detail is finalized and there may be mistakes / issues. If you have thoughts or comments please let me know!
- 🚧 Introduction to Autonomous Agents - 10 min
- 🚧 Steering Behaviors: Seeking a Target - 13 min
- 🚧 Steering Behaviors: Pursue and Evade - 13 min
- 🚧 Steering Behaviors: Arrival - 9 min
- 🚧 Scalar Projection and the Vector Dot Product - 13 min
- 🚧 Path Following - 15 min
- 🚂 Steering Behaviors Coding Challenge: p5.js ~30min
- 🚂 Flocking Coding Challenge: p5.js ~40 min
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.
- 🚂 Perlin Noise Flow Field Coding Challenge: p5.js - ~ 30 min
- 📕 Excerpts from Vehicles: Experiments in Synthetic Psychology By Valentino Braitenberg
- 📕 Craig Reynolds' Steering Behaviors for Autonomous Characters
- 🎥 Reas Process Compendium
- 🎥 The Braitenberg Vehicles video by Brian Douglas
- 📕 QuadTree Data Structure (Wikipedia)
- 💻 QuadTree JS Library in Progress
- 💻 QuadTree p5 example
- 🚂 QuadTree Coding Challenge 1
- 🚂 QuadTree Coding Challenge 2
- 🚂 QuadTree Coding Challenge 3
Incorporate a steering behavior into a p5.js sketch. Here are some ideas:
- Expand / augment your simulation project incorporating the concept of a steering force: desired - velocity.
- Try combining multiple steering behaviors into one agent. Can you create an interface (or set of rules) to control the weights of the various behaviors?
- Create a path for agents to follow that is interactive or changes over time. What if the path has multiple segments? Can the points that define the path itself have their own steering behaviors?
- Add visual design elements for the environment and agents in the flocking system. Are they birds, fish, insects, fictional creatures? How does varying the behavior itself (weights of forces) add to the experience?
- Extending the idea above, can you create an environment with two different kinds of agents that interact with each other? Maybe the birds eat the insects or perhaps there is a symbiotic relationship between different types of creatures that benefits all of them.
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