How CUDA Can Help You Go to Pieces, or Take a Van Gogh-Inspired Selfie
Ever wanted to see what your body looks like on a molecular level? How each atom interacts and interlocks with others, before breaking off and tumbling to the ground? Or what your portrait would look like if painted by Vincent Van Gogh?
Well, now you can – sort of. Two works of electronic art powered by NVIDIA’s CUDA technology now on display at the Boston Cyberarts Gallery as part of the Collision19:COmpress/DECompress new media arts show will help you see yourself in new ways.
The first, Everything is Made of Atoms – created by James Susinno and Mark Stock — puts an image of its viewers on a screen, an image composed of thousands of small particles constantly falling and regenerating, showing the complex relationship between a body and its constituent parts.
CUDA Saves the Day
Susinno and Stock — an artistic duo known as Axes — used CUDA to generate imagery that wouldn’t be possible otherwise. Early versions of Atoms relied on CPUs alone to do the work, but the results didn’t have the detail or frame rate necessary to support a vivid, expressive interface.
When they decided to port the underlying fluid simulation to CUDA, the duo was surprised by the tenfold increase in speed, which produced more particles and a higher frame rate. CUDA turned what had been thin, flimsy visuals into a rich, captivating experience.
Powered by a desktop computer running on a GeForce GTX 660Ti GPU, Atoms’ depth-sensor returns data related to the viewer’s image, depth, silhouette and skeleton, which the C++/OpenGL/CUDA application tracks and then translates into a geometrical display on the screen.
A direct N-body vortex methods solver, written in CUDA, controls the real-time fluid simulation, and calculates the position and orientation of the fluttering particles. The GPU powering the display not only performs the vortex dynamics simulation, but also renders the tens of thousands of particles and an 8,000 by 8,000 ground texture to a an ultra-high definition monitor at 30 frames per second, generating a visual of a human being shedding atoms.
No Smartphones Necessary
The second Boston Cyberarts Gallery display to use CUDA was created by Robert Gonsalves, who describes his Dial-A-Style piece as an algorithmic portrait studio. Dial is an interactive video installation that allows visitors to create a digital self-portrait in a variety of artistic styles, from Vincent van Gogh-inspired Impressionism to comic book fueled Anime.
The visitor starts by spinning the Dial-A-Style wheel (below). The wheel might stop at four artistic styles – Impressionism, Cubism, Pointillism or an Anime theme. The wheel can also stop in between styles, resulting in a hybrid portrait.
Once the wheel stops, optical detectors send a signal to the computer, which triggers a webcam to take a picture of the visitor. The computer then runs the selected algorithm to create a stylized painting, which is displayed on a screen. If the viewer likes the portrait, he or she can upload it from the artistic display and then download it for themselves from www.robgon.com.
The software powering Dial is written in C++ and uses CUDA kernels to solve quadratic equations as part of eigenanalysis to estimate local gradient orientation, using smoothed structure tensors. This technique, combined with the use of extended difference-of-Gaussians (XDoG) image processing techniques, creates the painterly images. And, the whole installation runs on a GeForce 9600 GT graphics card.
In creating the algorithmic self-portrait generator, Gonsalves says he hopes visitors will gain insight into the perspectives of familiar visionary artists. By experimenting with different kinds of algorithmic selfies, viewers can better understand the emotional responses each one of these art forms might prompt.
We got excited by these artists’ works because they took advantage of scientific computing and high-performance graphics methods to create novel pieces of art. Let us know in the comments section if you’ve ever used high-performance graphics or advanced computing for creative purposes.