Meet the Team: Nathan Carr – Senior Research Scientist
Crashing light cycles and skeletons in Photoshop sound curiously fun, right? So what is it? It’s a designer’s dream, computation geometer’s curiosity, and a research engineer’s nightmare. Have I got your attention? Before I describe what this is all about, let me digress a bit.
Prior to arriving at Adobe, I was amazed at the premiums paid for products like Photoshop CS6. After all, it’s just software, right? Seven illuminating years of working in Adobe’s Advanced Technology Labs, developing feature technologies for Photoshop, AfterEffects, and Flash has taught me better. The slightest motion of a slider can invoke months of research and development that was built upon decades (sometimes centuries) of technological advances in math and science. Yes, it is absolutely true that magic happens behind the scenes in Photoshop, and that’s where light cycles and skeletons fit in.
Two years ago, I started examining the problem of beveling. From the elegant rounded contours of your smart phone to the corner patterns on your bedside dresser – bevels decorate the world by adding interest to otherwise blocky shapes. Rounded edges cast glinted highlights, making objects shine. Those with wood shop experience know that generating bevels is easy … just grind away the edges of our block and you’re done. How about doing this inside of the computer on a digital shape? Easy, right? Wrong!
So how do you do this inside a computer? One way to think about beveling is that it is identical to building the roof of a home. One can construct a roof by placing a board heading upward through every boundary edge of the roof. Just chop off the boards when they run into one another and the roof-line pattern where the boards intersect forms the skeleton of the roof. Finding where these boards intersect is hard—but some geometers from the University of Illinois and University of California Irvine in 1999 noted that one can solve this problem by solving a similar problem of crashing light cycles (known as the motorcycle graph). Every roof region that’s jointed inward can be expressed as a collection of light cycles moving with constant velocities, leaving wakes behind them. Each cycle crashes when it runs over the wake of another cycle. The order in which these cycles crash forms the skeleton or beveling patterns (i.e. the ridge line of the roof). Now envision perhaps hundreds of light cycles careening top speed inward to meet their doom. Who crashes first? Will many crash at the same time and more importantly, where will they collide? The product is a beautifully beveled shape.
If all this stuff about light cycles and skeletons is starting to sound confusing and complex – it’s because it is! Rest assured, Photoshop users are free from all of that. Just select your favorite font and text, drag the bevel width slider, adjust your bevel profile, and see those rounded contours form and pop in real time. Yes, behind the scenes, thousands of light cycles may crash and skeletons form and die. An entire world of technology exists to make one simple feature behave as expected. So when I crack open Photoshop and tweak another slider or apply one more adjustment, I sometimes wonder what amazing things are happening underneath. I don’t wonder very long.
Instead I just relish the moment of design made simple. I adjust my settings one last time and move on with my task.