Skip to content

GitHub Travis (.com) GitHub stars

WuKong Simulation

WuKong is an extremely light-weight and modular simulation codebase for different type of discretizations commonly used in computer graphics.

Why WuKong

The computer graphics community is incredible and champions open-source development. Many projects showcased at Siggraph can be reproduced by those new to graphics. However, for a beginner—or someone from a different field who just wants to see a wobbly sphere moving on the screen—a full-fledged Siggraph codebase might be overkill. In fact, it often requires significant effort to strip away all the advanced features to achieve a basic implementation.

WuKong offers a solution by providing minimal code for simulating some of the most fundamental models in graphics. Another common challenge is compilation. Many codebases are designed to simulate a wide range of phenomena, meaning you may need to compile all the relevant libraries. Although a proper CMake setup can simplify this process, integrating such simulations into another project, like in reinforcement learning, benefits from having fewer dependencies. With this goal in mind, each project in WuKong is self-contained. To compile a single project, you don’t have to compile everything else, and you can simply extract the subfolder without worrying about breaking dependencies.

WuKong Projects

WuKong support simulation of

Discrete Elastic Shell.

Discrete Elastic Rods.

Linear Tetrahedral Finite Elements.

Quadratic Tetrahedral Finite Elements.

Differentiable Geodesic Distance.

Eulerian-on-Lagrangian Rods.

How to Compile

We provide a docker image for you to run our code on an arbirary Linux machine. Please check out the Docker section to see how to set it up.

Simulation Basics

WuKong implements optimization-based Newton solver with backtracking line search. To reduce the learning curve of adapting different simulation projects. All projects follow identical pipeline with major functions with the same names. You can find more information in Newton's Method and Time Stepping

Create YOUR Project

We prepare a simple script to generate a new project in the Project folder that runs with a viewer. Please refer to New Project to learn more.


Author: Yue Li

If WuKong contributes to an academic publication, cite it as:

@misc{wukong,
  title = {WuKong},
  author = {Yue Li and others},
  note = {https://github.com/liyuesolo/Wukong2024},
  year = {2024}
}

Development of this software was funded in part by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation program (grant agreement No. 866480), and the Swiss National Science Foundation through SNF project grant 200021_200644. Our implementation benefits from discussion and references from Juan Montes, Simon Dünser and Jonas Zehder.