High-performance
parallel programming
in Python
Taichi is a domain-specific language embedded in Python that helps you easily write portable, high-performance parallel programs.
Install
$ pip install taichi -U
Copy Logo
Examples
$ ti gallery
Copy Logo
Get Started
What’s possible with Taichi
Speed up PythonSpeed up Python
image
Taichi translates the compute-intensive Python code into fast machine code at runtime with a just-in-time compiler, accelerating your Python code.
Numerical simulationNumerical simulation
image
Create an urban airflow simulation using 3D Lattice Boltzmann Method, with spatially sparse data structures provided by Taichi.
3D rendering3D rendering
image
A GPU path tracing voxel renderer made by Taichi! You can easily create inspiring voxel art using this renderer within 99 lines of Taichi code.
Computer visionComputer vision
With automatic parallelization and spatially sparse data structures, Taichi powers the fast development of a LiDAR-based SLAM system.
More Use Cases
The advantages of using Taichi
Easy to learn
No barrier to entry for Python users: Taichi shares almost the same syntax as Python. Apply a single Taichi decorator, and your functions are automatically turned into optimized machine code.
Easy to learn
Try drawing a Mandelbrot set in 40 lines of Taichi code
Easy to learn
High-performance
Taichi’s JIT compiler automatically compiles Python functions into fast GPU or CPU machine code for parallel execution. While Taichi lives in Python, it can approach or even outrun the speed of C++ or CUDA.
High-performance
View Taichi benchmarks
High-performance
Integrated into the Python ecosystem
Taichi can seamlessly interoperate with popular Python frameworks, such as NumPy, PyTorch, matplotlib, and pillow.
Integrated into the Python ecosystem
Learn how Taichi interacts with arrays from external libraries
Integrated into the Python ecosystem
Universal deployment
Taichi’s ahead-of-time mode enables deployment on platforms without Python, including PCs, mobile devices, and web browsers.
Universal deployment
Learn more about Taichi's AOT solution
Key features of Taichi
High-performance parallel computingHigh-performance parallel computing
A one-billion-particle MPM simulation running on a GPU with 80 GB memory - the world’s largest-scale single-GPU particle simulation!
Automatic differentiationAutomatic differentiation
Soft robot locomotion control powered by Taichi’s handy automatic differentiation system, which is significantly faster than PyTorch, TensorFlow, and JAX.
Flexible SNode systemFlexible SNode system
image
Taichi’s SNode system allows quick experimentation with different memory layouts to maximize performance without rewriting computation code.
Spatially sparse data structuresSpatially sparse data structures
A fluid simulation example where empty regions take no computation nor memory, enabled by spatially sparse data structures in Taichi.
User Page
Organizations that use Taichi
user logo
https://d33wubrfki0l68.cloudfront.net/cb20380683fa4a94f486c7596aff1df9180114d2/0d974/user-logo/card-eth.png
ETH Zürich uses Taichi in its Physically-based Simulation course, effectively improving both the learning and teaching experience.
https://d33wubrfki0l68.cloudfront.net/ead2e6dd35a617fcaf2f24bb4173ba0b4f2ec49a/5308c/user-logo/utah.png
The University of Utah uses Taichi for simulation in the paper A General Two-Stage Initialization for Sag-Free Deformable Simulations, published at SIGGRAPH 2022.
https://d33wubrfki0l68.cloudfront.net/98b1f429be951a0da75802a5bb8b0d5214aea927/a5b4d/user-logo/oppo-en.png
OPPO, a smart device manufacturer, uses Taichi to develop stunning physics-based wallpapers that run interactively on mobile devices.
https://d33wubrfki0l68.cloudfront.net/8b95b3b86a6dcaabbbc1ad21872f3b4a9503c396/dbe3b/user-logo/kuaishou-en.png
Kuaishou, a short video platform, uses Taichi as its high-performance mobile GPU solution, enabling unique real-time liquid and gas simulations for generating special effects.
What users love about Taichi
Taichi is mainly used to replace some of our GPU shaders code and make our development so much easier (especially for debugging!). In addition, Taichi supports generation of AOT modules, allowing us to run our code on different platforms including Android on Mobile phones! Creating beautiful and physical-based algorithms has never been so easy with Taichi!
Gabriel Huau
OPPO Senior Engineering Manager
Taichi is much easier to grasp than traditional GPU programming languages. Once a Taichi program is compiled, it can be deployed on iOS, Android, PC, and many more platforms. We need to iterate and release new (GPU-based) visual effects quickly, and Taichi has greatly accelerated our workflow.
Chongyang Ma
Lead of Y-tech Graphics AI, Kwai
The simplicity of design in Taichi is always the key to great work. With much less code, we achieved surprisingly good visual results and highly sophisticated features. Taichi proves to be a significant boost to my research and development work.
Hao Xu
Ph.D. student in Computer Engineering, HKUST
We use Taichi for physical simulation. It is easy to use. 90% of our projects used Taichi and were completed with flying colors. Taichi is also efficient. It has much less scaffolding code than other languages or frameworks.
Jingwei Tang
Research Assistant, ETH Zürich
User Page
Join the Taichi Community
together with over 200 contributors from all over the world
Slack
Slack
Join our Slack channel to meet the Taichi developers and chat about anything related to Taichi, be it Taichi’s internals, RFCs, or new features.
GitHub
GitHub
You are more than welcome to file bug reports, open pull requests, track issues and milestones on GitHub.
Twitter
Twitter
Follow us @TaichiGraphics on Twitter to get informed of the latest events, classy demos, and inspiring projects.
YouTube
YouTube
Subscribe to Taichi’s YouTube channel for useful tutorials and impressive demos.
Ready to dive in Taichi?
Install and write your first Taichi program!
Install Taichi
$ pip install taichi -U
Copy Logo
Example demos
$ ti gallery
Copy Logo
©Taichi Lang 2022. All rights reserved. | Cookie Policy
| Privacy Policy
User Page