I’m a Computer Science PhD student at Carnegie Mellon University, advised by Keenan Crane. My research is in applied geometry, designing new algorithms to process geometric data like 3D meshes or point clouds. I apply these techniques to solve geometric problems in computer graphics/vision, scientific computing, and computational fabrication. My work is currently supported by an NSF Graduate Research Fellowship.
Previously, I was an undergraduate at Virginia Tech, where I worked with T.M. Murali on computational systems biology, and was active in competitive programming. Outside of work, I’m a big fan of long-distance running, hockey, and cooking.
A Laplacian for Nonmanifold Triangle Meshes
Symposium on Geometry Processing (SGP 2020)Best Student Paper Award
We extend intrinsic triangulations to apply to any triangle mesh, even those that are nonmanifold and have boundary—the resulting high-quality Laplacian improves the performance and robustness of many algorithms. This strategy also yields a point cloud Laplacian with similar properties!pdf talk code (C++) code (python)
PointTriNet: Learned Triangulation of 3D Point Sets
European Conference on Computer Vision (ECCV 2020)
What if we tried deep point set triangulation? PointTriNet presents a classifier + proposal architecture, iteratively generating triangles in a mesh. The method is general, scalable, and differentiable, serving as a triangulation layer for 3D learning.project pdf (18mb) code talk supplement bibtex arxiv
Variational Surface Cutting
ACM Trans. on Graph. (SIGGRAPH 2018)
Good surface cuts are short, yet allow a shape to be flattened with little distortion. Here, we show shape optimization can be applied to the Yamabe equation to directly compute smooth cuts with arbitrarily low distortion.pdf code talk shape opt tutorial derivations
Xtalk: a path-based approach for identifying crosstalk between signaling pathways
Pathways on demand: automated reconstruction of human signaling networks
npj Systems Biology and Applications 2016
A C++ header-only parser for the .ply file-format. Includes reading and writing in plaintext or binary mode, general and mesh-specific elements, and automatic type promotion.code