Una res, duae naturae.
— ONE THING · TWO NATURES —
Yuanming Hu · MIT · Taichi Graphics · 2019
PYTHON DSL · MPM · SPARSE FIELDS · DIFFERENTIABLE · CUDA + METAL + VULKAN
Two languages, one source. Python, where you write; kernel, where it runs. Two data structures, one simulation. Particles, which carry mass and momentum; fields, which carry pressure and force. Every timestep, one becomes the other. The taiji is not a metaphor for the language. It is the language.
— field —
grid.
A regular array of cells covering the simulation domain. Pressure, velocity, force. Continuous, stationary, dense. Solves the Poisson equation, advects, applies boundary conditions. The eternal background.
— particle —
particles.
A cloud of points, each carrying mass, momentum, and deformation gradient. Discrete, moving, sparse. Tracks material as it flows. The eternal foreground.
The taiji is not decorative. The field becomes the particle becomes the field, and around each one rotates the seed of its opposite — a particle inside the grid, a grid cell inside the particles. This is what one timestep looks like.
Yuanming Hu wrote this language at MIT while finishing his PhD on physical simulation. Una res, duae naturae.
github.com/taichi-dev/taichi@ti.kernel~99-line fluid demos| 2016 | Yuanming Hu publishes Material Point Method for Snow Simulation (with Stomakhin et al., Disney's Frozen). |
| 2018 | "A Moving Least Squares Material Point Method" at SIGGRAPH. The paper that justified building a language for it. |
| 2019 | Taichi 0.1 — first public release. Python DSL with JIT-compiled kernels. |
| 2020 | DiffTaichi at ICLR. Differentiable physics simulation as a first-class citizen. |
| 2020 | Taichi Graphics founded. Commercial backing for the open-source project. |
| 2021 | 1.0 release. Sparse data structures matured. Apple Silicon Metal backend. |
| 2023 | Project transitions to community-led maintenance. Hu pivots to other research. |
| ∞ | The dual remains. Particles, fields, and the transfer between. |
Python where you write. Kernel where it runs. Particle where it moves. Field where it rests.