November 16, 2016 — John Fultz, Director of User Interface Technology

It’s been a long road.

Wolfram Player for iOS logo

To some degree, we’ve been working on a Wolfram notebook front end for iOS for about six years now. And in the process, we’ve learned a lot about notebook front ends, a thing we already knew a lot about. Let’s rewind the tape a bit and review.

Read More »


October 14, 2016 — Carlo Barbieri, Applied Research Group

Making web forms should be dead simple. That has been one of our goals at Wolfram Research since the release of the Wolfram Cloud. We’ve made smart input fields, powered by Wolfram|Alpha technology, that understand almost anything users type. We’ve designed FormFunction and APIFunction so that you can build forms and APIs with the same readable syntax. And now with the newest version of the Wolfram Language, you can build interactive web forms with dynamic branching and control flow using the Ask family of functions.

Would you like to learn how to build web forms with Ask?

Read More »


September 23, 2016 — Carlo Giacometti, Mathematica Algorithm R&D

I have always liked listening to music. In high school, I started wondering how it is that music seems to be so universally pleasing, and how it differs from other kinds of sounds and noises. I started learning to play guitar, and later at the University of Trieste, I learned about acoustics and signal processing. I picked up the guitar in high school, but once I began learning to program, the idea of being able to create and process any sound using a computer was liberating. I didn’t need to buy expensive and esoteric gear; I just needed to write some (or a lot!) of code. There are many programming languages that focus on music and sound, but complex operations (such as sampling a number from a special distribution, or the simulation of random processes) often require a lot of effort. That’s why the audio capabilities in the Wolfram Language are special: the ability to deal with audio objects is combined with all the knowledge and computational power of the Wolfram Language!

First, we needed a brand-new atomic object in the language: the Audio object.

Import["http://exampledata.wolfram.com/bach.mp3"]

Play Audio

Read More »


March 31, 2016 — Devendra Kapadia, Kernel Developer, Mathematica Algorithm R&D

Green's Windmill
Picture of Green’s Windmill by Kev747 at the English language Wikipedia.

In 1828, an English corn miller named George Green published a paper in which he developed mathematical methods for solving problems in electricity and magnetism. Green had received very little formal education, yet his paper introduced several profound concepts that are now taught in courses on advanced calculus, physics, and engineering. My aim in writing this post is to give a brief biography of this great genius and provide an introduction to GreenFunction, which implements one of his pioneering ideas in Version 10.4 of the Wolfram Language.

Read More »


January 7, 2016 — Devendra Kapadia, Kernel Developer, Mathematica Algorithm R&D

PDEs word cloud

Partial differential equations (PDEs) play a vital role in mathematics and its applications. They can be used to model real-world phenomena such as the vibrations of a stretched string, the flow of heat in a bar, or the change in values of financial options. My aim in writing this post is to give you a brief glimpse into the fascinating world of PDEs using the improvements for boundary value problems in DSolve and the new DEigensystem function in Version 10.3 of the Wolfram Language.

The history of PDEs goes back to the works of famous eighteenth-century mathematicians such as Euler, d’Alembert, and Laplace, but the development of this field has continued unabated during the last three centuries. I have, therefore, chosen examples of both classical as well as modern PDEs in order to give you a taste of this vast and beautiful subject.

Read More »


November 13, 2015 — Oleksandr Pavlyk, Manager of Probability and Statistics, Mathematica Algorithm R&D

Picking random points on the surface of a sphere so that the points are uniformly distributed is not as straightforward as you might think. Naively picking random spherical coordinates ϕ and θ will not give a uniform distribution of points. The problem is important enough to warrant a dedicated article in encyclopedias, such as Wolfram MathWorld (see Sphere Point Picking). Uniform sampling from Sphere[] is now available in the Wolfram Language with the RandomPoint function:

RandomPoint on a Sphere

Finding if the point is on the sphere

In fact, RandomPoint can be used to uniformly sample from any bounded geometric region, in any dimension. In 2D:

Uniformly sample geometric region in 2D

Read More »


September 2, 2015 — Giulio Alessandrini, Mathematica Algorithm R&D

I’ve taken pictures numerous times, either with a camera or with my phone, only to find out that the colors were completely off—they had bluish, reddish, or even greenish tints. Before I started working on image and color processing, this was quite mysterious to me. Moreover, I’d always noticed on my cameras a white balance setting that, when played with, produced results very much like my skewed-color photographs. Could it be these two were related?

That camera setting is indeed the key to correcting a color cast, and it has been added to the Wolfram Language with the ColorBalance function.

Here is a simple example of how it works:

Applying ColorBalance to photos

Read More »


August 12, 2015 — Gopal Sarma, Advanced Research Group

The Wolfram Language has had extensive support for string manipulation since Mathematica 5, and in Version 10 it provided uniform symbolic access to a huge repository of computable data via the Wolfram Knowledgebase. Taking advantage of both of these fundamental capabilities, along with new machine learning functionality with Classify and Predict, we’re excited to be making further inroads into the rich domains of natural language processing and text analytics with TextCases, new in Version 10.2.

TextCases, like its sister functions Cases and StringCases, finds instances of patterns in a given input. Whereas Cases operates on Wolfram Language expressions and StringCases on strings, TextCases assumes that the input is human understandable text, from which one can extract known syntactic and semantic entities. These include basic textual types such as words, sentences, and paragraphs, but also more sophisticated semantic types such as countries, cities, and numbers.

As a simple example, let’s use TextCases to find instances of countries in a sentence:

Finding countries in a sentence using TextCases

Read More »


July 16, 2015 — Bob Sandheinrich, Software Engineer, Connectivity Group

Despite the ever-growing list of tools I have for communication, email remains one of the most important. I depend on email to find out about all sorts of things: my ultimate Frisbee game is rained out, flights to Denver are only $80, my Dropbox account is almost full, my neighbor’s cat is missing (again). While filters are able to hide the pure junk and sort everything else into reasonable categories, reading and responding to email still requires a lot of manual interaction. The new mail receivers in the Wolfram Language finally let me automatically interact with email.

MailReceiverFunction is a Wolfram Language function that I deploy to the cloud to operate on incoming emails. When I deploy a function, I get an email address. Emails sent to that address will be processed by the function.

Read More »


July 9, 2015 — Nick Lariviere, Kernel Developer, Core Mathematica Engineering

A classic problem in numerical date notation is that various countries list year, month, and day in different orders, which was one of the motivations for the introduction of the ISO-8601 date element and interchange formats (Randall Monroe has a nice summary in this xkcd comic). In the upcoming release of the Wolfram Language, we’ve added built-in support for these ISO date formats:

DateString ISODate; DateString ISODateTime

The ISO specification also provides some alternative date representations, such as week dates (year, week of year, and day of week) and ordinal dates (year and day of year):

DateString ISOWeekDate; DateString ISOOrdinalDate

Read More »