035 · TAICHI
太极 · the dual principle of computation
Project Lavos · The Stack
Plate XXXV · Specimen of the Taiji

Una res, duae naturae.

— ONE THING · TWO NATURES —

the dual.

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.

— Plate XXXV · Material Point Method · One Timestep — after Sulsky, Stomakhin, Hu
— Fig. I · 太极 · the field becomes the particle becomes the field — · YIN grid eulerian field · 64³ cells stores: pressure · velocity · force YANG particles lagrangian points · 131,072 store: position · mass · deformation P2G particle ⟶ grid G2P grid ⟶ particle — particle inside the field — field inside the particle @kernel
— Grid — 643 · eulerian
— Particles — 131,072 · lagrangian
— Timestep — Δt = 1 / 60 · real-time
— Compiled to — CUDA · Metal · Vulkan
YIN · 阴 · INK

— 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.

YANG · 阳 · PAPER

— 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.

Authorship & Provenance colophon — one language, two natures
Authorship
Yuanming Hu
MIT CSAIL · advised by Frédo Durand
founded Taichi Graphics · 2020
github.com/taichi-dev/taichi
Architecture
Python DSL · JIT compilation
SIMD · CUDA · Metal · Vulkan · OpenGL
Sparse fields · auto-differentiation
@ti.kernel
Native To
Physics simulation
MPM · fluids · soft bodies · sand
Differentiable physics · robotics
~99-line fluid demos

— Lineage —

2016Yuanming 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.
2019Taichi 0.1 — first public release. Python DSL with JIT-compiled kernels.
2020DiffTaichi at ICLR. Differentiable physics simulation as a first-class citizen.
2020Taichi Graphics founded. Commercial backing for the open-source project.
20211.0 release. Sparse data structures matured. Apple Silicon Metal backend.
2023Project transitions to community-led maintenance. Hu pivots to other research.
The dual remains. Particles, fields, and the transfer between.

one language. two natures.

Python where you write. Kernel where it runs. Particle where it moves. Field where it rests.

— § I · Authoring · Renderers / Compute —
Plate XXXV · MMXXVI
projectlavos-bauhaus · 035