Printable PDF version (4 MB)
(with images)
Printable PDF version (0.5 MB)
(text only)
Kenny Smith
Software Engineer, Chicago area
20+ years of experience developing high-quality, commercial software.
BSE '87, University of Michigan, College of Engineering
Email: kennysmith@me.com
LinkedIn: http://www.linkedin.com/pub/b/314/353
References and sample software available on request.
Summary
I am driven to create high-quality, end-user applications. Specific areas of interest include:
compelling user interfaces, interactive graphics (2D & 3D), visualization, simulation, distributed
systems, and software that makes people say, "Cool!"
Over the years I have developed my own codebase I call Bounce
(screenshots here and here).
Bounce is a general-purpose, C++ framework for realtime dynamic simulation, data visualization, and
whatever else catches my eye. I've used it for browsing voxel datasets, playback of human motion
capture data, simulating urban pedestrian settings, creating virtual Lego models, and a Mars rover
simulation (with the help of the Open Dynamics Engine and the Bullet Physics SDK). More
recently I've created a codebase specifically for iPhone/iPad development, layered on the Box2D physics
engine. At the time of writing, I am immersed in WebGL and JavaScript.
Being on a team of smart people solving difficult problems has led to the high points of my career
and continues to be my main goal professionally.
Skills
Lots of: Object-oriented design, User-interface design and imlementation,
Interactive 3D graphics, Client-side, user-facing, front-end apps, Code refactoring, MVC and other
yummy design patterns, C++, Objective-C, Cocoa, Cocoa Touch, Qt, STL, Boost, OpenGL, Xcode, Visual Studio,
Mac OS X, iOS, MS Windows, SGI Irix (back in the day), Mercurial, GIT, Subversion, and Perforce.
Some: Realtime simulation, design and implementation of distributed systems,
RESTful Web services, JavaScript, WebGL, Ruby on Rails, TCP/IP, HTTP, XML, HTML, CSS, SQL, Java, Eclipse,
NetBeans, Image processing, and the GNU toolchain.
Also: Decades of experience consuming animal crackers.
Employment History
Sr. Software Engineer NAVTEQ
/ Nokia Chicago, IL |
August '10 to present |
- Creating tools to visualize and improve the quality of NAVTEQ's 3d data products using
C++, OpenGL, Qt, JavaScript and WebGL.
- Founded a micro-company to create engaging applications for the iPhone and iPod Touch. I have a few apps in various stages of development and enough ideas to keep me busy for quite a while.
- iPhone contract programming as part of a team developing a distributed, social marketing platform.
- Co-creator and engineer of Bon Mot!, an original word game for the iPhone and iPod touch. Bon Mot is currently for sale in the iTunes App Store.
Sr. Software Engineer Write Brothers Inc. Burbank, CA
(telecommuting from my home in the Chicago area) |
June '00 to March '09 |
- Architect of the next generation of Write Brothers' flagship product, Movie Magic Screenwriter.
Screenwriter is a specialized word processor for film, television, and stage writers. This project
involved a from-scratch design and implementation based on the Cocoa Advanced Text framework
from Apple and using the open-source Cocotron project to port from Mac to Windows. This
project gave me the opportunity to immerse myself in Apple's Cocoa framework for a year. It was
cut short when the '09 recession forced Write Brothers to scale back its business.
- Maintained and added a variety of features to
Movie Magic Screenwriter 6. Screenwriter 6 runs on Mac and Windows and is recognized as the
standard tool for professional screenwriters worldwide.
- Carbonized and updated
Dramatica Pro to run natively in Mac OS X. Dramatica is built upon a proprietary cross-platform
framework I originally developed in the early nineties. Along with Movie Magic Screenwriter it can
be found on the shelf at your local Apple store.
- Architect and lead engineer of Word Menu,
an English language dictionary organized into a hierarchy of categories and employing
modern user-interface techniques to quickly browse and search the content. Downloadable demos for
Windows and Mac OS X are available online.
Word Menu is implemented as three modules: a platform-independent engine, an MFC-based Windows
UI, and a Carbon-based Mac OS X UI. Alas, Word Menu is found only at the larger of the Apple
stores, such as the one with glass stairs on Michigan Avenue in Chicago.
- Added a variety of features to
StoryView 2.0, a compelling visual outlining tool for writers. StoryView is an
MFC-based, Windows-only application featuring a patented user-interface for displaying and
editing data that has both chronological and hierarchical structure (i.e. stories). This
project involved a team of four engineers using a formal team methodology based on the software
Capability Maturity Model.
- Ported MusculoGraphics' flagship product,
SIMM
(Software for Interactive Musculoskeletal Modeling) from SGI Irix/GL
to MS-Windows/OpenGL, and added several major features for the release
of version 2.0
including: muscle wrapping, bone deformation,
and motion capture support. The SIMM
Biomechanics Software Suite is a powerful tool kit that facilitates the
modeling, animation, and analysis of 3D musculoskeletal systems.
Unlike traditional animation and CAD packages, SIMM is specifically designed
to work with systems that consist of bones, muscles, ligaments, and tendons.
- Lead programer for LTS
(Limb Trauma Simulator), a multi-threaded realtime surgical simulator
consisting of a dual-cpu Windows-based PC controlling two Sensable
Phantom force-feedback devices for spatial input and haptic output,
and a dual-cpu SGI Octane for stereoscopic realtime 3D display. I
wrote most of the code and shared design responsibilities with one other
engineer. I worked on all aspects of the simulator including the
overall architecture, graphics engine, haptic force feedback, and
TCP/IP-based communication between the graphics and haptics computers.
The original version of LTS was funded by a DARPA contract and is being
used to train medics at the Uniformed Services University in Maryland and at
Fort Bragg in North Carolina. A second generation version of LTS is being used
by Hong Kong University to teach IV needle insertion to nursing students.
Software Engineer Electric Image Inc. Pasadena, CA
(2 years locally, 2 years telecommuting from Chicago) |
March '93 to August '97 |
- Co-authored a cross-platform (MacOS, Win32, Unix/X11), object-oriented
3D application framework for Electric Image's next-generation modeling
and animation software. This framework was eventually released as the product
Electric Image Universe, after my departure.
- Designed and implemented character animation tools including skeletal and
free-form deformations based on papers presented at SIGGRAPH '89 (Chadwick
et al) and SIGGRAPH '86 (Sedeberg and Parry). These tools were created
in my own custom 3D testbed and eventually integrated into Electric
Image's 3D animation suite.
- Designed, and wrote Renderama 1.0, Electric Image's distributed network
rendering system. This involved implementing client and server applications
communicating via TCP/IP and AppleTalk.
- Designed and implemented 3D spatial deformations for Electric Image Animation
System 2.0 based on a paper presented at SIGGRAPH '84 (Barr). This became
the most sought-after new feature of EIAS 2.0, and received excellent reviews
in MacWEEK 08.01.94 (page 58).
- Implemented QuickTime support in EIAS 2.0. This included creation and playback
of QuickTime movies within EIAS 2.0.
- Implemented audio support in EIAS 2.0. This included capture, display,
manipulation, and playback of 8-bit multichannel audio.
- Many other miscellaneous projects including: porting EI's rendering engine
to the PowerMac platform, several custom GUI controls/widgets, floating
palette window support under MacOS 7.x, and so on...
- Designed, coded and documented two C++ class libraries -- one to provide
generic container classes, memory management and I/O, another to
provide a portable GUI application framework. Together these libraries
comprise 76 C++ classes built upon the Win32 and Mac OS Toolbox APIs.
Additionally I ported the container class library to Unix System V
and Mach platforms. Screenplay Systems has shipped at least three applications
based on these libraries.
- Worked on "Movie Magic Budgeting II", Screenplay Systems' 2nd-generation
movie budgeting application. MMB is a single-user, hyperlinked spreadsheet
application complete with a byte-compiled macro language. MMB makes use
of the class libraries mentioned above to target both Mac OS and Windows with
one set of source code.
More work experience from ages past can be found here.
Education
- Highlights include upper level coursework in computer graphics in which
I designed and wrote a 3D graphics editor on a late-80's era Apollo workstation as a semester
project (which the professor saved as an example for future classes), as
well as diverse coursework in computer engineering, mechanical engineering,
math, science, psychology, political science, and literature.
Enthusiast, Contract, Shareware, and
Miscellaneous Programming
- Continuing work on Bounce, my homespun,
general-purpose framework for realtime dynamic simulation, data visualization,
and whatever else catches my eye.
In recent years I've used this code base for browsing voxel data sets, viewing
motion capture data, creating virtual Lego models, and most
recently running dynamic simulations with the help of the
Open Dynamics Engine and Bullet Physics SDK.
Bounce is OpenGL-based and runs on Mac OS X and Windows. Porting to Linux would take a
week or less.
- Wrote platform-independent parsers for Adobe Type I and TrueType fonts as a
contract job for Zaxwerks, Inc.
- Wrote a set of command-line programs in ANSI C to help a friend analyze
her dissertation data. Sold the software to a research team at the
Institute for Juvenile Research at the University of Illinois at Chicago.
- Wrote a set of text filters using 'lex' to help my mom automatically
pipeline the results of Lexis database searches directly into Orbit database
queries. These programs are available as shareware and in
use by patent searchers in the U.S. and France.
- Wrote software to view CT/MRI volume data on my NeXTstation at home. This
project included an implementation of an implicit surface finding algorithm
from the SIGGRAPH '94 course notes (Bloomenthal '94).
Personal Interests
- Spending time with my family.
- Evening art classes at the
School of the Art Institute of Chicago and the
Evanston Art Center. See some of the results at
my personal web site.
- Rennovating our 1920's-era Chicago-style bungalow.
- Coaching youth baseball and soccer.
- Running (including one marathon and two half-marathons -- though that was
long ago), yoga, and playing basketball.
- Building Legos with my kids, or anyone who wants to.
- Member: ACM, SIGGRAPH, IEEE Computer Society, Tau Beta Pi Engineering Honor
Society.