Coding

An overview of my research interests and software projects


Autodesk Research – Complex Systems

I currently work for Autodesk Research, where I study the following topics:

  1. How to develop computer simulations of complex systems.
  2. How to use simulation to improve the built environment.

A complex system is any system where different types of things interact over time. Here’s an example of a complex system simulation that captures the flow of heat through a building as well as the movement and actions of the building’s occupants.

(18 seconds, no sound)
Want to know more about my research? Check out the following links and selected papers.


Carleton University – Computational Biology

In 2009, I completed a master’s degree in biomedical engineering at Carleton University. Under the supervision of Prof. Gabriel Wainer, my research focused on the simulation of deformable biological structures.

Below is a simulation of a single presynaptic terminal of a nerve cell. There are hundreds of trillions of these in your brain. Inside are synaptic vesicles (green) that get bound together by synapsin protein (blue). Every 5 seconds or so in the video, a signal called an action potential breaks some of the vesicle-synapsin bonds and causes a few vesicles to fuse with the membrane.

(45 seconds, no sound)
To implement the simulation, I developed a method called the Tethered Particle System.

As shown below, there are three basic types of interactions between particles: blocking collisions (two particles bouncing off one another); tethering collisions (two particles bouncing towards one another as if “tethered” by an invisible cord); and revolution (two particles spinning around one another).

The three types of collisions, each simulated using two different coefficient of restitution values.

These three simple interactions can be used to simulate biological processes such as the self-assembly of vesicle clusters in presynaptic compartments.

The Tethered Particle System is similar to a method called Discrete Molecular Dynamics, though I was hoping to accommodate deformable structures at larger scales. See the examples below:


Feel free to download my thesis, or take a look at my related papers on the ARSLab Publications Page.


Programming Language Design

For many years now I’ve been interested in designing a programming language for scientific computing. My language would allow algorithms to be expressed using a combination of conventional and novel mathematical notations. For an example of how this could work, see my solution to the n-Queens problem (PDF).