Prospective Students
Research Areas
My lab works on forward and differentiable graphics simulation, 3D representation learning, foundation models for graphics, neural fields, multimodal generative AI, and world action models. Before reaching out, please read my recent publications and honestly assess whether your interests and background align with our lab’s: I blacklist spam messages where research interests clearly don’t fit.
I do not personally admit students into our programs: all candidates must apply directly to a McGill graduate program. I can supervise students in the ECE Department and the School of Computer Science. I am a Core Member of Mila and so students I (co-)supervise are eligible to obtain Mila Core Student status through me.
⚠️ How to Contact Me
Do not cold-call or cold-email me. Anyone who does will be permanently blacklisted.
To be considered, you must first complete a technical interview: choose any two of the four tasks below and submit them as a single, self-contained Jupyter Notebook, with filename firstname-lastname.ipynb. Send it to me by email with subject line equal to the filename (e.g., jane-doe.ipynb).
Technical Interview Tasks
Task 1 — Rasterization Implement a triangle rasterizer from scratch, including z-buffering and perspective-correct per-vertex attribute interpolation. Use it to implement a shading model or visual effect, and render a compelling image.
Task 2 — Neural Image Fitting Train a compact neural network to overfit to the McGill logo. Any architectural, loss, and optimization choices are permitted; all design decisions must be explicitly motivated, and key choices should (where appropriate) be ablated.
Task 3 — Differentiable Gaussian Splatting Implement a simple differentiable 2D Gaussian splatting algorithm and use it to overfit to the McGill logo.
Task 4 — Path Tracing Implement a path tracer with next-event estimation and diffuse BRDFs, plus at least two additional features (e.g., advanced BRDFs, variance reduction, emissive geometry, participating media). Render a compelling image.
Open Positions
PhD students are guaranteed funding; details vary by program — see the ECE PhD and COMP PhD program pages. Apply directly to McGill and name me in your application.
Master’s students are funded on a case-by-case basis depending on the project and specific program.
Postdocs are funded. I will prioritize candidates who have secured or are actively pursuing external fellowships (e.g., NSERC, FRQNT, Banting, Marie Skłodowska-Curie).
Undergraduate students (McGill only) — I take on a small number of McGill undergrads each year, provided they have taken or are concurrently enrolled in at least one of: COMP 557 / ECSE 532, ECSE 446/546, COMP 559, COMP/ECSE 551, or ECSE 552.
Visiting researchers must apply to the McGill Graduate Research Trainee program and include, alongside the technical interview material, a reference letter from their home institution supervisor.
FAQ
What background do you expect? Strong linear algebra, vector calculus, and probability; experience with numerical algorithms; high-performance programming — even via high-level data-parallel libraries (PyTorch, Taichi, Slang.d) is fine; and solid grounding in 3D computer graphics (rendering, geometry, animation) and/or machine learning.
Are you open to co-supervision? Yes. If you have a potential co-supervisor in mind, mention them explicitly in your email.
Can I join with my own funding? Yes, and I will prioritize your application. Still complete the technical interview.
I want to work on something not listed under your research areas. Is that OK? Probably not — please read my recent publications carefully before applying. If you are genuinely uncertain whether your topic fits, say so explicitly in your email.
Do I need to apply to McGill before contacting you? No — send the technical interview first. If we decide to move forward, I will guide you through the application process.