+swarmDS - a swarm of pixels for the Nintendo DS
+
+SwarmDS is a port of swarm.3 (http://dominionofawesome.com/hacks/swarm.3/),
+a simple javascript/canvas hack that involves a bunch of pixels swarming
+around the cursor. The original program ran in a browser, and was quite
+slow, but the algorithm is simple enough that it's portable to anything
+with a display and a pointing device. The playful beauty of it has
+inspired me to port it to other platforms, and the program serves as a
+useful goal when learning a new system (like the DS).
+
+Swarm.3, is, of course, an evolution of swarm.2, which came from swarm,
+all of which are on my hacks page: http://dominionofawesome.com/hacks/ .
+A version that runs in SDL and .NET (and thus works on Linux and OS X
+using Mono and Windows using the .NET Framework) is available at
+http://dominionofawesome.com/hacks/swarm.NET/ .
+
+SwarmDS is a much more ambitious port than swarm.NET, though. Nowadays
+on a PC, floating point is fast and universally available. On the DS's
+ARM9, however, it's slow and not a good solution for an algorithm like
+swarm. I converted the math to use a fixed-point representation.
+Secondly, after an initial version using the framebuffer (which is also
+slow), I used the 3D rendering engine to draw anti-aliased lines. This
+made it faster, and also had the pleasant side-effect of making it
+pretty. :) The latest optimization is to move all the time-critical
+code and data into ITCM and DTCM. Since swarmDS is so small, that means
+nearly all of the program runs directly from ITCM. Currently, swarmDS
+can do 1000 little swarming pixels at 60fps. I believe there's still
+room to grow, computationally, but 1000 pixels is plenty for such a
+small screen.
+
+Questions, comments, patches, flames, and praise go to
+bytex64@bytex64.net.
+
+Happy Hacking. :)
+
+~chip