Gabe Johnson


Email: johnsogg@cmu.edu
Phone: 720-934-0491



Hello. I just finished my PhD in Computational Design at Carnegie Mellon University. We are in the very early stages of commercializing my thesis work, which was on sketch-recognition based interaction for making physical stuff on laser cutters.

Insomniacs and fellow sketch recognition people might be interested in my dissertation, "Sketch-based Interaction for Designing Precise Laser Cut Items."

In the past I have done various software development or research gigs for Google, Ricoh Research, Stevens Tech (in the Center for Decision Technologies) and ReadyTalk. Before that I was a computer science major at the University of Colorado, Boulder where I was involved with the Center for LifeLong Learning and Design. Before that I mostly just played guitar.

My research is on design and how it might be supported with computation. In particular I work on sketch-recognition based user interfaces and calligraphic interaction. Some of my projects and publications below describe this in more detail.

Projects (and neat hacks)

    Sketch It, Make It (SIMI) is a sketch-based modeling tool that lets mere mortals design precise items for laser cutting. This was my PhD thesis system, and now we are commercializing it. Hello entrepreneurism, goodbye sleep. There are groovy videos of SIMI at sketchitmakeit.com.

    Skrui Draw is a simple painting application that is based on pen-centric interaction techniques, often involving sketch recognition. It is a vector-based painting program and lets you save images as PDFs. I made the icon in the application itself (and if you can make a better one, and I am sure you can, make one in Skrui Draw and send it to me). Download and read more about the current status of Skrui Draw over yonder.

    Olive: Olive is a web-based development environment for prototyping sketch recognition algorithms or interaction techniques. It features a domain-specific language called Slippy, which allows developers to quickly try out ideas. You may try out Olive here.

    Sketching Games: This is a series of games where players draw or describe pictures. This benefits researchers of sketching interfaces by providing lots of useful data on how people sketch (in the spirit of von Ahn's wonderful ESP Game). It also provides me with a platform for exploring calligraphic interaction methods. You can play two of the games here on my site: Picturephone and Stellasketch (Stellasketch is better). (Paper: PDF, Bib, Annotated Slides)

   Computational Support for Sketching in Design: A Review. I worked with my co-authors (Mark Gross, Ellen Do, and Jason Hong) for quite a long time on a fairly comprehensive review of the literature on sketch-based design systems. This includes a discussion of the role of sketching in design, hardware, various aspects of sketch recognition, and interaction methods for calligraphic interfaces. This is my only project that hasn't involved me building software. On the outset of this project we wanted to write something that a fresh PhD student interested in this area could read and have a very good sense of the field. I think we did a pretty good job. (Paper: PDF, Bib)

   FlatCAD and FlatLang: FlatCAD is a 3D modeling environment for designing objects that are produced on a laser cutter. Instead of the traditional WIMP (Windows, Icons, Menus, Pointers) paradigm, FlatCAD users program models using a domain-specific language called FlatLang. You can think of FlatLang as a sort of 3D LOGO, but the turtle has a high power laser attached to it. There is more information on the FlatCAD web site including source code and binaries. Try it out! (Paper: PDF, Bib)

   Flow Selection is a time-based, modeless selection and operation technique for calligraphic tools. It allows users to alternately draw and make corrections without explicitly changing pen tools. I had the idea for this mostly because I am lazy. While making corrections to computer-based freehand drawings, I was annoyed that I had to change from a draw mode to a select mode to an edit mode and (finally) back to a draw mode again before continuing to work. Click here to try the Flow Selection Java Applet demo. (Paper: PDF, Bib, Annotated Slides)

   Designosaur: The Designosaur was a sketch-based design environment (ostensibly for kids) for designing your own dinosaur (or monster) skeleton which could be manufactured with a laser cutter. This was my first grad school project, and while it was a 'bad pancake', it served as the basis for my future work on design tools (like FlatCAD) and sketch-based interaction (like Flow Selection). (Paper: PDF, Bib)

   FrontEnd Java Layout Manager: If you have ever had to program a user interface in Java you know that it can sometimes be a daunting task. Continuing on my theory that laziness is superior to stress, I developed a very easy to use layout manager for Java. The FrontEnd layout manager is based on constraints---you simply state where various elements should be relative to one another, optionally indicating their alignment and inter-component spacing. I use this layout in basically all of my Java UI projects. (Download: Source, Java Executable Example, Java Example)

   Drift Room: Inspired by the Royal College of Art's Drift Table, the Drift Room provides a slowly 'drifting' projection of an aerial scene on the floor. The direction and speed of the drift is manipulated by people standing in different locations. While this was just a class project, it was one of the cooler things I've been involved in: it was partly a physical hack (involving distance sensors and many heavy-duty springs) and a software hack (involving low-level Handyboard programming that provided input to a Google Maps mashup). The Drift Room was designed and built by Tajin Biswas, Chang Zhang, and myself. (Paper: PDF)

Publications

(Complete BibTeX Listing)