Explore the RxJs API by managing moving particle systems. The systems should:
- Use self-aware AI, not a global AI
- Move in organic, natural arcs, with no sudden pivots or swerves
- Support large swarms of particles
- Be able to evade obstacles
- Exhibit flocking behavior
The trickiest portion of this iteration was animating the curved paths. Elliptical geometry was the initial goal, but calculating arc length (to maintain a scalar speed) is quite difficult. Smoothstep cubic curves were also an option, but maintaining consistent entry and exit angles could affect performance for large groups. The current design uses circular paths that allow smooth changes in both direction and rotation.
This method can handle quite a few particles.