« See all frequently asked questions

Details for Wolfram Language Programmers

The Wolfram CDF Player provides a deployment engine for graphical user-interface-driven applications using the Wolfram Language's dynamic interface creation features. Almost all programming and computational functions available in the Wolfram Language can be used to build applications for CDF Player, but there are a few programming restrictions for applications to keep in mind when saving as FreeCDF*.

Controls and Input

All interactive content must be generated with the Manipulate command and may only use mouse-driven elements ( Slider, Locator, Checkbox, PopupMenu, etc).

Non-numeric input fields are not supported. Avoid InputField[x, String] and InputField[x, Boxes]. InputField[x, Expression] and InputField[x] are restricted to work only with numbers, and InputField[x, Number] works normally.

Dialog windows are not supported. Avoid using Input or InputString.

Data Import and Export

Data import and export are not supported from within CDF Player except for Wolfram-curated data sources (e.g. ChemicalData, CountryData, WordData). Note that data can be preloaded into your application during authoring (see below). Avoid commands such as Import, ImportString, ExportString, ReadList, OpenRead, OpenWrite, and OpenSQLConnection. Because CDF Player cannot load data at runtime, you must ensure that all necessary information is embedded within the interactive elements. There are two basic approaches to embedding:

  • Initialization: small blocks of code and data can be included in the Manipulate command using the Initialization option, for example:
    Manipulate[myfunction[mydata,n],{n,0,1}, Initialization:>(myfunction[dat_,n_]:=...;mydata={...})];
  • SaveDefinitions: for larger blocks of code, packages, or larger data files, it may be more convenient to define them before creating the Manipulate, then store their state within the Manipulate using the SaveDefinitions option, for example:

MathLink Operations

MathLink operations, including .NET/Link, are not supported. Avoid using commands such as Install, LinkConnect, LinkOpen, Links, and so on. This includes links to remote Mathematica kernels such as gridMathematica.

Alternative Front Ends

Alternative front ends to the kernel, such as those that could be written in Java, C/C++, or .NET, are not supported.

* Enterprise CDF expands on the free Wolfram CDF Player to offer higher-level application content such as data import and text input. Contact us or see the features comparison chart for details.