Open-source Software


This webpage maintains a collection of open-source projects that I have contributed to or advised, developed to support and benefit the broader research and education communities across computer graphics and computational physics.


PFM Libraries: Parallel CUDA & Taichi Simulation for Particle Flow Map Methods

PFM libraries

Since early 2023, my group has devoted substantial effort to developing computational algorithms based on the Particle Flow Map method. To date, these efforts have resulted in 12 ACM TOG publications, accompanied by a suite of open-source libraries designed to support dissemination and adoption of PFM to address a range of applications across diverse flow physics and coupled systems across graphics and physics communities (simulation examples are shown in the inset figure; images were rendered with Houdini). The currently available libraries include Neural Flow Map (NFM), Particle Flow Map (PFM), Eulerian Vortex Method (EVM), Leapfrog Flow Map (LFM) (for high-fidelity real-time simulation), and Cirrus (a GPU-based octree framework). These libraries share common data structures and are primarily implemented using CUDA and Taichi to take advantage of the most recent GPU resources. We have consolidated all of these libraries on a central hub website for PFM research. Please refer to our website for ongoing updates on our latest work in PFM.


Genesis: A Generative and Universal Physics Engine for Robotics and Beyond

I was fortunate to serve as a physics simulation advisor to the Genesis team during their development of the first open-source generative physics engine for general-purpose robotic training, embodied AI, and physical AI applications. Visit the Genesis official website and GitHub to learn more about the Genesis team's latest progress!


Multigrid Solvers: Solving Large-Scale Sparse Linear Systems for Fluids and Solids

PFM libraries

As a research group focused on simulating and optimizing large-scale fluid and solid systems, we frequently encounter the need to solve large-scale sparse linear systems (e.g., the Poisson equation in the projection step). Through these efforts, we have accumulated substantial experience in implementing multigrid solvers and therefore released several high-performance solvers that can achieve state-of-the-art performance. All the solvers were parallized with OpenMP (for CPU) and CUDA (for GPU). Our implementation strategy has centered on developing multigrid-preconditioned conjugate gradient (MGPCG) solvers, combining both algebraic and geometric approaches to construct effective preconditioners aimed at achieving textbook convergence rates. These preconditioners have been tailored for specific problems, including Poisson, Stokes, and elasticity systems. To date, we have released these solvers in several open-source projects to support a variety of simulation and optimization tasks. A few representative examples featuring the multigrid solver components are listed below.


SimpleX: A Parallel C++ Library for Physics Simulation and Data Visualization

SimpleX simulations

SimpleX is an open-source C++ library parallelized with OpenMP and CUDA, and equipped with an interactive OpenGL viewer for large-scale physics simulation. The core modules of SimpleX cover geometry, physics, solvers, optimization, and visualization. The implemented geometric data structures include MAC grids, simplicial meshes, particle systems, level sets, and their hybrid representations. The library features a GPU-based multigrid solver that combines algebraic and geometric formulations with textbook convergence. The physics engine supports simulation of fluids (with free surfaces), elastic bodies, rigid bodies, and their couplings. SimpleX is integrated with an interactive OpenGL viewer for real-time visualization of simulation data. The library is particularly focused on simulating incompressible fluids with interfacial forces (examples are shown in the inset figure; images were rendered with Houdini).

SimpleX has supported a series of research projects in our group, ranging from thin-film fluid (e.g., SPH and MELP bubbles), vortical flow (e.g., Clebsch fluids and its free-surface extension), soft drone, to topology optimization (e.g., Voronoi TO and Stokes TO). The development of the library was initiated during my postdoc study at MIT, and later sponsored by multiple NSF projects and Toyota during my tenure track. The SimpleX library was made publicly available at its GitHub repository along with a host of affiliated open-source projects. I highlight a few as below.


Education Software: Graphics, Physics, and AI

course starter code

Several educational versions of SimpleX have been developed to support the courses I teach in computer graphics and physics. The visualization component of SimpleX has been simplified and repurposed to serve as the starter code for Computer Graphics courses at Dartmouth (CS77) and Georgia Tech (CS3451), with a focus on geometry modeling, shading, texturing, and ray tracing. The physics engine has been extended to support programming exercises involving fluid, rigid body, and soft body simulations in my Physical Computing course. More recently, a WebGL-based framework for visual computing has been extended for my new course Computer Graphics in the AI Era, which broadens the scope to include recent advances in neural graphics, such as neural SDF, NeRF, and Gaussian splatting. The GitHub repository and the runtime demo are both available for public access.

  

[Back to home]