NVIDIA's Rust platform for CUDA, with host runtime crates plus SIMT and Tile models for writing GPU kernels in Rust.
taichi-dev/taichi
A Python-embedded programming language that JIT-compiles numerical kernels to run on CPUs and GPUs such as CUDA, Vulkan and Metal.
- Stars
- 28,450
- Forks
- 2,392
- Open issues
- 926
- Last commit
- last month
What is it?
Taichi Lang is an imperative, parallel programming language for high-performance numerical computation, embedded in Python. Functions decorated with @ti.kernel are compiled just in time by an LLVM-based toolchain into native CPU or GPU instructions, so compute-heavy Python code can run in parallel without rewriting it in C++ or CUDA.
The syntax stays close to Python and the language integrates with NumPy and PyTorch. Its data containers, called SNodes, let developers describe hierarchical, multi-dimensional fields, including spatially sparse layouts. Code is written once and can target supported backends such as CUDA, Vulkan, OpenGL, Apple Metal and x64/ARM CPUs.
The project also includes differentiable programming support and a Vulkan-based 3D visualizer. Its gallery and examples cover physical simulation, rendering and fluid dynamics.
Key features
- 01Write kernels in Python syntax that are JIT-compiled to CPU or GPU code.
- 02Runs on CUDA, Vulkan, OpenGL, Apple Metal and x64/ARM CPUs.
- 03Supports spatially sparse data structures through SNode containers.
- 04Integrates with NumPy and PyTorch.
- 05Includes differentiable programming and a Vulkan-based 3D visualizer.
Use cases
- Accelerating numerical simulations such as fluids, particles or physical systems in Python.
- Prototyping GPU algorithms without writing CUDA or shader code by hand.
- Building differentiable physics or graphics pipelines.
- Developing rendering or visual-effects experiments that need parallel computation.
Quick start
- 1
Install Taichi with pip
pip install taichi - 2
Launch the demo gallery
ti gallery
Things to know
- Python 3.6 to 3.10 only, 64-bit.
- Pre-release nightly packages may crash because they are not fully tested.
In collections
Topics
FAQ
- What is taichi?
- A Python-embedded programming language that JIT-compiles numerical kernels to run on CPUs and GPUs such as CUDA, Vulkan and Metal. Taichi Lang is an imperative, parallel programming language for high-performance numerical computation, embedded in Python. Functions decorated with @ti.kernel are compiled just in time by an LLVM-based toolchain into native CPU or GPU instructions, so compute-heavy Python code can run in parallel without rewriting it in C++ or CUDA.
- Is taichi free to use? What license does it have?
- taichi is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is taichi still maintained?
- Updated within 6 months. The last commit to taichi was on Oct 5, 2026.
- What can I use taichi for?
- Accelerating numerical simulations such as fluids, particles or physical systems in Python. Prototyping GPU algorithms without writing CUDA or shader code by hand. Building differentiable physics or graphics pipelines. Developing rendering or visual-effects experiments that need parallel computation.
- How do I install taichi?
- Install Taichi with pip: pip install taichi Launch the demo gallery: ti gallery
- Where can I get taichi?
- The source code and installation instructions are on GitHub: https://github.com/taichi-dev/taichi
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python framework that JIT-compiles regular Python functions into kernels running on CPU or NVIDIA GPU, for simulation, robotics, and ML.
A JAX-based quadrotor simulator that runs batched, differentiable drone simulations on CPU and GPU for Crazyflie 2.x drones.
A header-only C++ library for writing task-parallel programs using task graphs, with CPU multithreading and CUDA GPU support.
A Python profiler that reports CPU, GPU, and memory usage per line, with optional AI-generated optimization suggestions.
C/C++ library for optimizing triangle meshes to render faster on GPUs and to shrink mesh storage and transmission size.