Facebook Open-Sources The Animation Engine That Powers Its Paper App

Facebook today announced that it is open-sourcing the Pop animation engine that powers most of the user interface of its Paper app. The code is now available under a BSD license on GitHub.

The history of Paper is closely interwoven with that of Push Pop Press, which Facebook acquired in 2011. The company had quickly made a name for itself in digital publishing thanks to its interactive eBook version of Al Gore’s Our Choice. Push Pop Press co-founders Mike Matas and Kimon Tsinteris went to Facebook to apply their knowledge of interactive design to Facebook’s own products and the result of that (after a few detours) is Paper.

For Paper, Tsinteris writes in a blog post today, the company decided to use dynamic instead of static animations. Apple makes it easy for developers to use linear, ease-in, ease-out, and ease-in-ease-out animations through its Core Animations framework. Tsinteris argues that users now expect a “realistic, physics-everywhere experience” that combines Core Animations with capturing the velocity of a gesture to more closely follow the user’s intent. That, in short, is the goal behind Pop.

2014-04-28_0904

Pop adds three new primitives to Apple’s four core static animations: spring, decay and custom. Adding “spring” allows elements to bounce just like in Facebook’s Paper app. “Decay,” on the other hand, brings movement to a slow halt, all depending on the user’s input.

image010

As Tsingeris points out, the framework was also designed to be extensible, so developers can plug in their own code, too. To make life easier for developers, the Pop API was closely modeled after Apple’s own Core Animations API, so that it only takes a few minor changes to switch between the two.

Pop joins Facebook’s growing arsenal of open source tools for iOS, including KVOController, Shimmer, and Tweaks. That’s only a small slice of Facebook’s overall open source library, of course, which also includes the likes of the HipHop virtual machine, the Open Compute project and the Tornado Python web framework originally developed at FriendFeed.