Hands On: Interactive Animation of Precision Manipulation and Contact (SCA 2015Best Paper)
Ben Humberston & Dinesh Pai
workflow_setupHumans show effortless dexterity while manipulating objects using their own hands. However, specifying the motion of a virtual character’s hand or of a robotic manipulator remains a difficult task that requires animation expertise or extensive periods of offline motion capture. This paper introduces Hands On: a real-time, adaptive animation interface, driven by compliant contact and force information, for animating contact and precision manipulations of virtual objects.

Self-Refining Games using Player Analytics (ACM SIGGRAPH 2014)
Matt Stanton, Ben Humberston, Brandon Kase, James O’Brien, Kayvon Fatahalian, Adrien Treuille
phonegameFully sampling large simulation spaces is infeasible. However, in applications such as games, users tend to explore only a vanishingly small subset of the dynamical state space. This work presents a sampling approach that takes advantage of this observation by concentrating precomputation around the states that users are most likely to encounter. We demonstrate this approach in a prototype self-refining game whose dynamics improve with play, ultimately providing realistically rendered, rich fluid dynamics in real-time on a mobile device.

Precision Manipulations Using a Low-Dimensional Haptic Interface (2014)
MSc thesis work with Dinesh Pai
anim_interfaceMy MSc thesis centered on the development & verification of a real-time, adaptive animation interface, specifically designed around haptic (i.e., touch) feedback, for creating precision manipulations of virtual objects. This was the also the basis for Hands On, our SCA 2015 paper.

Automated Grasp Control (Fall 2012)
Investigative work into building fully-automated controllers that can match some aspects of grasp shaping and grip control that humans show when reaching out to grab and manipulate objects in the world. A few of the core ideas from this project were eventually adapted for my thesis work.

Dihaptic: A Virtual Graphic/Haptic Desktop Environment (Spring 2012)
Conducted directed studies with Dinesh Pai in sensorimotor computation before joining the SSL lab at UBC. In addition to learning about quantitative models of motor control and perception, created a virtual desktop environment using Bullet, OpenGL, and custom haptic force algorithms to create tactile feedback when grasping virtual objects with the thumb and index finger. You can see an early version in action here as well as the the more refined setup here. A completely rebooted and much improved version of this project formed the basis of my MSc work. (Writeup PDF)

Poisson Image Editing (Spring 2012)
Basic clone vs. Poisson cloningSparse matrix computation applications can be a bit dry, so I decided on a highly visual application for a related course project. Implemented the Poisson image cloning as described by Pérez et al, 2003 and evaluated the algorithm’s performance when using various sparse solvers. Poisson cloning allows for automated, near-seamless stitching between different images segments; in the sample image, compare the eagle on the left (basic, stupid cloning) with that on the right (automatic Poisson cloning). (Writeup PDF)

2D Swimming Optimization (Fall 2011)
Built a controller optimization framework which determined dynamic joint torques to propel articulated planar characters through a fluid medium (more succinctly: taught virtual 2D people to swim). Building on JBox2D, implemented a simulation that applied drag and buoyancy forces to individual character segments based on their immersion and relative velocity in a fluid. Joint angle trajectories were optimized using covariance matrix adaptation (CMA) with a customizable fitness function (eg: swimming quickly or swimming efficiently) and actuated via angular PD servos. You can find video of some of the resulting swimmers here. The basic paddle-boat and tadpole characters were able to find good techniques, but the human morphology proved too tough optimize without user tuning (with comical flailing results)! This project was a part of CPSC 526: Computer Animation with Michiel van de Panne. (Writeup PDF)