Don Hopkins Portfolio
Portfolio of software design and development examples by Don Hopkins.
Architected and implemented Pantomime, a multi-player multi-device networked augmented / virtual reality platform, developed with Unity3D. Pantomime physically and graphically models iOS and Android phones and tablets, Windows and Mac laptops and desktops, as well as GearVR head mounted displays. It has an immersive gestural AR/VR user interface that lets you “Pantomime” walking, paddling, hitting, pushing and throwing 3D objects. Pantomime builds on top of Unity networking and Bonjour (zeroconf) over Wi-Fi. It orchestrates real-time, multi-player, multi-device combinations of HMD + phone + tablet + laptop + desktop, all playing together in the same shared virtual world. It uses JSON throughout for network messaging, persistence, plugin integration, app and build configuration, and “DRY” macro templates.
- Pantomime Corporation — web site.
- Pantomime Creatures AR — iOS app: Play with interactive 3D creatures. Scoop them up in a virtual cup or knock them into a collection basket. Feed and capture them to score!
- Pantomime Bug Farm — iOS app: Your device is balanced on a tabletop that’s teeming with bugs! Fire Ants, Spiders, Scorpions and Praying Mantises come after you across the table in immersive 3D.
- Pantomime’s Creatures AR — Shared Augmented Reality — video demo of Pantomime Creatures.
- Pantomime — Consumer Augmented Reality — video demo showing two people using Pantomime Bug Farm, running on iPads, MacBook Pros and an iMac.
- Pantomime — Interactive Multiplayer Virtual Reality — video demo showing several people using Pantomime, running on iPads, GearVRs, and a MacBook Pro, playing together with various objects like dominos, bowling balls and pins, bugs, cans, dice, and zero-g in a shared world.
- Pantomime Playground Turns Virtual Reality Inside Out — video presentation for Augmented Reality World Expo 2015, showing how Pantomime immerses our computers and mobile devices in virtual worlds, instead of just our heads.
Worked closely with Will Wright on the original Sims team at Maxis, and then at EA. Contributed to many aspects of The Sims user interface, character animation, graphics, programming, game design, tools, user created content, and community. We shipped The Sims on schedule and in good order, which won numerous awards and critical acclaim, and started a franchise that’s sold over 200 million units worldwide.
Designed and implemented VitaBoy, a 3D skeletal deformable mesh character animation system, content pipeline, in-game and external user interfaces and tools, animation playback control, locomotion, blending, layering, head faking, censorship effect, event handling, compression, import/export, content management, previewing, debugging, etc.
- VitaBoy Documentation — document describing the architecture and structures of The Sims character animation system, how to create content with 3D Studio Max, Character Studio, Biped, Physique and Note Tracks, and how to use the CMX Exporter tool. (writing sample)
- The Sims, Pie Menus, Edith Editing, and SimAntics Visual Programming Demo — an in-depth behind-the-scenes video demo showing some of my work on The Sims, including in-game in-house tools like Edith content management and SimAntics visual programming, and in-game end-user tools like architectural editing, object placement and pie menus. (* Links below jump into specific times of this video.)
Helped design, develop and document tools and user interfaces built into the game and external, including:
In-game, in-house tools (tools built into the game, used at EA/Maxis, unreleased):
- The Sims Edith Demo (* 11m 20s) — Edith content management and editing tool.
- SimAntics Programming Demo (* 19m 50s) — SimAntics visual programming tool.
In-game, end-user tools (tools built into the game, used by players, released):
- The Sims Architectural Editing Tools Demo (* 3m 30s) — architectural editing tools (walls, floors, doors, windows, etc).
- The Sims Object Placement Tool Demo (* 4m 43s) — object placement tool (create, delete, move, rotate, snap dragging, constraints and feedback for wall, floor, pool placement, etc).
- The Sims Pie Menu Demo (* 10m 9s) — dynamic pie menus (controlling characters, with live 3d head in center, desaturated shadow).
External, in-house tools (tools external to the game, used at EA/Maxis, unreleased):
- 3D Studio Max character animation content management and exporter tool (C++ MaxScript plug-in using MaxScript, Max, Biped and Physique APIs, note tracks, user interface for integrating Access database, SourceSafe source code control, browsing loading and saving, exporting, validating, batch processing, etc.
- Automating The Sims Character Animation Pipeline with MaxScript — how I used MaxScript to implement the character animation pipeline. (technical writing sample)
- VitaBoy Documentation — Includes a description of the 3D Studio Max tool “CMX Exporter Turbo Deluxe”, the character animation exporter written in MaxScript and C++. (documentation writing sample)
- External, end-user tools (tools external to the game, used by players, released and unreleased):
- SimShow character skinning tool, which enables players to create their own characters even before we released the game itself. Because The Sims was too complex to release a demo before it was ready, instead we released SimShow with examples and tutorials to raise interest and kickstart the user created content and fan web site community, months before the release of the game itself.
- The Sims fans, web servers prepare for SimsSkinsTutorial download (September 15, 1999) — shows how SimShow enabled players to make Sims skins and publish them on Sims web sites even before the game was released.
- Transmogrifier object editing tool, which enables players to clone and modify their own objects, and share them on websites and discussion groups. User created content, originally enabled by tools like SimShow and Transmogrifier, was instrumental to the success of The Sims.
- The Sims Transmogrifier Documentation — Illustrated tutorial for using Transmogrifier. (documentation writing sample)
- The Sims Transmogrifier Demo — Video demo of using Transmogrifier.
- A Proposal to Develop Third Party Content Authoring Tools for The Sims — The proposal I wrote outlining the plan that led to Transmogrifier and other tools. (proposal writing sample)
- Players Unleashed! Modding The Sims and the Culture of Gaming — Tanja Sihvonen’s PhD thesis in Media Studies, which discusses the importance of user created content for The Sims.
- RugOMatic drag-and-drop Windows desktop object creation tool, for easily creating custom carpets with descriptive text.
- RugOMatic Documentation — Illustrated tutorial for using RugOMatic. (documentation writing sample)
- RugOMatic Demo — Video demo of The Sims Transmogrifier, RugOMatic, ShowNTell, Simplifier and Slice City.
- Developed an ensemble of custom Sims objects, C++ and Python libraries, OLE/ActiveX controls, web browser extensions, desktop apps, websites and services for dynamically creating, downloading and managing The Sims content.
- ShowNTell Internet Explorer ActiveX Sims Object Previewer — video demo of ShowNTell, which reads Sims object “iff” files with the Transmogrifier OLE API, and interactively previews all of their zooms, rotations and states in an Internet Explorer web page.
- FreeTheSims Scriptable ActiveX Character Animation Player — video demo of FreeTheSims, which exposes The Sims VitaBoy character animation library as a scriptable ActiveX control that can be programmed to play animations in a live Sims character shaped window that floats above the desktop (like Clippy but less obnoxious).
- Make Personalized Halloween Tombstones for The Sims — Web site (now defunct) that lets Sims players easily create a personalized tombstones by uploading an image and writing a eulogy, either serious (which lets you leave flowers) or spooky (which is haunted with a scary ghost).
- Sims Content Catalog in Laszlo and Python — OpenLaszlo Flash client and TurboGears Python application server, implementing a Sims content web site that showcases matching collections of objects together in rooms that users can purchase and download together.
- Dumbold Voting Machine for The Sims — Interactive Sims object agitprop that demonstrates and educates about the problems with electronic voting machines. (agitprop writing sample)
- The Sims Crowd Sitter — A Sims objects developed for staging weddings, sit-ins and stand-up meetings, which exercises the Sims flocking and lounging behaviors.
- Simplifier Demo, an accessibility tool supporting screen magnification, cataloging all object pictures, titles and descriptions, and reading titles and descriptions out loud with speech synthesis.
SimCity / Micropolis
Ported SimCity to Unix, including HyperLook/NeWS/OpenWindows/Solaris/Sun Workstation, TCL/Tk/X11/Unix/Linux. Designed and implemented networked multiplayer cooperative user interface for SimCityNet.
- Open Sourcing SimCity — excerpt from Chaim Gingold’s PhD dissertation on Play Design, University of California Santa Cruz, June 2016.
- HyperLook SimCity Screen Snapshot — picture of SimCity user interface written in PostScript, running on HyperLook/NeWS/HyperLook/OpenWindows/Sun Workstation/Solaris.
- HyperLook SimCity Product Information — HyperLook SimCity announcement (1992). (press release writing sample)
- HyperLook SimCity Manual — Illustrated HyperLook SimCity manual written in the NeWS version of FrameMaker. (documentation writing sample)
- X11 SimCity Screen Snapshot — picture of X11 SimCity running on TCL/Tk/X11/Irix/SGI Indigo.
- Multiplayer SimCity for X11 is now available from DUX Software! — Multiplayer SimCityNet announcement (1993). (press release writing sample)
- SimCityNet: a Cooperative Multi User City Simulation — Interactive Experience proposal, accepted and presented at InterCHI ’93 Amsterdam. (proposal writing sample)
- Multiplayer SimCityNet screen snapshots, one game displaying concurrently on Sun Workstation, SGI Indigo and NCD X Terminal.
- X11 SimCity Demo — video demo demonstrating pie menus for selecting city editing tools.
- Multiplayer SimCityNet for X11 on Linux — video demo demonstrating multiplayer SimCity collaboration, voting and building features.
- Educational Multi Player SimCity for Linux Proposal — a proposal to develop an educational version of SimCity in collaboration with Upmanu Lall at Columbia University, to help teach Civil and Environmental Engineering.
- SimCity for OLPC (One Laptop Per Child): Applying Papert’s Ideas About Constructionist Education and Teaching Kids to Program — Discussion on OLPC mailing list about ideas for developing an educational version of SimCity. (technical writing sample)
- SimCity Rules — Discussion on OLPC mailing list with Alan Kay about constructionist education and SimCity development ideas. (technical writing sample)
- HAR 2009 Lightning Talk Transcript: Constructionist Educational Open Source SimCity — Transcript and illustrations from a talk about the history of SimCity, how the Micropolis project supports constructionist education, showing code and live demos, including a PacMan-bot scripted in Python who roams the streets, seeking and eating traffic. (technical writing sample)
- HAR 2009 Lightning Talk Video — Video of the talk and demos.
Collaboration with Will Wright (DUX, Maxis, EA, Stupid Fun Club, OLPC, MediaGraph, Syntertainment)
Worked with Will Wright at several companies on various projects.
- Met in 1991 to discuss plans to port SimCity to Unix for DUX Software. Received advice porting SimCity to Unix and developing multiplayer SimCityNet from 1991–1993
- Worked together on The Sims core team at Maxis from 1997, then at EA after acquisition and until after shipping The Sims in February 2000.
- Worked for EA as a contractor from 2000–2007 on content creation and storytelling tools and The Sims Online server porting and development.
- Collaborated with Will at EA and SJ Klein at One Laptop Per Child in 2007 on sorting out the legal and technical issues to relicense the SimCity source code under GPLv3, and creating an educational version of SimCity to distribute with the OLPC.
- Developed a constructionist educational open source version of SimCity named Micropolis from 2008–2009.
- Worked for several of Will’s own companies and spin-offs including the Stupid Fun Club, MediaGraph and Syntertainment, on mobile, desktop, browser and server programming, Unity3D, robotics, teleoperation, user interfaces, speech synthesis, talking toys, artificial intelligence, character simulation, mobile geolocation, storytelling, rapid prototyping, reality television production (One Minute Movies), online community developed network television series (Bar Karma).
- One Minute Movies — Robot Reality TV Production. Developed and operated robotic teleoperation software in the production of two one-minute-movies and other reality TV shows and social experiments.
- Servitude — One-Minute-Movie: A day in the life of a robot waiter.
- Empathy — One-Minute-Movie: Who will help a broken down robot on the street?
- Bar Karma — Helped develop the “StoryMaker” component of the online community developed television series.
- StoryMaker / Urban Safari / CreationTV Demo — video demo of the Urban Safari StoryMaker.
- MediaGraph Demo — video demo of MediaGraph, a user interface research prototype implemented in Unity3D, including pie menus, an editable map of music interconnected with roads, and cellular automata. It uses one kind of nested hierarchical pie menu to build and edit another kind of geographic networked pie menu.
- Unity3D Pie Menu Demo — video demo of a pie menu component for Unity3D, and tools for editing pie menus.
- iPhone app iLoci by Don Hopkins @ Mobile Dev Camp — video of a presentation about iLoci, an iPhone app and server based on the Method of Loci for constructing a Memory Palace, presented at Mobile Dev Camp in Amsterdam.
- Chaim Gingold described my work with SimCity, The Sims and pie menus in his PhD dissertation on “Play Design”:
Open Sourcing SimCity, by Chaim Gingold
Excerpt from page 289–293 of “Play Design”, a dissertation submitted in partial satisfaction of the requirements for…
NutritionQuest / Alive-PD / Turnaround Health Diabetes Prevention Program
- Turnaround Health Diabetes Prevention Program — web site.
- Turnaround Health — Diabetes Prevention Program Overview — video overview of Turnaround Health.
- Published Research and Trial Results — peer reviewed publications about clinical trials. Turnaround Health provides the only commercially available, electronic diabetes prevention program to show significant effects on HbA1c and glucose in a randomized, controlled trial.
- A Fully Automated Diabetes Prevention Program, Alive-PD: Program Design and Randomized Controlled Trial Protocol — Journal of Medical Internet Research, research protocols paper.
- Diabetes Prevention and Weight Loss with a Fully Automated Behavioral Intervention by Email, Web, and Mobile Phone: A Randomized Controlled Trial Among Persons with Prediabetes — Journal of Medical Internet Research, trial results #1.
- Improving diet, activity and wellness in adults at risk of diabetes: randomized controlled trial — Nutrition & Diabetes, trial results #2.
Pie Menus and Gestural User Interfaces
Designed, programmed, evaluated, published, and evangelized pie menus for many different platforms, toolkits, frameworks, applications and devices.
- An Empirical Comparison of Pie vs. Linear Menus — peer reviewed publications about pie menus presented at ACM CHI’88 Conference, Washington DC, 1988, which shows pie menus significantly reduce seek time and lower error rates, by fixing the distance factor and increasing the target size in Fitts’s Law. (research paper writing sample)
- The Design and Implementation of Pie Menus — Dr. Dobb’s Journal, Dec. 1991 — article about pie menus, lead cover story, user interface issue. (article writing sample)
- The Sims Pie Menu Demo (* 10m 9s) — video demo of pie menus for The Sims.
- jQuery Pie Menu Documentation — wiki page describing the structure, usage and APIs of jQuery pie menus. (documentation writing sample)
- Unity3D Pie Menu Demo — video demo of pie menus for Unity3D, implemented in C#.
- MediaGraph Music Navigation with Pie Menus Prototype developed for Will Wright’s Stupid Fun Club — video demo of MediaGraph, which uses Unity3D nested hierarchical pie menus to build and edit another kind of geographic networked pie menu.
- Connected TV — Palm Pilot app with touch screen pie menus for navigating a personalized TV guide and operating a universal consumer IR remote control.
- Pet Rock Remote Control — video demo showing PocketPC app with pie menu remote control touch screen interface for sending commands to pet rocks.
- X11 SimCity Demo — video demo showing TCL/Tk pie menus in X11 SimCity.
- NeWS Tab Window Demo — video demo of tab windows with pie menus for NeWS, written in PostScript.
- Ben Shneiderman introduces Pie Menus developed by Don Hopkins at UMD Human Computer Interaction Lab — video demos of various pie menus developed at the UMD HCIL.
- Just the Pie Menus from All the Widgets — video demos of pie menus from Brad Myers’ video tape “All The Widgets” CHI ’90 Special Issue #57 ACM SIGGRAPH Video Review.
- PSIBER Space Deck Demo — video demo of a visual NeWS PostScript debugging environment with pie menus, described in the paper “The Shape of PSIBER Space” presented at the 1989 USENIX Monterey Graphics Workshop. (research paper writing sample)
- HCIL Demo — HyperTIES Authoring with UniPress Emacs on NeWS — video demo of a hypermedia browser and authoring tool using pie menus, developed at HCIL under the direction of Ben Shneiderman.
- X10 Pie Menu Window Manager — video demo of an X10 window manager supporting pie menus, developed at the UMD Heterogeneous Systems Group, under the direction of Mark Weiser.
- Pie Menu Experiment — video demo of the software I developed to Jack Callahan’s design, implemented with an X10 window manager scripted in FORTH (FORTH coding sample), to perform the experiment described in the paper “An Empirical Comparison of Pie vs. Linear Menus”.
- The X-Windows Disaster — chapter from the Unix-Haters Handbook comparing X-Windows and NeWS. (technical comedy writing sample)
Interactive Computer Performance Art
Most of this stuff is pretty hard to explain, so it will have to speak for itself, since it’s art.
- Cellular Automata: interactive painting with live real time cellular automata.
- Cellular Automata Demo — video demo of the real time Cellular Automata Machine, written in C with DirectX on Windows, developed by Don Hopkins for performing live graphics to music.
- Don Hopkins’ Cellular Automata and Video Feedback Demo Reel — video demo of various Cellular Automata Machine implementations, including an Adobe AfterEffects plug-in, SimCity tiles and city editing tools, DirectX real time painting tool, and mixed with real time video processing effects including FreakyPutty, WarpOMatic, chroma keying and video feedback.
- HyperLook Demo — video demo of SimCity running under the HyperLook user interface development system, based on NeWS PostScript, running on a SPARCstation 2. Includes a demonstration of editing HyperLook graphics and user interfaces, the HyperLook Cellular Automata Machine, and the HyperLook Happy Tool. Also shows The NeWS Toolkit applications PizzaTool (PostScript coding sample) and RasterRap.
- WarpOMatic: interactive warped video feedback with chroma-keyed background removal against retroreflective fabric, performed live to music, implemented in C and PowerPC AltiVec on MacOS.
- WarpOMatic Demo 1
- WarpOMatic Demo 2
- WarpOMatic Demo 3