Imagery Pro is about wicked fast, ridiculously smooth, absurdly beautiful data driven graphics for mobile. We’re already pretty good at that with a number of shipping apps in both Apple and Google app stores. Imagery Pro takes it to the next level.
A more technical summary of Imagery Pro goes like this. It’s a combination of data organization and OpenGL ES shaders along with careful threading, memory management, and data transport focused on smooth geodata display with low latency.
Who is this good for? Weather and aviation apps, mostly.
But let’s get to specifics. Here’s what’s in Imagery Pro.
Efficient memory packing on a mobile device is key. You want to show your user as many frames of animation as you possibly can. The key is data delivery optimization.
Rather than storing data as 32 bit RGBA values, it’s better to index it. In the simplest mode, data values come in the range 0:255 and we look up the final color in an RGBA texture.
Taking that a step further, we can pack these individual data slices 3 or 4 per image. This greatly improves network latency, requiring only one fetch for 4 data slices.
The Imagery Pro option provides a variety of valid data types, inputs, and stacking methods with the accompanying OpenGL ES Shader support.
Animations look much better if you interpolate between more than two frames. Imagery Pro provides bicubic temporal interpolation, giving a smoother animation for radar and cloud data sets.
Imagery Pro also provides better spatial interpolation. Weather apps like to overzoom their data beyond its native resolution to the point where artifacts are visible.
To mitigate this, Imagery Pro provides bicubic interpolation in the fragment shader. It looks fantastic.
Imagery Pro also provides simpler methods for simpler hardware. You can mix and match temporal and spatial interpolation. You can even back off the resolution of your fancier shaders and overlay them on a normal map. We’ve got you covered for a variety of hardware.
The base WhirlyGlobe-Maply toolkit does a nice job of fetching the right tiles at the right time, but each tile is separate. This means fragment shaders can’t pull data from one tile to another. You see this as visual seams.
We have ways to mitigate it, but there’s a limit and it’s particularly bad when you’re doing something fancy. Discontinuities draw the eye.
The bigger problem is when you’re doing math on the data. Want to do some fancy interpolation and data lookup? The seams are really obvious.
The Seamless Tile Service (STS) fixes this, allowing all data pixels to be addressable from everywhere. This means we can run much more complex functions on the data.
More advanced functions, like velocity calculations work even better. It really lets your data shine!
The base WhirlyGlobe-Maply toolkit provides particle functionality. Particles look nice for anything with velocity and they’re easy to implement. The hard part is feeding the system.
Imagery Pro helps you feed that beast. Particles must be updated every few seconds and there are a lot of them. We need to drive those with data, which means fetching, looking up, and interpreting.
We set up that pipeline for you with proper threading, update, and data management. You tell us where to get the data, what form it’s in and what you want it to look like. We do the rest.
Mobile hardware is already excellent and it’s only getting better. We’ll be following its evolution with the Imagery Pro option. The fastest graphics on the widest range of hardware with the most beautiful data display.
Enquire with mousebird consulting for pricing and availability.