Notebooks in Your Pocket—Wolfram Player for iOS Is Now Shipping

Ten months ago, I announced the beginning of our open beta program for Wolfram Player for iOS. The beta is over, and we are now shipping Wolfram Player in the App Store. Wolfram Player for iOS joins Wolfram CDF Player on Windows, Mac and Linux as a free platform for sharing your notebook content with the world.

Wolfram Player is the first native computational notebook experience ever on iOS. You can now take your notebooks with you and play them offline. Wolfram Player supports notebooks running interfaces backed by Version 11.1 of the Wolfram Language—an 11.2 release will come shortly. Wolfram Player includes the same kernel that you would find in any desktop or cloud release of the Wolfram Language.

Installing and running Wolfram Player on your iPhone or iPad is free. Once installed, you’ll be able to view any notebook or Computable Document Format (CDF) file, including ones with dynamic content. If you have notebooks in Dropbox, Files or any other file-sharing service on iOS, it’s very easy to open them via whatever means the sharing app uses to export files to other apps. Opening a notebook from an email attachment or a webpage is as simple as tapping the file link and choosing to open it in Player. Wolfram Player also has full support of sideloading and AirDrop.

I’m particularly keen on the interface for supporting our cloud products, including the Wolfram Cloud and Wolfram Enterprise Private Cloud. Once you log into a cloud product from Wolfram Player, your account shows up as a server, which can be browsed just like your local file system. We used this feature a lot as we were developing Wolfram Player, and the cloud integration with the mobile and desktop platforms makes it super easy to create, access and view files in a centralized way.

If you have a Wolfram Cloud subscription, make sure you log into it from the app. This enables functionality in the app, including the ability to interact with Manipulate results and other interfaces. Otherwise, you can enable interactivity through an in-app purchase.

Almost 30 years ago, we introduced the notebook paradigm to the world. We’ve seen the notebook shift in form over time with the inclusion of modern typesetting and user interfaces. Notebooks came to the cloud, and now they can live in your pocket. One might have thought that 30 years would exhaust the possibilities, but in many ways, I feel like we’re just getting started.

Hello Onur! As of now, we’ve already released our Wolfram Cloud app for Android . We’re working on both supporting all of our mobile apps, as well as developing the best new tech that we can as it’s finished!

Will free app users be unable to perform pan and zoom on 3D CDF objects, or will they have to purchase the in-app upgrade to do that?

At 1:10 into his 2016 Wolfram Technology Conference presentation, Rob said that EnterpriseCDF documents would have full interactivity for all users. Is this still the case?

I think it’s reasonable to disallow Manipulate() functionality in the free app. OTOH, I think it would be a shame to disallow all visualization functionality without the purchase. There is something magical in allowing every young explorer the ability to create CDFs that can be dynamically 3D-viewed by anyone.

Have you asked Apple to put this wonderful app on their iPad demo units in their stores? I’d love to see Apple Store presentations showing the magic of Wolfram apps. Years ago, people went to stores saying, “Give me a VisiCalc,” which was an Apple 2 + VisiCalc. I’d love to hear about people going to Apple stores saying, “Give me a Mathematica!” :)

Controls will not function in the iOS app unless you’ve enabled interactivity. I.e., a Manipulate will render, but you’ll be unable to toggle checkboxes, change input fields, press radio buttons, etc. The same will be true for any control in the notebook, even if it does not live in a Manipulate.

Enabling interactivity can be done either by logging into a paid Wolfram Cloud account or by purchasing the in-app purchase. The in-app purchase is one time and will get you the functionality forever. In addition, if the notebook you’re opening is a CDF deployed by the Enterprise version of Mathematica, it will work in Player regardless of whether you’ve enabled interactivity.

It works nicely and (mostly) very performant. There are some nasty UI issues (the perpetual grey spinner in the background, no warning when an operation takes longer than 5s and times out) but I expect you will fix those soon enough.

But there are two substantial performance problems. Can you comment on them?

- bignum support (for int and FP) is abysmal. Way way worse than I’d expect from using GMP, even in the worst case that we accept that GMP is not as heavily optimized for AArch64.

- many (not all…) matrix operation are crazy slow, apparently neither vectorized nor parallelized. Some are performant, like basic addition and multiplication, but some are not (and weirdly so — integer matrix inversion is parallelized, but FP matrix inversion is not). As far as I can tell, Mathematica routes most of these operations to BLAS/LAPACK APIs, and performant versions of these clearly exist in Apple’s Accelerate library (which Mathematica used to use on PowerPC Macs).

Was a specific decision made (for technical or legal reasons) to not rely on any external code (like GMP or Accelerate) for this product?

Also let me just throw out that, at some point, it would be nice to bring in support for additional kernels (ie things like ParallelDo[], ParallelMap[], …). I use these frequently (even in Manipulate[]s) because, why not? they’re there and they work well for many of the large problems I am trying to visualize.
I can appreciate that this, like other wishlist items, would be omitted from the first shipping version, but I hope we get them soon. Heck even the rPi version gets them :-)

I know this is a litany of complaints, but that’s just because the baseline is remarkably good! I just want it to be better, to be perfect!!