Taichi 太極 - Genesis of the Virtual World (Physically based Computer Graphics Library)

Just stumbled upon…
Looks interesting. If it helps, i don’t know, haven’t dived in, yet… so any thoughts, opinions, experience from all skilled with the code are welcome!


Taichi (Physically based Computer Graphics Library)

Open source
Taichi provides open source implementation of state-of-the-art computer graphics research results.


With various latest algorithms included in Taichi, researchers and artists can enjoy handy comparison with and easy utilization of these new technologies.

Though the kernel part is implemented in C++14 for efficiency, Python bindings are provided for fast scripting and content generation.

Taichi runs on Linux, Mac OS X and Windows.
Learn More…

What’s Inside
Currently I implemented about 40 graphics papers, most of which are from SIGGRAPH(Asia)/ToG.
Global Illumination Algorithms Supported:

  • (Volumetric) Path Tracing ((V)PT)
  • Light Tracing (LT)
  • Photon Mapping (PM)
  • (Stochastic/Probabilistic) Progressive Photon Mapping (SPPM/PPPM)
  • Unified Path Sampling (UPS)/Vertex Connection and Merging (VCM)
  • Bidirectional Path Tracing (BDPT)
  • Bidirectional Photon Mapping (BDPM)
  • Primary Sample Space Metropolis Light Transport (PSSMLT) with BDPT
  • PSSMLT with Volumetric PT
  • Multiplexed Metropolis Light Transport (MMLT)
  • Adaptive Markov Chain Monte Carlo Progressive Photon Mapping (AMCMCPPM)
  • Markov Chain Monte Carlo UPS/VCM

Physically based Animation Algorithms Supported:

  • Eulerian Fluids (or Stable Fluids)
  • Particle-in-Cell Fluids (PIC)
  • Fluid Implicit Particles (FLIP)
  • Affine Particle-in-Cell (APIC)
  • Material Point Method for snow (MPM)
  • MPM for sand
  • Weakly Compressible Smoothed Particle Hydrodynamics (WCSPH)
  • Predictive-Corrective Incompressible SPH (PCISPH)
  • (Modified) Incomplete Cholesky Preconditioned Conjugate Gradient ((M)ICPCG) Poisson Solver
  • Multigrid PCG Poisson Solver
  • Impulse-based Rigid Body Simulation (real time in 2D)

Other Features:

  • Multithreading
  • Seamless data transfer from simulation to rendering
  • Scripting interface for procedural content generation


Wow, that is really impressive!

Wow, indeed, really impressive :smiley:

And getting more impressive as years go by… :relieved: pure genius.

there’s javascript 88-line example

and a possibillity to visualize results using Houdini

Windows support coming later.

Really impresive…
Good job!!

:scream:code coming soon

Even better…