I’m a researcher in geometry processing, computer graphics/vision, and 3D machine learning. My work seeks new algorithms and new representations to make computing with geometric data easy, efficient, and reliable. Currently, I’m a Senior Research Scientist at NVIDIA, based out of Seattle, WA.

Previously I received my PhD in Computer Science from Carnegie Mellon University advised by Keenan Crane, and was a postdoc in the University of Toronto DGP with Alec Jacobson. Even earlier, 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.


Research

teaser img

Spelunking the Deep: Guaranteed Queries on General Neural Implicit Surfaces via Range Analysis

Nicholas Sharp and Alec Jacobson

ACM Trans. on Graph. (SIGGRAPH 2022)

Best Paper Award

Efficiently evaluate geometric queries like ray casting, intersection testing, closest-point, and more on existing neural implicit surface architectures. Works on general (not-necessarily-SDF) networks, so it can be used e.g. for occupancy networks or after random initialization.

teaser img

DiffusionNet: Discretization Agnostic Learning on Surfaces

Nicholas Sharp, Souhaib Attaiki, Keenan Crane, Maks Ovsjanikov

ACM Trans. on Graph. (SIGGRAPH 2022)

Simple and scalable deep learning on meshes, points clouds, etc., via spatial diffusion. The networks automatically generalize across different samplings, resolutions, and even representations. Spatial support is automatically optimized as a parameter!

teaser img

Integer Coordinates for Intrinsic Geometry Processing

Mark Gillespie, Nicholas Sharp, Keenan Crane

ACM Trans. on Graph. (SIGGRAPH Asia 2021)

Intrinsic triangulations are great for robust mesh processing—now we can represent them via integers, escaping many pitfalls of floating point and offering a strong guarantee of validity while remaining fast and general.

teaser img

Geometry Processing with Intrinsic Triangulations

Nicholas Sharp, Mark Gillespie, Keenan Crane

SIGGRAPH 2021 Course, IMR 2021 Course

Intrinsic triangulations encode a mesh’s geometry via edge lengths rather than vertex positions, enabling new robust algorithms and much more. This course gives a general overview, covering core theory, implementation, and the latest research.

teaser img

Intrinsic Triangulations in Geometry Processing

Nicholas Sharp

PhD Thesis, Carnegie Mellon University

This thesis treats the theory and practice of intrinsic triangulations, with applications to robust geometric computing. It describes new techniques including representations, retriangulation schemes, flip-based algorithms, and generalizations.

teaser img

You Can Find Geodesic Paths in Triangle Meshes by Just Flipping Edges

Nicholas Sharp and Keenan Crane

ACM Trans. on Graph. (SIGGRAPH Asia 2020)

A simple greedy strategy of intrinsic edge flips will provably shorten a given path, loop, or curve network to an exact, locally-shortest geodesic. The procedure also generates a triangulation with these geodesics as edges, which is useful for many applications.

teaser img

A Laplacian for Nonmanifold Triangle Meshes

Nicholas Sharp and Keenan Crane

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!

teaser img

PointTriNet: Learned Triangulation of 3D Point Sets

Nicholas Sharp and Maks Ovsjanikov

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.

teaser img

Navigating Intrinsic Triangulations

Nicholas Sharp, Yousuf Soliman, Keenan Crane

ACM Trans. on Graph. (SIGGRAPH 2019)

We describe a data structure for encoding high-quality intrinsic triangulations on top of a low-quality input mesh. This data structure serves as a black box for robust geometric computation.

teaser img

The Vector Heat Method

Nicholas Sharp, Yousuf Soliman, Keenan Crane

ACM Trans. on Graph. (SIGGRAPH 2019)

We show that parallel transport is effectively computed via short-time heat flow. In turn, this leads to efficient algorithms for velocity extension, computing the log map, and much more.

teaser img

Variational Surface Cutting

Nicholas Sharp, Keenan Crane

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.

teaser img

Xtalk: a path-based approach for identifying crosstalk between signaling pathways

Allison N Tegge, Nicholas Sharp, TM Murali

Bioinformatics 2016

teaser img

Pathways on demand: automated reconstruction of human signaling networks

Anna Ritz, Christopher L Poirel, Allison N Tegge, Nicholas Sharp, Kelsey Simmons, Allison Powell, Shiv D Kale, TM Murali

npj Systems Biology and Applications 2016



Software

teaser img

Polyscope

2022 SGP Software Award Winner

A C++ & Python viewer and user interface for the rapid prototyping and debugging of geometric algorithms in 3D geometry processing. The lofty objective of Polyscope is to offer a useful visual interface to your data via a single line of code.

teaser img

Geometry Central

A modern C++ codebase providing the low-level tools to implement algorithms in geometry processing, scientific computing, and computer graphics/vision, with a particular focus on the geometry of surfaces.

teaser img

Potpourri3D

A collection of Python bindings to useful 3D geometry algorithms, including many geometry-central functions and several of the research algorithms above.

teaser img

Happly

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.