|
Gabe Johnson
Email: johnsogg@cmu.edu
Phone: 720-934-0491 |
Hello. I am a PhD candidate in the Computational Design Lab at Carnegie Mellon University. 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. I am driven by an almost obsessive desire to find ways of using computers with pens and other yet-to-be-invented hardware. Some of my projects and publications below describe this in more detail.
Sketch It, Make It (SIMI) is my dissertation
system. It is a sketch-based modeling tool for designing laser-cut
items. There's a nice
propaganda video, and
a longer but less flashy
academic video. There is an ongoing conspiracy to
commercialize SIMI. There is
also a website for SIMI.
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)
Generated on: Mon May 21 07:59:19 UTC 2012