Version 2.0 for iOS and Version 1.0 for Apple TV

Version 2.0 is on the AppStore! Here are the new features for iOS devices.

Optimizations for the latest iOS hardware and new features!
– New Clear button, by popular request
– Supports aspect ratios and resolutions of all iOS devices
– Supports up to half a million particles on screen!*
– Supports 3D Touch on iPhone 6s and 6s Plus – press harder for more particles and more gravity!
– 10 simultaneous touches** are now free if you don’t mind ads! Or you can purchase the upgrade to disable ads
– Compatible with iOS 9 multitasking on supported hardware***
– Updated UI to new style; fixed missing sliders in iOS 8.3 and 8.4

*iPhone 6s, 6s Plus and iPad Air 2. Other devices may support less.
**5 simultaneous touches on iPhone/iPod.
***iOS multitasking available on iPad Air 2 and iPad Pro.

The new version also goes up to 8000 particles per second instead of 1000, and fixes the missing sliders problem in iOS 8.

I’ve also created the Apple TV version, which supports 2 simultaneous nucleation sites/gravity sinks using the glass Touch surface of the remote and the accelerometer. Check it out!

By particlescape

Sliders missing in iOS 8.3

Particlescape was built with iOS SDK 5 back in 2011 and hasn’t required an update since I first deployed it, a fact that gives me just a little bit of pride. But now I’ve discovered that iOS 8.3 breaks the sliders – they become invisible. Thanks to the people who posted on this forum to bring the issue to my attention, and I’ve finally done some research and discovered that, indeed, iOS 8.3 broke UISliders across many apps, not just mine. (Google “UISlider iOS 8.3” for details.)  The only solution is to recompile the app. I’m working on it! Coming soon: native resolution, more particles for newer devices!

By particlescape

An update

Just wanted to write a little note to mention that I fully intend to devote some time to releasing an update to Particlescape that would allow it to take advantage of the faster hardware and more diverse screen aspect ratios that have come out since the original release. For the next few months though, I’m going to be pretty busy (we’re moving into a house and having our third baby at nearly the same time!) So this update would probably happen several months after that at earliest. Just wanted to let people know that I still intend on updating Particlescape!

By particlescape

Almost a year

I just renewed my Apple Developer account and figured now would be a good time to update this blog. I haven’t had much time to devote to this blog, but I wanted to say that I do plan to update Particlescape in the hopefully not-too-distant future to allow for more particles per second (4000 per second looks pretty good), and more particles in memory than 80000. These improvements will make Particlescape look even better on newer-generation devices like the third and fourth generation iPads and the iPhone 5, but I’ll have to retain backwards compatibility with the older devices (down to iPhone 3GS).  Also on the to-do list would be to support the new aspect ratio on the iPhone 5 (currently the screen is letterboxed, which is not too much of a distraction once you get used to it, but obviously I would still like to support the native aspect ratio).

By particlescape

Sales update

Particlescape has achieved a steady-state of about 40-50 downloads per day. It has been downloaded 3668 times as of yesterday, and there’s a nice conversion rate of about 2.7%. It has an average 5-star rating with only 11 ratings, and I didn’t even rate it myself.  So I’d say it’s pretty successful.  I’ve been busy on a new project that I’m really excited about that will leverage the game engine UDK, so my attention has been on other things lately.  But remember to rate Particlescape 5 stars in the meantime and spread the word!

By particlescape

First week sales report

After a week on the app store, I’m pleasantly surprised by the number of downloads: almost 1000, and happy with the percentage of people who purchase the upgrade: a bit more than 2%. Apple provides me with the number of downloads and sales each day, and here’s a chart of downloads.

What I don’t quite understand is why there’s a bump when the app is released at all. The number of apps on the app store is enormous and it’s almost impossible to get noticed unless either you’re a featured app by Apple, or were the subject of a search term that someone was specifically looking for. About half a day after my app was released I noticed that my app was about #500 on the list of new apps, so I doubt that people found my app by looking at the list of new apps. (How did you find Particlescape?)

If you like Particlescape, please remember to rate it 5 stars and maybe write a nice review too! Thanks to the two people who have already written nice reviews and the one person in Switzerland, and to the handful of other star-only reviewers. There’s an Appirater bomb that should go off next week, so I’m curious to see what the effects of that will be. If the results are interesting, and I hope they will be, I’ll talk about it then. But in the meantime, if you like the app, please rate it 5 stars, and be sure to tell your friends, ipad buddies, blogs, facebooks, twitters, and legions of fans about Particlescape!

By particlescape

Gravity optimization

Now that Particlescape has been released on the app store, I wanted to use this space to talk about the app in more detail. There are a number of optimizations within Particlescape to allow it to perform at as high a framerate as possible and to give the illusion of as dense and detailed a particle field as possible. First, I made the design choice fairly early on to scale the rendered size of each particle inversely proportional to its local density. This means that in high-density regions, particles are rendered smaller and more sharply, but in low-density regions, particles are bigger and look more diffuse and are in fact more transparent.  This technique brings out detail in the high-density regions while making the low-density regions look more uniform. I think the effect looks better than rendering all the particles at the same size.  When actually playing with Particlescape, your eyes should be drawn to the high-density regions where interesting things are happening anyway, and the fact that the low-density regions are more diffuse gives the illusion that more is going on than actually is. That’s the intention anyway.

Because of this effect, each particle needs to know about its local density. I calculate the density on a grid, but since I know the velocity of each particle, I can keep track of how far the particle’s moved since its last “registration” on the grid. For example, if a particle has zero velocity, there’s no possible way for it to have affected the density grid, so I just accumulate particle movements, and when a particle’s cumulative movement surpasses a grid cell width, the new bin for that particle is calculated, and the density grid can be adjusted accordingly.  This method isn’t 100% accurate but it doesn’t need to be, and the optimization is helpful.

For small numbers of particles, the gravity calculation is brute-force, using Newton’s inverse-square law. But when the number of particles multiplied by the number of gravity sinks surpasses a critical value (currently 60000), I transition the gravity calculation algorithm to something more optimized, but less accurate. I calculate the gravity due to the sinks at test points across the field (actually defined on a grid), and then linearly interpolate the force for each particle. This avoids doing N_touches * N_particles inverse-square calculations, which is more expensive.

There’s also an optimization for which, if a given particle is known to have a small acceleration, then it can cache its acceleration for a few ticks and avoid calculating the inverse-square law.

So these are some of the optimizations that I implemented. The goal was to create a field with as high resolution as possible at as high a framerate as possible.

By particlescape

Ready for sale

Particlescape has been approved by Apple and is ready for sale! (And by “sale” they mean “download for free [and then possibly make an in-app purchase transaction]”). It should be live on the app store tomorrow (November 30).

It took one week and fifteen minutes to go from “Waiting for Review” to “In Review,” and the review process itself took a little less than a day.

By particlescape

First post

This is the first post for Particlescape, an upcoming app that I’ve been working on in my free time. The binary is pretty much complete and now I’ve just got some marketing work to do before it goes public. I have some interesting ideas for future blog posts, so stay tuned….

By particlescape