Description
libigl Hackathon
dgp Lab Space, BA5166, Bahen Centre, University of Toronto
Friday 20/3/2020 - Saturday 21/3/2020
Organizers
- Alec Jacobson, jacobson@cs.toronto.edu, University of Toronto
- Daniele Panozzo, panozzo@nyu.edu, New York University
Description
The libigl hackathon is two-day event of intense collaborative programming. We estimate the attendance will be 30–50 people. The targeted audience will be users or future users of the libigl software library. Most participants will have a background in field of geometry processing.
Geometry processing connects rich mathematics and theory to relevant modern applications. A beautiful example of this is the recent progress made in the study of discrete differential geometry. The overarching goal of this topic is develop theories of curvature, shape operators and differential forms for discrete surfaces (e.g., triangulated polyhedra) that mirror analogous theories on smooth surfaces found in traditional differential geometry. Geometry processing serves as the bridge between mathematicians like Ulrich Pinkall and Alexander Bobenko (TU Berlin) and computer scientists like Peter Schröder (CalTech) and Leonadis Guibas (Stanford). This connection to smooth mathematics also provides one separation of geometry processing from its predecessor field of computational geometry.
What is libigl?
Website: http://libigl.github.io/libigl/
Libigl is a library written in the C++ programming language. Established by applicants Alec Jacobson and Daniele Panozzo at ETH Zurich in 2011, libigl’s core design principle is to support replicable research in geometry processing. The most common discrete representation of a surface in geometry processing is a triangle mesh: a collection of connected planar triangles in 3D approximating the surface. Previous geometry processing libraries stored these meshes in a complex way in order to squeeze out performance gains. Unfortunately, it resulted in a zoo of data-structures. Researchers at one lab would need to create ad hoc data structure conversions to use software at another lab. Libigl’s design innovation was to reduce triangle mesh operations to their core linear algebra representation (i.e., matrices). In this way, new functions are always written in terms of input matrices and output matrices. The result was a rabidly growing collection of implementations of state-of-the-art algorithms introduced at the preimier geometry processing publication venues ACM SIGGRAPH and the Symposium on Geometry Processing. Libigl has implementations of over 100 technical papers from these venues.
Flagship algorithms implemented in libigl include state-of-the-art:
- discrete differential geometry operators (e.g., discrete Laplace-Beltrami operator),
- surface flattening and parametrization (i.e., mapping a 3D surface to the 2D plane),
- robust mesh Boolean operations (e.g., determining the intersection of two overlapping shapes),
- geodesic distance calculation, and
- real-time character articulation for animation or geometric modeling.
Libigl is now maintained by a collective of researchers around the world, led by the Fields Institute CQAM Lab for Geometry Processing & Fabrication directed by Alec Jacobson and Geometry Computing Lab directed by Daniele Panozzo at NYU.
Due to libigl’s design around the concept of fast prototpying for researchers, it has a low barrier to entry. As a result, libigl enjoys popularity around the world. As a quantitative metric, on the github software hosting website, libigl has 2.1k Stars , 655 Forks, and averages around 100+ downloads per day. The conda package for libigl was released in summer 2019, and already has over 10k downloads . Libigl has been recognized with citations in academic papers over 100 times according to Google Scholar. In 2015, libigl was granted the prestigious Symposium on Geometry Processing Software Award.
We have offered courses on libigl at top conferences including ACM SIGGRAPH Asia, Eurographics, Symposium of Geometry Processing, and Graphics Interface. Libigl is used industry by companies such as: Autodesk, MESH Inc., nervous systems, Pixar, Epic Games, Industrial Light and Magic, Activision, Google, Disney, Adobe, and Microsoft, as well as by academic research labs such as: CMU, MIT, Cornell, ETH Zurich EPFL, Ubisoft, UT Austin, and UC Berkeley.
What is a hackathon?
A traditional hackathon is an event in which computer programmers collaborate intensively on a software project. Typically, the goal of a hackathon is to create a working demo, application, or library by the end of the event. Traditional hackathons are focused around a central theme such as an application topic (e.g., health-care apps) or programming language (e.g., C++).
At the libigl hackathon event, our central theme will be the libigl library. The goal for participants will be to:
- add a new functionality to library,
- implement a recent geometry processing research publication using libigl,
- develop an application using libigl, or
- integrate libigl within another application/software.
Example participant proposals
We expect that participants will bring their own proposals for projects and eagerly await their creative responses. Examples of participant proposals could include:
- Robust 2D Delaunay Meshing and 3D Triangle-Triangle Intersection routines. This new functionality would eliminate a troublesome third-party dependence on the CGAL library. Providing our own robust implementations of these features would not only be intrinsically useful, but would remove copy-left license inherited from CGAL on libigl’s flagship mesh Boolean routines. This in turn would increase exposure to industry users fearful of copyleft licenses.
- Implement “Navigating Intrinsic Triangulations”. This new ACM SIGGRAPH 2019 paper promises higher-accuracy for numerical solutions to heat flow, Laplace, Poisson and other common problems in geometry processing. Benefits are mutual, an implementation in libigl increases this paper’s exposure, while the implementation in turn improves accuracy of many libigl subroutines.
- Develop an application to segment and align teeth X-ray data. In the dental industry, advanced manufacturing techniques can be used to create a sequence cheap plastic braces. Practitioners must essentially animate the teeth to their new aligned positions. Starting with a noisy scan of a patient’s teeth, libigl could be used to segment the individual teeth and provide a user-interface to specify the alignment trajectories.
- Integrate libigl within the Unreal Game Engine for Virtual Reality. Game engines are the easiest way to create a VR application. libigl’s current 3D geometry visualization application is restricted to monocular (flat) display. Linking libigl to a VR game engine like Epic’s Unreal Engine could make developing a geometry-processing research application in VR as simple as launching the libigl mesh viewer.
- Generic Optimization Framework. While many libigl functions rely on numerical methods, libigl does not yet include a templated set of reusable numerical methods. Developing a generic framework and replacing the multiple ad-hoc code used in current functions will likely lead to a smaller and more organized library, while at the same time lowering the time for adding new functionalities.
Expected impact
The immediate impact of the hackathon will be the significant improvement and expansion of functionality in the library. This concentration of new functionality will be timed to coincide with a new version release of the library. We intend to advertise the success of the hackathon and this release to increase the outreach of the great research implemented within libigl.
Our previous informal hackathon in 2018 involved just eight close contributors, yet it has had a lasting impact. One of its major actions was to dramatically decrease the file size of the library, increasing download and compilation speeds. An immediate side-effect was that libigl became much easier to integrate into Undergraduate and Graduate level courses. At University of Toronto, we use libigl in three of our courses (over 400 exposed students every year). The open-source assignments for our libigl-based courses are used around the world. libigl as a result has had a positive impact on Computer Graphics and Geometry Processing education.
The hackathon stands to increase involvement with local industry. Autodesk and Mesh Inc. are already CQAM Lab partners. They will be invited to participate in this event directly. We intend to use this event to reach out to Ubisoft and Epic Games. A positive outcome would be to establish a funding and research relationship with these new industry partners.
The event will also provide an opportunity to incorporate new volunteer developers and maintainers of the library. Student-focused travel grants will attract the next generation of geometry processing researchers. Harnessing their enthusiasm, we can ensure libigl’s success into the future.
This hackathon will further libigl’s appeal to industry. We call special attention to Canadian companies such as Autodesk, MESH Inc., and Ubisoft as well as companies with Ontario offices such as Epic Games, Google and Adobe. This event will help these companies become aware not just of the advanced algorithms in our library but also the highly qualified personnel that are being trained with corresponding expertise.
Schedule
The hackathon will take place over two full days.
Breakfast | Introduction (Alec Jacobson) |
Morning | State of the library |
Morning | Presentation of participant proposals |
Lunch | |
Afternoon | Breakout into small groups |
Afternoon | Status update from small groups |
Dinner | |
Evening | Breakout into small groups |
Breakfast | Status update |
Morning | Breakout into small groups |
Morning | Triage |
Lunch | |
Afternoon | Documentation and merging into library |
Afternoon | Presentation of success, outlook for future |
Dinner | Closing (Daniele Panozzo) |
The first day will begin with an introduction and discussion of the current state of the library. Then participants will be invited to propose a project. We expect this to be a lively interactive discussion, where we hope to identify common interests and duplicate or complementary endeavours. These conversations will spill into lunch. When we return, participants will divide into small groups and begin implementing the proposal they join. Groups will vary in size (e.g., 1–5). Before breaking for dinner, each project will give a short update on its status. Traditional undergraduate-level hackathons will go overnight. We will provide space and coffee to facilitate this, but not make this an expectation (as it would place a bias against those with children or other external obligations).
The morning of the second day, begins with a status update and then breaking out into working groups. Before breaking for lunch, we will conduct another status update but with the new agenda of triaging projects into categories (achievable today, achievable with continued work after the hackathon, abandon until next hackathon). Members of working groups not identified for today’s success will join others and after lunch focus on merging their contributions in the library and writing documentation. Before breaking for a social event (pending sponsorship) and dinner, we will close with a presentation of the hackathon’s successes and an outlook to future endeavours.
Equity, Diversity, and Inclusion
Inheriting poor gender ratios from computer science in general, the contributor-base of libigl is largely male. The libigl hackathon at the Fields Institute in Toronto is an opportunity to address this and other diversity inadequacies. We have plans to improve the representation of women and other visible minorities at the libigl hackathon and in the long-term within libigl community.