From Student Project to Commerical Success: Lineform Uses Xcode and Core Image
Will Thimbleby didnt set out to write an illustration program. He needed to create drawings for a project, but he found he couldnt afford the market-leading application and was unable to find a lower-cost option that suited him. So the 25-year-old doctoral student opened Apples Xcode tools and built his own.
The result is Lineform, a vector drawing program that challenges the features of pricey competitors while sporting a far more accessible interface. His homegrown scratch-an-itch project won the 2006 Apple Design Award for Best Mac OS X Student Product, and soon after was picked up by software publisher Freeverse, Inc.
The award comes as no surprise to those who know Thimblebys exacting standards, honed by studies in User Interface Principles and Design at the UKs Swansea University. But artists can only be as good as their materials, so Thimbleby relies on Apples development tools to fulfill his vision.
For example, consider how he created the programs look and feel.
Interface Builder is what allows everything to happen, says Will. It just works. The way Interface Builder lets you link an interface to your code with very little controller code makes building interfaces so much easier. Pretty much everything in Lineform except the main window came from Interface Builder.
And the main window itself was all Quartz, he says. The gradients, the text, the paths ... everything. Anything to do with vector graphics is Quartz.
The Making of an Interface Master
Thimbleby has been an Apple developer since, as a 10 year old, he got bored with the games on the familys Mac Classic and asked his father-a computer science professor-how he could write his own game. His first project was a point-and-click HyperCard adventure game, and with that he was off and running. He learned C, shortly after challenging a school chum to see who could write the best tic-tac-toe program. (His was prettier, he says, but mine could actually play the game.) He moved on to Java for a year-long job with IBM at age 18 and finally bought his first computer—a duo 450MHz PowerPC Mac G4.
Will explains, Mac OS X was really the reason I decided to take the plunge. For as much time as I was going to spend in front of the computer, I wanted to enjoy that time. That was worth any amount of money.
The Genesis of Lineform
So when he needed an illustration program, there was no question of creating it on anything but a Mac.
Will recalls, I started writing it probably in the summer of 2004. It took about six months to get something that I was using myself and pleased with. After putting all that effort in, I thought it would be worth letting other people use it. Of course, that took four times as long as getting it ready for me. I released it to the public on Easter 2006.
But that was just the beginning—he then found he was being considered for retail sale by a publisher.
Will explains, Freeverse came across Lineform and liked it, so they approached me about the possibility of publishing it. We met up at WWDC. I liked them, and it seems to be working well.
Thimbleby applied lessons learned from writing Lineform, defining his guiding principles in four points:
First, simple is better, although its hard to sell that in a feature-by-feature comparison.
Will says, So many applications boast tables of features X,Y,Z. Its hard to say, Its better that we dont have that palette or whatever. Compare the market leader with Lineform: It has dozens of tools, while we have 10. I counted. We simply accomplish more with less.
Second, interactivity is good.
Everything in Lineform is always up to date, Thimbleby says. That is, everything you do is live. Theres not a single dialog box in the entire application. So when you change a gradient vector, for example, you see it immediately. That makes Lineform faster to use than other, more expensive programs, where you have to poke through dialog boxes before you can see what youve actually done.
Third, palettes should always reflect what you have selected in the main document.
No matter what youre doing, Will explains, whether changing the stroke size or gradient or whatever—there should be complete consistency between the graphics you see and the inspectors.
Fourth, Lineform has no special-purpose shapes.
Thimbleby says, A box can be filled with color or text, or you can put text around the shape. You learn a tool once but can use it in multiple intuitive and complementary ways.
Finally, Will insisted that Lineform be a real Mac program. Although hed found other applications to do essentially what he wanted, they lacked a certain elegance that comes from Mac-centric programming.
He says, I saw a couple of neat things that people were doing with vector graphics, in particular a Mac program called Creature House Expression. It had some really neat aspects. I thought it would be great if only it worked like it should on a Mac! I like solving problems, so I spent a few weeks trying to replicate some of the artistic features but in an environment that felt more right on the Mac.
Setting Loose the Magic of Core Image
The result is a program that provides sophisticated image-creation tools, yet is as easy to use as the original MacDraw. Its 90-plus image filters include the blurs and stylizations found in most high-end imaging programs, joined by some unusual and unique examples. One filter, for example, makes objects appear to be swirling down a gravity point; another seems to run a photocopiers bright light past the image, with options to freeze the process at any moment.
Thimbleby could have spent hundreds of hours hand-coding all these effects, but fortunately he didnt need to. He had Mac OS Xs Core Image at his disposal, easy access to it through Xcode, and Apple-supplied sample code.
He explains, The filters rely on Core Image. Almost all of them are straight from Core Image, with the exception of a few custom filters I thought were worthwhile enough to replicate from existing programs, such as the Reflection effect. I dont know of anything equivalent on other platforms; the filters simply wouldnt exist without Core Image.
Much of Lineforms strength comes from simply exposing the work done by Apple engineers and framing it in an unusually clean and concise interface. Thimbleby was especially grateful for the sample code included in Xcode; the code provided shortcuts to learning how best to exploit Apples technologies. He was happy to find almost everything he needed in Xcode.
I work best when I can get things done quickly, says Will, so I can see and appreciate what Im doing and then continually refine it. Xcode and Interface Builder are pretty much the only tools I used. I spent a good bit of time with Sketch, just to get a feel for how its designed and how Apples own programmers did the interaction.
Xcode has another advantage that Thimbleby, being a student, especially values: It comes with Mac OS X at no additional cost. He previously used CodeWarrior on Mac OS 9, but was compelled to make the switch by both Xcodes lack of cost and its ease of use.
Will says, As soon as Xcode came out bundled with Mac OS X, that was just awesome. It saved me several hundred pounds (sterling). I could get right in and away I went! I started using it immediately and havent really used anything else since then. Ive tried a few things but always came back to Xcode.
The Interface: Theoretical Basis, Practical Applications
Since Freeverse started publishing it, Lineform has become Thimblebys most famous program. But even if not as well known, his other projects have had far-reaching effects as well. Notable among them is a unique calculator that sees math problems written on a whiteboard, converting them into digital information, interpreting the symbols, and delivering correct answers-even if the problems were written in a nonstandard format. In the process, he revisited an interface thats so ingrained that most people never considered the possibility of an alternative.
In his words, the calculator stops users from having to think ... the computer fills in the gaps. But as the old saw goes, easy is hard. In this case, easy was harder than it needed to be, being written in Java, without the benefit of Apples tools. In retrospect, Thimbleby says he wished hed used Interface Builder because he found similar tools for Java to be painful by comparison.
Thimbleby is unusual in that he has both the practical experience from 15 years of programming for fun and profit and a solid academic background. About his doctorate, he says:
The major is about the theoretical principles of what makes a good user interface, without much testing on users. I go about things a little differently from my professors. I try to make prototypes that people really like, continually putting principles into practice and seeing if they work.
As for Lineforms success,. Will explains, I think the official line at school is that theyd rather I was writing my thesis. Theyre obviously quite pleased, as its combined some aspects that my Ph.D. embodied. From the point of view of the school, Im doing it sort of backwards.
So what will Thimbleby do next? Hes hard at work on his thesis on principles of UI design. Lineform will be described in it, but perhaps not as prominently as his latest project-a text editor with a per-character history, so you can scrub back and forth, like a movie.
He says his new text editor, will work collaboratively on a network, so you can see what someone else has done. In short, it takes the idea of the Undo function and makes it much, much more useful. I know it works because Im writing the thesis itself on it! So the thesis is about the program, created with the program, while Im developing the program.
Finally, Will admits, I have this terrible habit of seeing flaws in other peoples programs, which is great if youre doing a Ph.D. in interface design because you get published papers from it. But being good at hacking things together from scratch is also important. I didnt like a graphics program I used, so I wrote one. I didnt like a text editor I used, so Ive been writing one. And, of course, it will be on Mac OS X.