Don Hopkins Portfolio

Portfolio of software design and development examples by Don Hopkins.

Resume

Pantomime

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.

The Sims

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):

In-game, end-user tools (tools built into the game, used by players, released):

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.
  • Transmogrifier OLE Automation Documentation — documents the OLE API that enables Windows apps and web pages to control Transmogrifier, script Sims object previewing and creation tools in JavaScript or other languages, and implement tools like ShowNTell and RugOMatic.
  • 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.

Collaboration with Will Wright (DUX, Maxis, EA, Stupid Fun Club, OLPC, MediaGraph, Syntertainment)

Worked with Will Wright at several companies on various projects.

NutritionQuest / Alive-PD / Turnaround Health Diabetes Prevention Program

Pie Menus and Gestural User Interfaces

Designed, programmed, evaluated, published, and evangelized pie menus for many different platforms, toolkits, frameworks, applications and devices.

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.
  • JavaScript Cellular Automata Machine (CAM6) Simulator — live demo! Based on the original CAM6 hardware developed by Toffoli and Margolus, described in their book “Cellular Automata Machines: A New Environment for Modeling”. See the comments in the source code for more explanation and documentation of its architecture and features.
  • CAM6 GitHub Repo — source code of CAM6 simulator. (JavaScript coding sample)
  • 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

User interface flower child. Pie menus, PizzaTool, SimCity, The Sims, Visual Programming, VR, AR, Unity3D / JavaScript bridge.