Join Our Research Group!

I am always looking for talented graduate students and postdocs to join our lab, the Computational Motion Group, and contribute to exciting, high-impact research in computer graphics and scientific computing. In addition to working with my students to publish quality research, I aim to help them find success beyond their degrees: students that I have mentored have done internships or taken full-time positions at Side Effects Software, Weta Digital, Snapchat, Waymo, Google, Ubisoft, PointWise, Ziva Dynamics, and Vital Mechanics, while others have continued on to pursue PhD or postdoctoral studies in Canada and abroad.

By the way, whether you are considering joining my lab or not, there are some useful things to consider in the article How to Pick a Graduate Advisor.

Grad students: If you have strong mathematical and programming skills, and are interested in simulating physical processes in the world around us, I encourage you to apply to the University of Waterloo Computer Science program as a Master's (MMath thesis) or PhD student. In your application, specify computer graphics or scientific computing among your research interests, and list me as a potential supervisor. The application process is competitive, and preference will be given to individuals with strong academic records, research experience, or industry/personal experience relevant to our group's areas of interest. Information about the School of Computer Science, its graduate program(s), and the admissions process can be found here. All accepted students receive RA and TA funding, and the CS website gives information about typical funding amounts, tuition and typical cost of living in Waterloo, and potential additional funding sources. Cost of living in Waterloo is relatively low, at least compared to Toronto or Vancouver.

Undergraduates: If you are a current undergraduate student at Waterloo with a strong academic record and interest in physics-based animation, there may be paid research opportunities in the lab (e.g., a part-time Undergrad Research Assistantship (URA) or one-term full-time NSERC USRA). Send me an email to set up a meeting, and describe your research interests and relevant background knowledge/skills. I typically recommend that you contact me 2-3 weeks before the start of the term in which you would like to do a URA, because that's when I begin making decisions for the coming term. If you are an undergraduate at another university, I unfortunately cannot offer internships and usually will not respond to email requests on this subject.

Postdocs: If you have a record of research excellence in computer graphics (e.g., publications in SIGGRAPH (Asia), ACM TOG, Eurographics, TVCG, SCA, SGP, etc.) or a related relevant field (e.g., computational physics, computational mechanics, applied math, etc.), feel free to get in touch by email, and we can discuss further.

Note: In general, if you contact me by email but give no indication that you are aware of or share my research field or interests, I'm afraid I will not respond.

2017 (missing: Yipeng?)

2018 (missing: Jade.)

2019 (missing: Ryan, Sina, Michael.)

FAQ (to be expanded over time)

Q: What kind of projects do group members work on?
A: I'm interested in basically anything to do with physics-based animation, computational physics, and various aspects of geometry processing often related to (re-)meshing, but a great deal of our work so far is related to fluids in some fashion: viscous liquids, surface tension, non-Newtonian fluids, geometric representations of deforming surfaces (meshes, level sets, particles), fluid interaction with deformable objects, hair, cloth, or rigid bodies, spatially adaptive methods (quad/octrees, triangle/tetrahedral meshes), etc. The best way to get a sense is to watch the animations and read the papers on my home page. However, I'm always happy to entertain new ideas and directions!

Q: What kind of technical background is required to work with you?
A: Generally the kinds of skills that are most relevant are those from computer science, applied math, and/or engineering, so things like (partial) differential equations, linear algebra, calculus, algorithm design, geometry, numerical methods, optimization, basic physics, strong coding ability (often C/C++ and Matlab/Mathematica/SciPy, etc.), basic graphics programming (e.g. OpenGL). This older discussion gives a good sense for some fundamental skills that are useful for graphics in general (these days you might want to add machine learning to that list, for example). You need not have all these skills at the start, but all of them can be useful. A great way to get started specifically in physical simulation is to read Bargteil and Shinar's An Introduction to Physics-Based Animation" and the associated video, and to watch David Levin's Physics-Based Animation YouTube course.

Q: Do you do research on visualization or rendering?
A: Most often, no. My main work is focused on generating the underlying geometry and motion via physical simulation. Many other graphics researchers (e.g. Waterloo's own Gladimir Baranoski and Toshiya Hachisuka) study aspects of rendering, the process of taking a scene description and generating a realistic image of that scene. For the most part I use either simple special-purpose OpenGL visualizations for debugging, or 3rd party rendering software for the final videos, such as Houdini, Renderman, Mitsuba, etc. This allows us to focus on physics/animation.

Q: If I want to pursue graduate studies, should I go straight into graduate school after my Bachelor's or work in industry for a while first?
A: There are pros and cons to each. Gaining practical industry experience is a valuable way to sharpen some of your skills and possibly learn more about different potential research areas that might interest you. Industry is often also more financially lucrative than grad school, at least in the short-term. On the other hand, if you are out of the academic sphere for a significant period of time (let's say, >3-4 years) it can sometimes be tougher, though certainly not impossible, to return to a student lifestyle for a variety of (personal, financial, etc.) reasons. There are often also co-op/internship opportunities available during grad school, so one can still gain industry experience as a grad student. Some people ultimately find working in industry to be more rewarding than research, so regardless I usually recommend finding ways to explore both paths if you can. In the end, there's no wrong answers and it will depend on your interests, personality, and particular circumstances.