Artists have always created using whatever medium they could get their hands on. As the tools of each technological age have advanced, art has evolved from cave drawings to oil paintings, watercolors, sculptures, photographs, animated graphics, 3D printed works and countless other media.

Today, arguably, no industry is innovating more rapidly than software development. As a result, artistic expression based in coding and programming is experiencing something of a quiet renaissance. Given the vast selection of constantly changing programs, programming languages and processes for artists to work with, no piece of artwork or artistic style is exactly the same.

Adam Ferriss
Ferriss is a Los Angeles-based photographer and artist who experiments with processes like RGB tricolor separation, pixel-sorting algorithms and shader programs to create arrays of kaleidoscopic coding art rich with vibrant color.

Ferriss was in the photography program at the Maryland Institute College of Art in Baltimore, looking for ways to manipulate photographs, when a new-media class introduced him to JavaScript and basic coding. His creation method involves trying out different ways of processing, inspired by the work of other artists and driven by the curiosity to find out how they made it.

“I work a lot with noise functions, Perlin noise, or simplex noise,” Ferriss said. “They’re ways to generate pseudo-randomness in color, like shaping form. It generates a seed pixel, and from that one seed pixel it looks out at its neighbors, and continuously expands so its neighbors will start expanding. It’s essentially like you’re growing an image or a crystal in the way it clumps itself together and generatively expands.”

bitShiftMinuet from Adam Ferriss on Vimeo.

Ferriss’ driving principle is to find new ways to interpret, distort and redraw images and videos. What began as an analog process—taking three black-and-white photographs and adding red, green and blue filters to them in a darkroom—evolved into using Photoshop and Adobe After Effects to create RGB separation in images and videos, and running algorithms to sort looping pixel arrays.“I’ve been using the Quicksort algorithm, which is almost like a manufactured glitch,” he said. “It’s not an authentic glitch because you’re programming it and intentionally creating it, versus taking advantage of pre-existing hardware or software and using it in a way that wasn’t originally intended. It lumps the pixels like an RGB unit, so you have a red byte, a green byte and a blue byte, and sometimes alpha, and processing it clumps them into a singular pixel.”

Ferriss is constantly experimenting with new programs and processes, recently transitioning from RGB separation and pixel sorting into work with shader programs—small programs that run on graphics cards. He is working with a language similar to C is but integrated into OpenGL Shader Language. It’s a hardware-accelerated way to do complex lighting and texture effects like ambient inclusion and texture mapping.

“I just got a program working that creates something called Optical Flow,” Ferriss said. “It analyzes the current frame and the previous frame for implied motion to determine in which direction the pixels are moving. Then it creates almost a motion blur, but more of a liquid flow. So if I were to have run this program on my webcam and wave my hand in front of it, I could move all the pixels in the direction my hand was moving as if they were flowing like a liquid, and they’ll scrunch and twirl and mix with each other.”

Adam Ferriss