My passion and focus these past years has always been in designing and developing interfaces and interaction techniques for exploring, experimenting, and creating with traditionally complex (and sometimes unwieldy) computational algorithms. My interests in AI, interactive media, and graphics have lead to a focus on creating reactive and intelligent interfaces and systems for these areas of computation. Ultimately, I want to connect novice users to powerful computational systems that simultaneously inspire and reveal the full capabilities of these incredible technologies.

Feel free to browse each of the project pages below - almost all of them have some videos, screenshots, design illustrations, or downloadable demos to check out.

Dissertation Work

  • Wide Ruled, an interactive story authoring and generation application based on the Universe story generation model. This project focuses on providing a simple and usable interface to the complex and powerful underlying generation model, that can be utilized by authors with little or no computer programming experience.
  • Story Canvas, a comic/storyboard-based interactive, generative story authoring interface based on the same underlying story model of Wide Ruled. This research focuses on developing and evaluating completely visual authoring techniques and smart interface features for the underlying plan-based story generator. It builds off of the lessons learned from Wide Ruled, and sets the stage for a more complex story model in future work.
  • Beyond Story Canvas. As part of my research, I have explored the potential for the future of my research. This collection of illustrations demonstrate features and designs for the future evolution of Story Canvas. Some of the features here are currently being explored and prototyped to evaluate their feasibility as practical authoring or reading experiences.
  • Defining, Designing, and Evaluating Realism for Virtual Supporting Characters. This additional part of my research targets the previously unexplored concept of Supporting Character Realism, in which virtual characters act and interact in a convincing, consistent, and human-like manner in order blend into the background activity of a virtual world. This work is inspired by hybrid controller scenarios where humans work with in tandem AI systems, trading off control of avatars interacting with human trainees in virtual environments.

Previous Projects

  • Facial Type, Expression, and Viseme Generation, a method of generating new and arbitrary face shapes from a sparse set of initial real-world data. This work focuses on attaching concrete, human-readable parameters to abstract geometric variation in face meshes.
  • Interactive Thin Shells, an interface for the analysis of physically-based animations. This project, my Master's thesis at Cal Poly, San Luis Obispo, focused developing a novel way of interacting with physically-based animation algorithms, that allows for free-form and real-time experimentation and modification of all relevant local and global simulation parameters.
  • Transient Rendering, a formal model of light transport, taking into account a non-infinite speed of light. In this work, my colleague Adam Smith and I introduce a physically-relevant generalization of the rendering equation and a method for approximating this equation, and define a summary measure of transient light patterns, which is used as a basis for a general sensor model.
  • A High Population, Fault Tolerant Parallel Raytracer. This (really old) project and resulting paper focused on the design of a distributed raytracer that exhibits a fault-tolerant and dynamically-scalable three-tier architecture. The best part of creating this system was a fun live demo where we ran our raytracer on 50 or so machines and randomly unplugged some of them from the network to simulate a series of “faults”. Our software handled this abuse quite well!


  • WebGL Iteration. This is a real-time WebGL remix (a port with some visualization differences) of an existing Android-based iterative function visualizer called Iteration, by my colleague Adam Smith. Move your cursor over the visualization window to change two function parameters (bound to the x and y changes of your cursor), then click and move your cursor to change two other parameters! Warning: For reasonable performance, this demo requires either a dedicated nVidia/ATI/AMD or a recent Intel (HD 3000 or later) graphics card!
  • Photography. Although mostly unrelated to my technical pursuits, I also have a passion for photography, which lets me explore composition, color, and aesthetics beyond the computer screen.
portfolio.txt · Last modified: 2014/11/25 14:44 by James
Trace: Portfolio
Driven by DokuWiki