I'm a software developer and a graphics researcher, with a taste for free and open source software.
I'm also a PhD candidate at the University of British Columbia.
My interests include physically-based animation, geometry processing and software enginnering
especially as it applies to scientific computing.
...

D. K. Pai,
A. Rothwell,
P. Wyder-Hodge,
A. Wick,
Y. Fan,
E. Larionov,
D. Harrison,
D. R. Neog,
C. Shing,
ACM Transactions on Graphics (SIGGRAPH)
2018, PDF • Video

Sat, Jan 1, 2022
Uri M. Ascher, Egor Larionov, Seung Heon Sheen, and Dinesh K. Pai We examine a variety of numerical methods that arise when considering dynamical systems in the context of physics-based simulations of deformable objects. Such problems arise in various applications, including animation, robotics, control and fabrication. The goals and merits of suitable numerical algorithms for these applications are different from those of typical numerical analysis research in dynamical systems. Here the mathematical model is not fixed a priori but must be adjusted as necessary to capture the desired behaviour, with an emphasis on effectively producing lively animations of objects with complex geometries.

Mon, Oct 4, 2021
Seung Heon Sheen, Egor Larionov and Dinesh K. Pai Simulation of human soft tissues in contact with their environment is essential in many fields, including visual effects and apparel design. Biological tissues are nearly incompressible. However, standard methods employ compressible elasticity models and achieve incompressibility indirectly by setting Poisson’s ratio to be close to 0.5. This approach can produce results that are plausible qualitatively but inaccurate quantatively. This approach also causes numerical instabilities and locking in coarse discretizations or otherwise poses a prohibitive restriction on the size of the time step.

Thu, Apr 29, 2021
Egor Larionov, Ye Fan and Dinesh K. Pai Frictional contact between deformable elastic objects remains a difficult simulation problem in computer graphics. Traditionally, contact has been resolved using sophisticated collision detection schemes and methods that build on the assumption that contact happens between polygons. While polygonal surfaces are an efficient representation for solids, they lack some intrinsic properties that are important for contact resolution. Generally, polygonal surfaces are not equipped with an intrinsic inside and outside partitioning or a smooth distance field close to the surface.

Sat, Mar 6, 2021
I developed the following plugins for Houdini to aid my research in soft tissue simulation. I plan to open source these tools at some point. But for the time being the binaries are here for those that need them.
Installation The following instructions explain how to install Houdini plugins on various platforms.
Linux After downloading the appropriate plugin binary, simply drop it into your ~/houdini18.5/dso folder. To make sure that Houdini sees the plugins, create a symlink to the versioned library with

Tue, Jan 28, 2020
I am a 3D software developer by trade, with a profound interest in physically based animation and geometry processing. I’m currently a PhD candidate at the University of British Columbia supervised by Dinesh K. Pai. I hold a Master’s degree in Mathematics from the University of Waterloo. There I was a part of the Computational Motion Group supervised by Christopher Batty. I received a B.Math. degree majoring in Pure Mathematics and Computer Science with a minor in Physics, also at the University of Waterloo in 2013.

Sun, Aug 12, 2018
Dinesh K. Pai, Austin Rothwell, Pearson Wyder-Hodge, Alistair Wick, Ye Fan,
Egor Larionov, Darcy Harrison, Debanga Raj Neog, and Cole Shing
Simulating how the human body deforms in contact with external objects, tight clothing, or other humans is of central importance to many fields. Despite great advances in numerical methods, the material properties required to accurately simulate the body of a real human have been sorely lacking. Here we show that mechanical properties of the human body can be directly measured using a novel hand-held device.

Sun, Jul 30, 2017
Egor Larionov*, Christopher Batty* and Robert Bridson (*Joint first authors)
We propose a novel unsteady Stokes solver for coupled viscous and pressure forces in grid-based liquid animation which yields greater accuracy and visual realism than previously achieved. Modern fluid simulators treat viscosity and pressure in separate solver stages, which reduces accuracy and yields incorrect free surface behavior. Our proposed implicit variational formulation of the Stokes problem leads to a symmetric positive definite linear system that gives properly coupled forces, provides unconditional stability, and treats difficult boundary conditions naturally through simple volume weights.

Sun, Jul 10, 2016
Liquid simulation has been an interest of mine for some time now. Water, maybe the most ubiquitous liquid familiar to us, exhibits many fascinating visual properties. This makes water simulation a very hot topic in the visual effects industry.
In the history of liquid simulation, there hasn’t been one single efficient, clear cut method for simulating water in all its capacity. Each method has its advantages and disadvantages. In the visual effects industry, prominent methods for liquid simulation are grid-based (e.

Mon, Feb 22, 2016
In fall 2014, I took a seminar course in computer graphics, where we reviewed an emerging technology of capturing the propagation of light pulses. This work was sparked in recent years by the work of Velten, Raskar and Bawendi from MIT in their 2011 paper titled “Picosecond camera for time-of-flight imaging”. In response to this work, a team at the University of British Columbia (UBC) developed a much cheaper alternative (with certain limitations) to the hardware setup originally proposed by Velten et al.

Wed, Aug 12, 2015
This summer, I developed an algorithm to tesselate an image with Voronoi regions. I used a weighed Lloyd’s method to distribute the Voronoi regions evenly throughout the image. You can now see the method on a dedicated static page.
The implementation is done entirely in JavaScript using the three.js library as well as dat.gui for exposing different parameters controlling the generated image.
After seeing a series of lectures given by Craig Kaplan on computational stippling methods, in particular on Weighed Voronoi Stippling, I gained an interest in applications for Voronoi diagrams.

Mon, Feb 9, 2015
In winter 2014, I took a course on physically-based simulation, and had the opportunity to work on a fluid simulator project. I finally found some time to organize my work and upload it to GitHub. The project outlines two notable methods in fluid simulation using Smoothed Particle Hydrodynamics (SPH):
“Particle-Based Fluid Simulation for Interactive Applications” by M. Muller, D. Charypar and M. Gross “Weakly Compressible SPH for Free Surface Flows” by M.

Thu, Feb 6, 2014
A few months ago I wrote an implementation of an implicit surface method for shape reconstruction developed, in part, by H. Zhao, S. Osher, B. Merriman, and M. Kang, in their paper (2000) titled “Implicit and Non-parametric Shape Reconstruction from Unorganized Data”. This paper describes a level-set method for reconstructing a surface given a collection of points, curves and surface patches. My implementation deals with points alone and it is written entirely for MATLAB.

Mon, Dec 9, 2013
In an effort to learn more about artificial neural networks, I implemented a simple method to learn the collision response between a pair of circular particles with a constant radius. Although not practically useful, this exercise was enlightening. The details can be found in the writeup:

Mon, Nov 25, 2013
CS 870 is a course at the University of Waterloo that briefly covers numerical PDE solutions, especially to the level set PDE developed by Stanley Osher and James A. Sethian in a paper called “Fronts propagating with curvature-dependent speed” from 1988. I presented two papers for this class (with links to slides):
Implicit Shape Reconstruction Using a Level Set Method (2000) This paper presents a level-set based method to tightly wrap a 3D surface around a set of data points.

Mon, Sep 16, 2013
I decided to typeset the course notes for the Numerical Analysis course (AM740/CM770/CS770) at the University of Waterloo for fall 2013 taught by Hans De Sterck. Use them at your own risk, since they may contain errors:

Sun, Mar 3, 2013
At the end of my undergraduate research semester in the summer of 2012 with IQC, I compiled a talk on classical and quantum information. I tried to start with an introduction to classical information and transition into quantum information on a very basic level. This talk should be appropriate for all audiences with a basic background in linear algebra. These notes on Classical and Quantum Information are somewhat incomplete, and will remain so, unless I give this talk again some day:

Fri, Dec 7, 2012
I implemented a ray tracer with rigid body dynamics for my final CS488 project. Unfortunately I didn’t have time to complete collision detection for all primitives, and could only demonstrate colliding spheres.
Ray Tracer with Rigid Body Dynamics Table of Contents Dynamic Objects Rigid Body Collisions Texture Mapping Bump Mapping Multi-threaded Rendering Intensity Threshold Optimization Antialiasing Additional Primitives Constructive Solid Geometry Rube Goldberg machine Objective 1 & 2: Dynamic Objects Example of two spheres colliding

Sat, Sep 15, 2012
I spent the summer of 2012 as an undergraduate research assistant working under Debbie Leung at the Institute for Quantum Computing. Since then I have decided to pursue a career in computer graphics, although quantum information remains one of my amateur interests. I have compiled the notes I took during this research semester into one document:
There is little organization within these notes, however they summarize some of the necessary background to start the study of quantum information, and include a few proofs of theorems from various Quantum Information books, as well as a few new ideas aimed at proving the continuity of a particular quantum capacity.