NOTE: The first video uses an unedited MSAFluid Processing example. But the example was saved intended to be used with the multi-touch iPhone app, where the screen is so small, to use normal velocities could make the display go haywire. The video later uses high velocities to produce expected results.
So the very first time I heard about it, it was called MSAFluid.
This is a library for solving real-time fluid dynamics simulations based on Navier-Stokes equations and Jos Stam's paper on Real-Time Fluid Dynamics for Games.
Which can be found at Memo.tv here, release 3 April 2009. At this point Memo (Mehmet) Akten was able to create a Processing app to create something simply amazing! If you have not seen it yet. GO SEE IT! You'll be blown away.
But it doesn't end there. A little time passed. May 12, 2009: At a blog titled, astatic notes took the Processing code and release an Actionscript 3.0 version! It was dubbed, FluidSolver.
Not even 24 hours of the release of the source, Seth Sandler of NUIGroup was the first to take the single mouse interaction and converted it to a full multitouch app. (If only I wasn't stuck at work at the time, hey myself, no excuses!) And get this, multitouch vs single mouse shows no drastic differences in performance. Eugene's inital development into Flash did a brilliant job managing resources. I'm going to have to learn as much as I can from it.
So that's the story I know. So what hasn't been talked about. Well, when I was playing around with both versions I definetly noticed a performance difference, which some of you may not see depending on the caliber computer you use for your MT devices. Here is the computer I use:
- Windows XP Pro desktop
- Intel Celeron Processor: 1.6GHz
- 2.0 GB RAM
- NVIDIA GeForce 8800 GT Graphics Card
- Projector: Dell 3300MP
Now I'll be the first to admit that this is Not a quick setup. It was actually my backup machine. My normal computer uses an Inter Core2 Quad 2.5GHz with 4.0 GB RAM. One reason is that I need the more powerful desktop for freelance gigs and it is much easier to code on a computer setup on a desk then integrated into a table. The other reason is it offers that little bit of extra challenge to make sure apps I develop work as best they can with minimal system requirements. But any time I feel left out power-wise, I'll swap towers (^_^)//
What are the results already?!
I have to say that on my setup, Flash blew away Processing. Which shocked and amazed me! Now the Flash doesn't make it to the full 30FPS. It only hits 10-15FPS. Processing? Well it worked great with the mouse, but touch integration? Forget about it. But I'm no fluent Processing user, I am capable enough to be able to use examples and libraries. So I could be missing files, I could have something setup wrong. I can only show you what I have running.
But in the end. I'll add a huge check mark for Flash in the world of multi-touch app development.
Looks like a spoke too soon. Take a look at this NUIGroup thread. I feared that I didn't have something setup right in Processing. Thanks to some quick guidance from theigor, Process is up and running how it should be. And like everyone theorized, Processing preformed circles around Flash. I wasn't that surprised in the end I suppose, but I know one this for sure; I can intergrate this into other SWF files and study and edit code I am much more familiar with. And Flash has a nice interface to chance the fluid attributes on at runtime.
MSAFluid vs. FluidSolver II from Chris Yanc on Vimeo.
I would also like to quote Memo from his Vimeo comment from the first video:
"On a note regarding performance comparison, I don't think the flash demo has the same number of fluid cells (was it 40x40?) as the processing demo (was it 120x80?), so to compare the performance of the two demos would be unfair. But I must add that I am very impressed with the flash demo's performance anyway, it flies on my macbook pro and looks great, so great job Eugene!"
So this comparison isn't exactly and apples to apples comparison, maybe not even apples to oranges. I'm gonna call it apples to waffles. But thinking about it more just now, maybe it is apples to oranges. Apples to waffles would be comparing FluidSolver to my app prototype - for 36 views of a bridge video project. But the video has already been rendered and uploaded, so I hope we can all just take it with a grain of salt. Dude I've been using a lot of catch phrases lately. Krikies, I'll try to give it a break.
Now, happy experimenting.