Me, hard at work
Projects
Pin insertion task and simulator
Perceptual Rendering for Learning Haptic Skills IEEE Haptics Symposium, 2008
We approach the problem of creating haptic simulators that effectively impart skill without requiring high-fidelity devices by identifying perceptually salient events that signal transitions in the interaction. By augmenting these events, we seek to overcome deficiencies in the fidelity of the rendering hardware. We present an extension of event-based haptic rendering to noncollision events, and we describe a user-study of the training effectiveness of passive force-field haptic simulation vs. active eventaugmented simulation in a tool-manipulation task. The results indicate that active augmentation improves skill transfer without requiring an increase in the quality of the rendering device.
Augmented PONG!
An Event Architecture for Distributed Interactive Multisensory Rendering International Symposium on Mixed and Augmented Reality (ISMAR 2006), 2006
We describe an architecture for coping with latency and asynchrony of multisensory events in interactive virtual environments. We propose to decompose multisensory interactions into a series of discrete, perceptually significant events, and structure the application architecture within this event-based context. We analyze the sources of latency, and develop a framework for event prediction and scheduling. Our framework decouples synchronization from latency, and uses prediction to reduce latency when possible. We evaluate the performance of the architecture using vision-based motion sensing and multisensory rendering using haptics, sounds, and graphics. The architecture makes it easy to achieve good performance using commodity off-the-shelf hardware.
Over 2000 non-convex objects start to pour out of a hopper
Fast Frictional Dynamics for Rigid Bodies ACM Transactions on Graphics (ACM SIGGRAPH 2005), 2005
We describe an efficient algorithm for the simulation of large sets of non-convex rigid bodies. The algorithm finds a simultaneous solution for a multi-body system that is linear in the total number of contacts detected in each iteration. We employ a novel contact model that uses mass, location, and velocity information from all contacts, at the moment of maximum compression, to constrain rigid body velocities. We also develop a new friction model in the configuration space of rigid bodies. These models are used to compute the feasible velocity and the frictional response of each body. Implementation is simple and leads to a fast rigid body simulator that computes steps on the order of seconds for simulations involving over one thousand non-convex objects in high contact configurations.
The knight does his thing
Interactive Character Animation With Vision (ACM SIGGRAPH Symposium on Computer Animation 2004) - Demo
To explore the effectiveness of novel methods of human-computer interaction, we implemented a human-like avatar that dynamically responds to the actions of its audience.
Motions are synthesized to move the character toward the carrot
MoDB: Database System For Synthesizing Human Motion (ICDE'05) - Demo
Enacting, capturing, and processing real motion for all all potential character animation scenarios is prohibitively expensive. The motion-graph method (resequencing pieces of a large pool of recorded motions to create a desired motion) has become a popular method for motion synthesis. To construct the graph of feasible transitions, however, all feasible transitions must be fixed in advance; we present a method that leverages the capabilities of a database management system to allow for run-time determination of transition feasibility. This approach allows a dynamic tradeoff between the motion feasibility (in terms of its appearance to the audience) and the degree to which the animation performs the desired action.
A robot navigates using the RAM algorithm
Efficient Reinforcement Learning with Relocatable Action Models (AAAI-07)
Realistic domains for learning possess regularities that make it possible to generalize experience across related states. This paper explores an environment-modeling framework that represents transitions as state-independent outcomes that are common to all states that share the same type. We analyze a set of novel learning problems that arise in this framework, providing lower and upper bounds. We single out one particular variant of practical interest and provide an efficient algorithm and experimental results in both simulated and robotic environments.
Acquired haptic data is registered with the surface model
Standardized Evaluation of Haptic Rendering Systems (HAPTICS'06)
As a part of the data processing pipeline for the analysis of haptic rendering algorithms, we use the HAVEN to acquire laser-scanned surface data and user-guided force-probe data. These data are combined to create models for haptic rendering of the real-world objects.
Acquired haptic data is registered with the surface model
Neural Information Visualization
With Prof. Jennifer Groh of Dartmouth (now Duke), we are investigating how information about sound location is encoded in the spike trains of neurons in the inferior colliculus, auditory cortex, lateral intraparietal cortex, and superior colliculus during saccades to sounds. We are experimenting with methods of visualizing both the raw recorded neuron activity and processed overviews of the data trends
Teaching

CS 105 Spring '07 Great Insights in Computer Science
Pointers
Canadian Dollar vs. US Dollar High-Water Marks
July 23, 1877 (1.0612) Reached November 2, 2007
June 01, 1877 (1.0637) Reached November 2, 2007
May 31, 1877 (1.0650) Reached November 2, 2007
May 29, 1877 (1.0675) Reached November 2, 2007
May 28, 1877 (1.0687) Reached November 5, 2007
May 26, 1877 (1.0700) Reached November 5, 2007
May 17, 1877 (1.0712) Reached November 6, 2007
May 12, 1877 (1.0725) Reached November 6, 2007
May 11, 1877 (1.0738) Reached November 6, 2007
April 25, 1877 (1.0750) Reached November 6, 2007
April 24, 1877 (1.0787) Reached November 6, 2007
December 18, 1876 (1.0800) Reached November 6, 2007
December 07, 1876 (1.0812) Reached November 6, 2007
December 06, 1876 (1.0825) Reached November 7, 2007
December 05, 1876 (1.0850) Reached November 7, 2007
December 04, 1876 (1.0875) Reached November 7, 2007
December 02, 1876 (1.0887) Reached November 7, 2007
December 01, 1876 (1.0900) Reached November 7, 2007
November 27, 1876 (1.0925)
November 25, 1876 (1.0937)
November 24, 1876 (1.0951)
November 23, 1876 (1.0963)
November 21, 1876 (1.0975)
November 20, 1876 (1.0988)
November 08, 1876 (1.1012)
October 20, 1876 (1.1088)
October 19, 1876 (1.1125)
October 18, 1876 (1.1325)
April 15, 1876 (1.1349)
April 03, 1876 (1.1362)
April 01, 1876 (1.1387)
March 30, 1876 (1.1400)
March 29, 1876 (1.1413)
March 25, 1876 (1.1438)
March 18, 1876 (1.1450)
March 17, 1876 (1.1463)
March 14, 1876 (1.1500)
December 02, 1875 (1.1525)
November 30, 1875 (1.1562)
November 03, 1875 (1.1587)
November 01, 1875 (1.1637)
October 30, 1875 (1.1650)
October 28, 1875 (1.1663)
October 19, 1875 (1.1675)
October 18, 1875 (1.1688)
October 16, 1875 (1.1700)
October 08, 1875 (1.1712)
October 05, 1875 (1.1762)
June 10, 1873 (1.1774)
June 09, 1873 (1.1799)
June 07, 1873 (1.1812)
June 06, 1873 (1.1825)
May 29, 1873 (1.1850)
May 26, 1873 (1.1862)
April 15, 1873 (1.1888)
April 12, 1873 (1.1912)
August 08, 1870 (1.1963)
August 06, 1870 (1.2137)
August 05, 1870 (1.2151)
August 04, 1870 (1.2200)
July 20, 1870 (1.2262)
July 18, 1870 (1.2274)
January 10, 1870 (1.2324)
December 11, 1869 (1.2338)
December 09, 1869 (1.2387)
December 08, 1869 (1.2399)
November 27, 1869 (1.2513)
November 25, 1869 (1.2575)
November 24, 1869 (1.2663)
November 23, 1869 (1.2687)
November 17, 1869 (1.2713)
November 16, 1869 (1.2724)
November 09, 1869 (1.2737)
November 03, 1869 (1.2763)
November 02, 1869 (1.2801)
November 01, 1869 (1.2837)
October 30, 1869 (1.2925)
October 28, 1869 (1.2950)
October 27, 1869 (1.3012)
October 26, 1869 (1.3024)
October 25, 1869 (1.3125)
October 23, 1869 (1.3149)
October 22, 1869 (1.3175)
October 07, 1869 (1.3200)
September 24, 1869 (1.6250)
June 18, 1866 (1.6776)
March 17, 1865 (1.6849)
March 16, 1865 (1.7699)
March 14, 1865 (1.8501)
March 13, 1865 (1.9099)
March 11, 1865 (1.9175)
March 09, 1865 (1.9623)
March 08, 1865 (1.9751)
March 07, 1865 (1.9900)
March 01, 1865 (2.0101)
February 28, 1865 (2.0325)
February 18, 1865 (2.0576)
February 15, 1865 (2.0648)
February 14, 1865 (2.0877)
February 11, 1865 (2.0899)
February 10, 1865 (2.1151)
February 09, 1865 (2.1327)
February 08, 1865 (2.1349)
February 07, 1865 (2.1650)
January 28, 1865 (2.2002)
January 16, 1865 (2.2090)
January 13, 1865 (2.2198)
January 11, 1865 (2.2376)
January 10, 1865 (2.2599)
January 09, 1865 (2.2738)
January 07, 1865 (2.2748)
January 06, 1865 (2.2936)
January 04, 1865 (2.3375)
December 16, 1864 (2.3474)
December 15, 1864 (2.3776)
December 10, 1864 (2.3923)
December 09, 1864 (2.4237)
December 08, 1864 (2.4278)
December 07, 1864 (2.4301)
November 15, 1864 (2.4402)
November 14, 1864 (2.4661)
November 10, 1864 (2.5297)
November 09, 1864 (2.6001)
August 06, 1864 (2.6178)
July 20, 1864 (2.6378)
July 19, 1864 (2.6874)
July 13, 1864 (2.7300)
July 12, 1864 (2.8201)
July 11, 1864 (2.8498)