Overview
Taichi (太极) is a programming language designed for high-performance computer graphics. It is deeply embedded in Python, and its just-in-time compiler offloads compute-intensive tasks to multi-core CPUs and massively parallel GPUs.
Advanced features of Taichi include spatially sparse computing and differentiable programming [examples].
Gallery
Installation
python3 -m pip install taichi
Supported OS: Windows, Linux, Mac OS X; Python: 3.6/3.7/3.8 (64-bit only); Backends: x64 CPUs, CUDA, Apple Metal, OpenGL Compute Shaders.
Please build from source for other configurations (e.g., your CPU is ARM).
Note:
- Starting April 13 2020 (v0.5.12), we release the Python package
taichi
instead oftaichi-nightly
. Now this PyPI package includes CPU, CUDA 10, Metal and OpenGL support. - On Ubuntu 19.04+, please
sudo apt install libtinfo5
. - On Windows, please install Microsoft Visual C++ Redistributable if you haven't.
- [All releases]
Linux (CUDA) | OS X (10.14+) | Windows | Documentation | |
---|---|---|---|---|
Build | ||||
PyPI |
Links
- Taichi Forum: Powered by Discourse, Taichi offical forum for discussing issues and sharing ideas.
- Taichi Simplified Chinese Documentation: Translated by Taichi community, welcome contribution!
- Taichi Conference: Taichi Online Virtual Conference available in both Chinese and English, approximately per-month.
- GAMES 201 Lectures: (Chinese) A hands-on tutorial on advanced physics engines based on Taichi, per-week.
- Taichi Elements: A High-Performance Multi-Material Continuum Physics Engine based on Taichi (work in progress).
- LBM Taichi: Fluid solver based on Lattice Boltzmann method implemented by Taichi programming language, by Zhuo Wang (hietwll).
- Shadertoy reproduced by Taichi: Some prevalent shadertoys implemented in Taichi, by QIU Feng (Phonicavi).
- DiffTaichi: 10 differentiable physical simulators built with Taichi differentiable programming, by Yuanming Hu (yuanming-hu).
- Taichi GLSL: Manipulate Taichi with GLSL-alike helper functions.
Developers
The Taichi project was created by Yuanming Hu (yuanming-hu). Significant contributions are made by:
- Ye Kuang (k-ye) (Apple Metal backend)
- 彭于斌 (archibate) (OpenGL Compute Shader backend)
- Mingkuan Xu (xumingkuan) (IR optimization & standardization)
Kenneth Lozes (KLozes) and Yu Fang (squarefk) have also made notable contributions.
[List of all contributors to Taichi]
The Simplified Chinese documentation (简体中文文档) was created by Ark (StephenArk30). Significant contributions are made by:
[List of all contributors to the Simplified Chinese documentation of Taichi]
We welcome feedback and comments. If you would like to contribute to Taichi, please check out our Contributor Guidelines.
If you use Taichi in your research, please cite our papers: