After walking around in the software-landscape for 40 years Theo de Ridder decided last year to work the coming years as an artistic programmer on his opus magnum. This will be a quest for Pythonic harmonics with many surprising spin-offs.

Swarms are moving clusters of many identical subjects in which each individual subject dynamically derives its non-colliding behaviour only by adaption to local neighbours with a little bit of stubborn randomness. A nice challenge for animation is interactive animation where the user merges a moving swarm with obstacles, subjects or other swarms.
The current BPY is not very suited for swarms. Manipulating large amounts of of individual objects on frame events is too slow, and more efficient techniques like DupliVerts or ShapeKeys don't facilitate individual r/w access.
As a simple experiment to validate the relevance of numpy the interface of Key.KeyBlock was extended with getBuffer() returning a r/w Python buffer without copying the underlying keyverts in C. In numpy the different aspects like positions, rotations, and scales of all subjects were represented as single multi-dimensional matrices resulting
in Python code without any loop!
The amount of code needed for specific swarms was amazingly small. However index matrix algebra has some non-intuitive aspects that take time to get familiar with. But the rewards are huge, certainly for Blender programming down to meshlevels.