WOLFRAM

Recreational Computation

Best of Blog

Extending Van Gogh’s Starry Night with Inpainting

Can computers learn to paint like Van Gogh? To some extent---definitely yes! For that, akin to human imitation artists, an algorithm should first be fed the original artists' creations, and then it will be able to generate a machine take on them. How well? Please judge for yourself. Second prize in the ZEISS photography competition Recently the Department of Engineering at the University of Cambridge announced the winners of the annual photography competition, "The Art of Engineering: Images from the Frontiers of Technology." The second prize went to Yarin Gal, a PhD student in the Machine Learning group, for his extrapolation of Van Gogh's painting Starry Night, shown above. Readers can view this and similar computer-extended images at Gal's website Extrapolated Art. An inpainting algorithm called PatchMatch was used to create the machine art, and in this post I will show how one can obtain similar effects using the Wolfram Language.
Computation & Analysis

Benedict Cumberbatch Can Charm Humans, but Can He Fool a Computer?

The Imitation Game, a movie portraying Alan Turing’s life (who would have celebrated his 100th birthday on Mathematica's 23rd birthday---read our blog post), was released this week, which we've been looking forward to. Turing machines were one of the focal points of the movie, and we launched a prize in 2007 to determine whether the 2,3 Turing machine was universal. So of course, Cumberbatch's promotional video where he impersonates other beloved actors reached us as well, which got me wondering, could Mathematica's machine learning capabilities recognize his voice, or could he fool a computer too?
Computation & Analysis

Removing Haze from a Color Photo Image Using the Near Infrared with the Wolfram Language

For most of us, taking bad pictures is incredibly easy. Band-Aid or remedy, digital post-processing can involve altering the photographed scene itself. Say you're trekking through the mountains taking photos of the horizon, or you're walking down the street and catch a beautiful perspective of the city, or it's finally the right time to put the new, expensive phone camera to good use and capture the magic of this riverside... Just why do all the pictures look so bad? They're all foggy! It's not that you're a bad photographer---OK, maybe you are---but that you've stumbled on a characteristic problem in outdoor photography: haze. What is haze? Technically, haze is scattered light, photons bumped around by the molecules in the air and deprived of their original color, which they got by bouncing off the objects you are trying to see. The problem gets worse with distance: the more the light has to travel, the more it gets scattered around, and the more the scene takes that foggy appearance. What can we do? What can possibly help our poor photographer? Science, of course. Wolfram recently attended and sponsored the 2014 IEEE International Conference on Image Processing (ICIP), which ended October 30 in Paris. It was a good occasion to review the previous years' best papers at the conference, and we noticed an interesting take on the haze problem proposed by Chen Feng, Shaojie Zhuo, Xiaopeng Zhang, Liang Shen, and Sabine Süsstrunk [1]. Let's give their method a try and implement their "dehazing" algorithm. The core idea behind the paper is to leverage the different susceptibilities of the light being scattered, which depend on the wavelength of the light. Light with a larger wavelength, such as red light, is more likely to travel around the dust, the smog, and all the other particles present in the air than shorter wavelength colors, like green or blue. Therefore, the red channel in an image carries better information about the non-hazy content of the scene. But what if we could go even further? What prevents us from using the part of the spectrum slightly beyond the visible light? Nothing really---save for the fact we need an infrared camera. Provided we are well equipped, we can then use the four channels of data (near infrared, red, green, and blue) to estimate the haze color and distribution and proceed to remove it from our image.
Computation & Analysis

Fractal Fun: Tweet-a-Program Mandelbrot Code Challenge

This week Wolfram will be celebrating Benoit Mandelbrot's birthday and his contributions to mathematics by holding a Tweet-a-Program challenge. In honor of Mandelbrot, tweet us your favorite fractal-themed lines of Wolfram Language code. Then, as with our other challenges, we'll use the Wolfram Language to randomly select winning tweets (along with a few of our favorites) to pin, retweet, and share with our followers. If you win, we'll send you a free Wolfram T-shirt! In Tweet-a-Program's first few exciting months, we've already seen a number of awesome fractal examples like these:
Computation & Analysis

Announcing the Winners of the 2014 One-Liner Competition

This year's Wolfram Technology Conference once again included the One-Liner Competition, an opportunity for some of the world's most talented Wolfram Language developers to show us the amazing things you can do with tiny pieces of Wolfram Language code. In previous years, One-Liner submissions were allowed 140 characters and 2D typesetting constructs. This year, in the spirit of Tweet-a-Program, we limited entries to 128-character, tweetable Wolfram Language programs. That's right: we challenged them to write a useful or entertaining program that fits in a single tweet. And the participants rose to the occasion. Entries were blind-judged by a panel of Wolfram Research developers, who awarded two honorable mentions and first, second, and third prizes. One honorable mention went to Michael Sollami for his "Mariner Valley Flyby," which takes you on a flight through the terrain of the Mariner Valley on Mars. The judges were greatly impressed by the idea and the effect. Unfortunately, a small glitch in the program is visible at the start of the output, due to an error in the code. Since Michael's submission is right up against the 128-character limit, it would have taken some clever tweaking to fix it.
Computation & Analysis

Calling All Goblins: Tweet-a-Program Halloween Code Challenge

Halloween is quickly approaching, and to help you gear up for trick-or-treating, costume parties, and pumpkin carving, we're issuing another Tweet-a-Program Code Challenge! This time, instead of spaceships and planets, we want you to tweet us your spookiest Halloween-themed lines of Wolfram Language code. We'll then use the Wolfram Language to randomly select three winning tweets (and a few of our favorites) to pin, retweet, and share with our followers. Winners will also be awarded a free Wolfram T-shirt! Take some inspiration from these examples, while you come up with your creepy codes:
Computation & Analysis

Solving the Knight’s Tour on and off the Chess Board

I first came across the knight's tour problem in the early '80s when a performer on the BBC's The Paul Daniels Magic Show demonstrated that he could find a route for a knight to visit every square on the chess board, once and only once, from a random start point chosen by the audience. Of course, the act was mostly showmanship, but it was a few years before I realized that he had simply memorized a closed (or reentrant) tour (one that ended back where he started), so whatever the audience chose, he could continue the same sequence from that point. In college a few years later, I spent some hours trying, and failing, to find any knight's tour, using pencil and paper in various systematic and haphazard ways. And for no particular reason, this memory came to me while I was driving to work today, along with the realization that the problem can be reduced to finding a Hamiltonian cycle—a closed path that visits every vertex—of the graph of possible knight moves. Something that is easy to do in Mathematica. Here is how.
Education & Academic

Spellbound Valentines: DIY Art from 3D-Printed Sound

An original gift can make people feel much warmer, especially in the icy weather affecting so many places this winter---including our headquarters. Valentine's Day is a good excuse to get a little creative in the art of gift making. And for me, "getting creative" long ago became synonymous with programing in the Wolfram Language. It is that medium that compels me to treat programming as art, where one can improvise, easily pulling magical rabbits out of a hat. So what shall we make? I think the best gift is a DIY one---especially if it says a lot without even making a sound. Below you see a 3D-printed silver earring in the shape of a sound wave recorded while a person is saying "I love you."
Education & Academic

How to Win at Rock-Paper-Scissors

Rock-paper-scissors* isn't obviously interesting to look at mathematically. The Nash-equilibrium strategy is very simple: choose equally and randomly from the three choices, and (in the long run) your opponent will not beat you (nor will you beat your opponent). Nevertheless, it's still possible for a computer strategy to beat a human player over a long run of games. My nine-year-old daughter showed me one solution with a Scratch program that she wrote that won every time by looking at your choice before making its decision! But I will walk you through a simple solution that wins without cheating.