Launching the Computable Document Format (CDF): Don’t Compress the Idea, Expand the Medium
Today we launched our Computable Document Format, or CDF, to bring documents to life with the power of computation.
CDF binds together and refines lots of technologies and ideas from our last 20+ years into a single standard—knowledge apps, symbolic documents, automation layering, and democratized computation, to name a few.
Disparate though these might appear, they come together in one coherent aim for CDF: connecting authors and readers much better than ever before.
The idea is to provide a knowledge container that’s as easy to author as documents, but with the interactivity of apps—for CDFs to make live interactivity as everyday a way to communicate as spreadsheets made charts.
For too long, authors have had to aggressively compress their ideas to fit down the narrow communication pipe of static documents, only for readers at the other end to try to uncompress, reconstruct, and guess at the original landscape of information. Static documents are like a very lossy format, fuzzifying clear and fuzzy thinking alike, disguising problems, and often resulting in overwhelming communication failures: undeployed R&D, misunderstood risks, and wrong management decisions, not to mention limiting the flow of information intrinsic to education.
Static documents take their share of the blame in making us “information rich, but understanding poor”, to repurpose the common saying.
With CDFs we’re broadening this communication pipe with computation-powered interactivity, expanding the document medium’s richness a good deal. (Actually we’re also improving what I call the “density of information” too: the ability to pack understandable information into a small space—particularly important on small screen devices like smartphones.)
As a simple example of all of this, let’s say I want to communicate how the sound of an emergency vehicle changes as it passes by me. In other words, I would like to explain a particular case of the Doppler effect. Here’s the way it might appear traditionally (image courtesy of NASA).
Instead, look at (and listen to!) this knowledge app:
Play with it and get a feel for what’s happening. What changes as I move around, as the vehicle speeds up? Kind of interesting that if I’m on the road, the pitch changes much more suddenly and goes up before it hits me!
This is just a simple example, but I hope it gives a flavor for how much interactivity can help understanding. (My thanks to Alan Joyce for the example this is based on).
What I really like is that you, the reader, can drive—charting your own route within the landscape mapped out by the author. You’re not just a train passenger locked to the railroad’s route; you’ve rented a 4WD and can go wherever you want. And by driving yourself, and having to make decisions about which way to go, you’ll typically internalize the landscape much better, and potentially discover new terrain.
Think of how you consume or convey information to others today. With reports, papers, books? Or more recently, perhaps a slide show, web page, or blog?
All have one characteristic in common: the author lays out that railroad, and you, the reader, take a train ride down it. OK, perhaps with links, clickable graphics, video, and some other so-called interactive elements, you’re driving the train rather than just being a passenger. But freely explore the landscape you cannot. The author laid down the path and that’s the only place to go.
So with all the advantages of interactive documents, why have dead documents remained so predominant for communicating? Ease of authoring is central.
Unless content originators—that is, teachers, journalists, analysts, managers, academics, and so on—make the content interactive themselves, it won’t be interactive. It’s simply too expensive and too difficult if professional programmers are involved. Only where there’s been sufficient content-monetization potential for a high budget do we see it—examples like BBC News active infographics or our related company Touch Press‘s books come to mind.
Yet there’s been one exception: Wolfram Demonstrations Project. As I write this, it has 7,138 Demonstrations, or as we call them “knowledge apps”, almost all contributed by content originators who aren’t professional programmers.
Automation of authoring interactivity is key, and what makes that feasible is high-powered computation both in the authoring environment and particularly in the reading technology or Wolfram CDF Player. With a computation-powered knowledge container, you don’t need to pre-compute and pre-generate—you can leave that to runtime, your authoring can be at a much higher level than for example in Flash or HTML5.
Could one have a Demonstrations site with Flash apps? In principle, yes. But in practice, no. Too hard, too time-consuming even for pre-generated frames. “Citizen authors” simply wouldn’t bother, and haven’t: I can find no larger knowledge app site than Demonstrations.
So that’s a key idea of CDF: step up the ease of authoring with the power of computation and generate results that are live.
And let’s be clear, the Demonstration Project is only one style of use of CDF. CDFs can look like documents, slide shows, or websites. We’ve got a range of early examples here.
Is today’s CDF authoring easy enough? Or to spell that question out, is authoring now no longer the main barrier to interactive content? Not yet. Though we’ve made it an order of magnitude better than others, it’s got further to go, quite a bit further so that it’s truly democratized. We’re at the level now where the sorts of authors who’d be able to learn how to make a Microsoft Excel macro could learn how to make a CDF. Instead I’d like anyone who can make an Excel chart be able to make a CDF (i.e. almost anyone).
I think Wolfram|Alpha-style linguistic programming will be a key answer to achieving that… eventually mapping out a workflow where you type in your language and out pops your answer as an interactive CDF.
But that’s a future refinement of today’s bold new concept, namely, to use computation just to communicate. I think it can make as big a difference as everyday charts and diagrams did. Or to put it another way—if a picture is worth a thousand words, a knowledge app is worth a thousand pictures. Live interactivity for communicating steps up the bandwidth of ideas that much.
Wow !!!!! Interactivity is quite smooth. However it crashed sometimes when I tried playing some of the examples. Also I was not able to scroll (with mouse wheel) the CDF documents or pages embedded with CDF content.
Very interesting, but it’s totally unacceptable to install ANOTHER browser plugin. While it’s true, that AUTHORING interactive stuff in HTML5 or Flash is hard, I can’t see why you didn’t use it to DISPLAY it. Both technologies should easily be able to read your CDF file format and display it…
Your CDF Player has not been installed on Lion. Do you tend to fix it?
sorry, it is ok now
The installation of the CDF player failed on my mac (running OS 10.6.7)
The world of knowledge owes you very much. This said by someone who is used to write down notes,thoughts, questions, supplements in every document of his own, prefereing buying books only which have annotations etc.
How does this compare to the “Mathematica Player” product?
Failing to install properly on Max OSX 10.6.8 (Doesn’t work on Chrome 12.0.742.122 or Safari 5.0.5)
Tried to install on Max OSX 10.6.8 — failing on Chrome 12.0.742.122 and Safari 5.0.5
@Girish, Arnoud, Benjamin – Thank you for your feedback. We are looking into it.
@Frank – Mathematica Player is an earlier Wolfram runtime. If you have Mathematica Player, upgrading to the free Wolfram CDF Player will let you use all the functionality of recent versions of Mathematica as well as the web browser plugin.
You can find answers to many more questions here: http://www.wolfram.com/cdf/faq
@Martin – While it is certainly true that we can use existing web technology to display results, the plug-in brings much more than that. In fact, the plug-in/player shares the computational core with Mathematica–Mathematica’s Kernel–which handles all the computation on client side. This is something extremely hard–if not impossible–to achieve by purely relying on current web technologies. Of course, if you are interested in server side computation, there is webMathematica that is currently available (which indeed uses JS and other web technology to deliver the content). In addition, we are currently working on solutions which combine the easiness of authoring and server side computation. So please stay tuned.
Does the internet really need another plug-in? The idea is sound, but perhaps a more standards compliant approach to delivery would be better?
From the FAQ:
>” Is CDF an open file format?
> Wolfram currently provides the CDF specification as a public format, meaning it is publicly available, openly documented, and natively unencrypted. ”
So where is it? As far as I can find it isn’t linked anywhere in the CDF subpages of the site, nor in the site map, nor does it show up anywhere in the first few pages of results from the documentation center search. Perhaps you could update the FAQ with a direct link.
It does not appear that CDF files can be secured so that they cannot be modified by any Mathematica user. Do you plan to add some features that would make publishing in this format and having some copy right protection feasible???
Being a Wolfram Alpha fan from day one, this makes me really worried and a bit disappointed: WIth the technical insight that I got I simply don’t buy that one should ever need anything more than open web standards to something like this. I thought the Java appplets and flash movies was a fading concept. This is so…enterprise. :'(
Fantastic! This description might have crossed a threshold, finally motivating me to learn programming basics. Suggested language? Overflowing with ideas. Thanks, Conrad.
@Bob – At the moment, we do not have Digital Rights Management (DRM) for CDF, but we are working on making it available.
PS I would love for someone at WolframResearch to share this at TEDxHuntsville in November. Please email me.
Installation failed on mac os 10.6.7 :-(
I really love the CDF files. My particular scientific interest is biological applications of tensegrity. Most of the published papers I read have sub-standard graphics: it’s very difficult to get the correct perspective on the 3D structures. To understand the dynamics of the stress-strain response of tensegrity, static graphics just don’t cut it.
I would love to see CDF files start to show up in published papers. I believe such publication is in the best interest of the authors and the journals: in a war of ideas, those who publish their ideas in the most vivid ways will naturally increase the understanding and enthusiasm of their audience.
I read some blog entries about a 2010 meeting where I thought there was discussion of CDF on the iPAD. Having these files run on tablet computers would be a tremendous breakthrough: insight for the masses! Do the current generation of tablets have sufficient computational resources to run CDF files? If so, can we please get a player for the iPad? It would probably have to be a standalone app for now.
Also, has Wolfram looked at getting their CDF player into the Mac App Store? That would enhance the visibility of the software to MAS users.
Where is the specification?
Is CDF an Open File Format…? Where can I find the spec? Googled to no avail…
I agree this supports enterprise. It also supports many other avenues. I seem to recall similar concerns over PDF when it became popular, overall a win by any measure.
I hope WRI is considering other “enterprise” approachs. Corporate America has Mathematica shaped vacuums :)
@ JR and Dan – You can find more information in our Documentation Center. http://reference.wolfram.com/mathematica/guide/NotebooksAndDocumentsOverview.html
@Phil – The iPad is an important part of our CDF strategy. Stay tuned for more details about when CDF support for this platform becomes available.
The same could be achieved in HTML. Why do we need another format?
Sorry. I’m looking for the “binary format” of the file format. If Wolfram is planning on pushing this as a standard like PDF it has to be open enough that folks can write other tools to generate CDF files.
Is this Wolram’s intent?
If this was already documented. I couldn’t find it immediately.
Do companies still need Player Pro if they want to make applications that allow users to import and export and physically enter parameters?
From the FAQ:
” Can I use any Mathematica functionality that I want?
In files saved straight out of Mathematica 8, some functionality is not available: non-numeric input fields, dialog windows, and data import and export (except from Wolfram-curated data sources, e.g. ChemicalData, CountryData, and WordData). Please contact us about activating higher-level application content in CDFs. ”
So it looks like the functionality that a company would need for real world deployment is not supported.
In comments to an earlier blog I asked whether this Mathematica was primarily pitched for education and hobbyists. CDF seems to confirm the target audience.
If real world companies are to use this product the product needs to support real world functionality.
Conclusion: great for hobbyist and educators, no apparent use for internal corporate deployment.
There is a much wider idea of giving users the full control not only over parts of documents but over the running applications. You can look into the July issue of Computing in Science and Engineering (CISE, v.13, Issue 4, pp.79 – 84, July 2011) or directly at the book World of Movable Objects and big accompanying demonstration program (with all the files of this project) at http://www.sourceforge.net in the project MoveableGraphics (name of project is case –sensitive there!).
Can’t get the CDF player to work (Windows XP, Mathematica 8 installed etc) even after re-installation. Just shows “Loading Computable Document…” so I’ve just given up now.
@Dudley totally agree with you.
I wonder what is WR percentage of licenses in each market (institutes, education, corporate, etc). It’s been now several years that I think on ways to use Mathematica in a corporate environment, but with no success.
1 – I do all the calculation on Mathematica and want to send the report as a CDF to my client. Either I supply a pro version to each person that will need to read the document (can immediately imagine a dozen license for each report/client), or I send the CDF with open code, and I’ll be supplying all the frame work to my competitors… A dozen pro licenses cost half the price of my report… I would clearly be working for WR… and also not competitive…
2 – I do a tool to be used internally and want to distribute to 100 users. That means 100 Player pro licenses. On my field, that means more cost on the software licensing, than on the production of the tool itself. Impossible to justify that. Sure that would be just one time, and the next tool would have a license free cost (what is Mathematica? What does it do? Who else in the company knows how to use it? No way I can have a first shot at that price…)
So I cannot use the CDF technology. I’ll just use Mathematica technology on my own, and give static content to everyone. Also very difficult. Very few know what is Mathematica (on the corporate world), and so there’s the fear that everything that I work on want be usable by others (when I’m not there, who could pick up where I left). I thought CDF would bring a great opportunity to put Mathematica into the corporate world, since it would bring great potential. So what if only few people could read what I produce, if what I produce can easily be transformed into dynamic documents to give to clients, and into apps to distribute internally… But unfortunately, due to license strategy, it’s not the case…
I understand that WR strategy to get inside the corporate world is on a 10 years base. First give it to students, and then have them enter into the corporate world… Good strategy, but the corporate world will not wait for 10 years for this kind of technology, and I will probably have moved on to a different technology that enables what I need.
So what is Mathematica next great target? Unable the production of toy apps and books that can be sold on appstores, by the millions, just for $0.99. Who knows if I can think of something and get rich in that way, since it is clear that Mathematica will get me nowhere on the corporate business.
I don’t go so far as saying it’s completely unusable for corporate purposes. There are some uses where completely self-contained is good enough (and there are others where it’s not). As the .cdf cannot have access to the local filesystem or the network and cannot use JLink/NETLink/MathLink, it makes it similar to applets, Java WebStart, or MSFT Silverlight in that regard. It runs in a certain “sandbox” environment, and applicability is limited to those applications that are self-contained. I think applets, Java WebStart and MSFT Silverlight do have a certain (limited) value in a corporate environment.
@Bob Rimmer and P. Fonseca
The big deployment barrier you mention, that the .cdf doesn’t hide the code (it’s practically M code readable with a simple text editor or M itself) is indeed a major deployment hurdle for those programmers that don’t want to disclose their IP. But this could be very easily solved if M and the CDF Player offered encryption/decryption. One could use asymmetric encryption such as GnuPG with RSA/DSA/elliptic curve. And there’s two variations I can think of: a) using keys only M and the CDF Player know, and b) even a user-supplied private key. With a), M could, when saving the file as a .cdf, encrypt it using the decryption key of the CDF Player, and upon reading the file the CDF Player could decrypt it using its own key that was used by M to encrypt. These would be hard-coded in both applications, and as long as nobody can ever hack into the two executables and the keys never leak from WRI, it would be safe forever and the .cdf file would be unhackable for immemorial millenia (if the key ever got out, all encrypted .cdf files would immediately be decryptable, and very easily so!). b) would be a bit more flexible and allow the programmer a more controlled deployment: when writing the .cdf M would use the private key of the programmer (who should set up a new private key just for .cdf files, not the regular private key he/she uses) and the public key of the CDF Player (which would be programmed into M). Now the CDF Player decrypts the file as in a), but in another decryption layer would need the programmer’s private key, which is known only to the users to whom the programmer gave it (e. g. as part of the email in which he sends out the .cdf). Of course, this also doesn’t guarantee that no leakage of the programmer’s private key occurs, but given that corporations have policies against disclosure of such information of coworkers, or if the programmer gives it only to people he can trust, there would at least be SOME protection against world-wide use of his .cdf. And if it still leaks, the main point here is encryption, not key-based control of deployment! In other words, b) is at least as safe as a), and in the worst case just as safe as a), with the difference being the extent to which his .cdf users don’t distribute his private key.
In both cases, of course, M would have to lose the ability to turn a .cdf back into a .nb, if the .cdf is encrypted.
It doesn’t address the other issues, but I see the fact that IP is not protected the most important deployment barrier, and if asymmetric key encryption was built into M and the CDF Player this would solve that. And GnuPG is free for everyone to use, including corporate use, and uncrackable. People would have to reverse-engineer the M and CDF Player executables to extract the keys.
Of course, this encryption should only be an option when saving the .cdf.
@Dudley Dudley and P. Fonseca
We do commercial applications with Mathematica since more than 15 years and the Player Pro was a great step in the right direction. But without having a network version with license manager the usage in real companies is complicated.
The free CDF Player with all possibilities of the Player Pro could be very helpful for this companies. But i think the main problem for the most user is the development of a easy to use application with a large number of parameters (> 100 to 10000), because it’s too complicated. This was the reason for us to develop our own enviroment for developing applications (SmartCAE-FAB).
I think without such tools normal users are not able to build real world applications for real world companies.
Installation failed on 2 different macs. Both Snow leopard 10.6.2 (Mac Pro) and 10.6.8 (Macbook Air).
Really need to get this to work – any suggestions?
Mathematica won’t take off until it can produce executables at the click of a button, to be distributed as the author wants, for profit or not.
Borland’s IDE and its plain English, no nonsense EULA was all about empowering programmers. As far as developments go, Matlab seems to be in ascendancy. Wolfram, time to step it up a level.
I’m signing as agent X to avoid any disciplinary problems from third parties.
A couple of extra notes on the subject of pro use of WRI technology.
Although I have often heard that it should be easier for a corporate to invest in a technology like the one offered by WRI (when compared with another field: education, etc), the reality is different for structural reasons (and I believe that WRI marketing strategy has yet to grasp this concept):
– In the corporate world, there is often a large distance between the production agents and the decision makers (who control investments…, that in some cases, goes up to the buying of a pencil…). This means that more often than expected, although it should be easy to understand how a moderate investment could benefit the company, this is not understood or is seen with too much suspicion from the decision maker (and since they were chosen for the job for some reason, it’s their decision that counts).
– To prove the previous statement, even to a bigger extent (and yet a real case): to install the free CDF player inside a company (I mean, to install a FREE tool), this tool has to be validated by different departments, with different agendas, and what can be seen as a great advantage, with no cost, can be blocked by other interests (one more app to manage on the IT pool, is it a safe, has someone from the juridic department toke a look at the license, etc, etc.). This means that not even the free CDF player is an easy task in the corporate world… From my experience, this type of blocking is non existence on more “group gathering like structures”, like education institutes.
Details that make all the difference:
– If the decision makers don’t see the advantage, there’s no advantage. That means that the production agent has to prove the concept before an investment is made. And how can he do it if he has almost zero investment capacity? I once suggested that Player Pro should have a trial version of a couple of months, so that one can distribute a tool to another department, and get them addicted to it. This would spread the requests for the technology investment (coming from different agents suddenly becomes more obvious for the decision maker…). Another suggestion is for WRI to supply PRO examples that are more close to PRO reality. All the examples given are very academic turned. Is there a way to install a PRO example app, with import and export? (I don’t think so, because there’s no Player Pro trial license available). Sure there’s a full Mathematica trial version available, but using that for demo purpose would, in my opinion only complicate the understanding of the concept)
– The technology cannot have a linear investment curve. The tool has to be free to get inside the company (reasons explained above), have it’s cost raised up to a certain size, and them stabilize. A practical solution would be a license server manager as suggested by Steve.
– The technology has to connect with other existing tools. I thing that I’m not exaggerating when I state that more than half of a tool potential is on its connection with other tools (WRI apparently agrees with this, since we can find a huge amount of import export capabilities within Mathematica). Don’t know how this is managed with Player Pro, but I would say that each Player Pro should have the same link capabilities as the full Mathematica so that it can be called from tools like Excel, or other proprietary ones. This, often called a runtime, is supplied by Mathematica competitors totally free of charge. So, if some supply it free of charge, it definitely cannot cost $195 for each user (once again, the decision maker will look around and suspect from a tool that is less known than others, but has a higher license cost).
Hope this helps on the discussion
It seems worth noting in respect of the above comments about commercial uses of CDF files that the Mathematica licence explicitly prohibits attempts to obscure the code or limit the use or distribution of CDF files in any way, so any application of CDF in a commercial setting is more or less impossible right from the outset. It is fairly obvious to me that the main purpose of CDF, much as for Wolfram Alpha, is as a marketing tool for Mathematica, which is fair enough in itself but does seem rather contradictory when calibrated against the party line that CDF is about “democratized computation” amongst other things. Like Wolfram Alpha and its natural language input, CDF is in effect a flashy toy which draws attention to Mathematica yet has deliberately very limited usefulness in real applications relative to the “real thing” that these technologies exist to sell.
Also, regarding the supposed openness of the file format, clearly CDF files are written in the Mathematica language, which Wolfram considers their intellectual property and not usable except under licence. So if, for example, the authors of Sage wished to support CDF authoring, they would not be able to do so because it involves generating Mathematica code. It doesn’t particularly concern me that CDF is encumbered in this way, not least since I seriously doubt that CDF will see broad adoption, although arguably Wolfram should not be making such a fuss about it being a free and open standard, which it most certainly is not even in cases for which one could potentially do without the Wolfram runtime.
I tried the CDF player but still have many bugs and does not work smoothly. Actually, I could not run most of the demo projects…