Work
Full Stack Developer at Butter Creatives, Toronto, Ontario, Sept 2020-Present
- Developed infrastructure for modular creative code components in a browser-based motion graphics video editor
Software Engineering Intern at Figma, San Francisco, California, Sept-Dec 2018
- Added rendering system support for multiple layers of fill styles as backgrounds for components and frames
- Implemented "smart selections," enabling items within selections that look like lists or grids to be rearranged within their detected structure
Software Engineering Intern at Cruise, San Francisco, California, Jan-Apr 2018
- Researched and developed a prototype library for general path planning, creating a quick initial path and using any additional computation time given to improve it
- Visualized interactive search trees generated from the path planner using WebGL, communicating with ROS for input
Software Engineering Intern at Google, Mountain View, California, May-Aug 2017
- Adapted machine learning models for Internet of Things devices
Software Engineering Intern at Remind, San Francisco, California, Sept-Dec 2016
Software Developer Intern at Athos, Redwood City, California, Jan-Apr 2016
Software Developer Intern at Shopify, Ottawa, Canada, May-Aug 2015
Open Source
WebGL Steward for p5.js, July 2022-Present
- Implemented support for framebuffer layers and 3D line caps/joins
- Fixed bugs related to shape and line drawing, shaders, gif handling, and math
- Wrote p5.warp, a library to deform 3D models in real time in shaders
- Wrote p5.buildGeometry, a library to dynamically construct 3D models
- Contributed tutorials, talks, and other learning resources
Miscellaneous, 2015-Present
- Contributed bug fixes and features to rosbag.js, Radiant Player, a Facebook Messenger Mac client and CLI, and Vim Auto-Pairs
Research
StrokeStrip: Joint Parameterization and Fitting of Stroke Clusters
Co-authored with Chenxi Liu, Nicholas Vining, Mikhail Bessmeltsev and Alla Sheffer
SIGGRAPH 2021
- Developed an algorithm to fit clean lines to clusters of sketched vector strokes by modeling a discrete-continuous optimization problem that can be iteratively solved
Controlling Procedural Modelling Interactively with Guiding Curves
Co-authored with Abhishek Madan, Andrew McBurney, Paul Bardea and Tammy Liu
Proceedings of Graphics Interface 2019
- Defined a Sequential Monte Carlo sampling-based search function which lets artists search the output of a 3D model generating grammar in real time by drawing guiding curves