Skip to main content

What is Quadrants?

Quadrants is a high-performance multi-platform compiler for physics simulation being continuously developed by Genesis AI.

It is designed for large-scale physics simulation and robotics workloads. It compiles Python code into highly optimized parallel kernels that run on:

  • NVIDIA GPUs (CUDA)
  • Vulkan-compatible GPUs (SPIR-V)
  • Apple Metal GPUs
  • AMD GPUs (ROCm HIP)
  • x86 and ARM64 CPUs

The origin

The quadrants project was originally forked from Taichi in June 2025. As the original Taichi is no longer being maintained and the codebase evolved into a fully independent compiler with its own direction and long-term roadmap, we decided to give it a name that reflects both its roots and its new identity. The name Quadrants is inspired by the Chinese saying:

太极生两仪,两仪生四象

The Supreme Polarity (Taichi) gives rise to the Two Modes (Yin & Yang), which in turn give rise to the Four Forms (Quadrants).

Quadrants captures the idea of progression originated from taichi — built on the same foundation, evolving in its own direction while acknowledging its roots. This project is now fully independent and does not aim to maintain backward compatibility with upstream Taichi.

How Quadrants differs from upstream Taichi

While the repository still resembles upstream in structure, major changes include:

Platform support

  • LLVM 22, ARM (aarch64) support

CI

  • Kernel-level code coverage — device-side branch coverage in standard coverage.py format, integrated with pytest-cov
  • AI-driven checks for line wrapping, deleted comments, test coverage, and feature factorization

Structural improvements

  • dataclasses.dataclass structs — work with ndarrays and fields, nestable, passable to qd.func, zero kernel-runtime overhead
  • qd.Tensor — unified API over fields and ndarrays with per-tensor layout control, pickle support, and a backend= switch
  • BufferView — safe sub-range ndarray access with bounds checking in debug mode

Removed components

To focus the compiler and reduce maintenance burden, we removed: GUI/GGUI, C-API, AOT, DX11/DX12, iOS/Android, OpenGL/GLES, argpack, CLI.

Performance

  • Reduced launch latency — ndarray CPU performance improved 4.5×; ndarray GPU performance went from 11× slower than fields to ~30% slower (5090 GPU, Genesis benchmark)
  • Fastcache — opt-in source-level cache (@qd.kernel(fastcache=True)) that bypasses front-end AST parsing; reduces warm-cache kernel load from 7.2 s → 0.3 s on Genesis benchmarks
  • GPU Graphs - @qd.kernel(graph=True) captures kernel sequences into a graph; qd.graph.do_while runs GPU-side iteration loops (hardware conditional nodes on CUDA SM 9.0+)
  • perf_dispatch — auto-benchmarks multiple kernel implementations and selects the fastest at runtime
  • Zero-copy interop — to_torch(copy=False) / to_numpy(copy=False) via DLPack on CUDA, CPU, AMDGPU, and Metal; direct torch tensor pass-through into kernels

SIMT primitives

  • Tile16x16 / Tile32x32 — register-resident 16×16 and 32×32 matrix tiles with Cholesky, triangular solve, and rank-1 updates; 5× faster than shared-memory baselines on blocked linear algebra
  • Subgroup ops — cross-platform shuffle, shuffle_down, reduce_add, reduce_all_add across CUDA, AMDGPU, Metal and Vulkan

Autodiff

  • Autodiff with dynamic loops — computes the gradient of any kernel transparently using reverse-mode differentiation and runtime-based memory allocation
  • Forward-mode AD, custom gradients (@qd.ad.grad_replaced), qd.ad.Tape

Debugging & development

  • Python backend — qd.init(qd.python) interprets kernels as plain Python so they can be stepped through in a standard Python debugger

Installation

Prerequisites

  • Python 3.10-3.13
  • Mac OS 14, 15, Windows, or Ubuntu 22.04-24.04 or compatible
  • ROCm 5.2 or newer for AMD GPU support

Procedure

pip install quadrants

(For how to build from source, see our CI build scripts, e.g. linux build scripts )

Documentation

Something is broken!

Acknowledgements

Quadrants stands on the shoulders of the original Taichi project, built with care and vision by many contributors over the years. For the full list of contributors and credits, see the original Taichi repository.

We are grateful for that foundation.

Release files for quadrants 1.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for quadrants 1.3.1
File
quadrants-1.3.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
quadrants-1.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
quadrants-1.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ ARM64, Linux glibc 2.34+ ARM64 Details
quadrants-1.3.1-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
quadrants-1.3.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
quadrants-1.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
quadrants-1.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64, Linux glibc 2.27+ ARM64 Details
quadrants-1.3.1-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
quadrants-1.3.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
quadrants-1.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
quadrants-1.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64, Linux glibc 2.27+ ARM64 Details
quadrants-1.3.1-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
quadrants-1.3.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
quadrants-1.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
quadrants-1.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64, Linux glibc 2.27+ ARM64 Details
quadrants-1.3.1-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details

Total release size: 540.3 MB

Release files / quadrants-1.3.1-cp313-cp313-win_amd64.whl

Download URL quadrants-1.3.1-cp313-cp313-win_amd64.whl
Size 29.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6b146203c95c9eeed1738ed1cdcf1ac9bf7b8a68d9fb32d59daad2cf917b4de6
BLAKE2b-256 checksum
How to use checksums
3997a8065ef5e482be69c4d20a0c076633ab08ba6c284a773ebd38ee24e34b0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 41.0 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
55bc7118c460835687105251ad8259218836127278379cec79f028a5f6b55464
BLAKE2b-256 checksum
How to use checksums
49e73d10fff085712d8565d4fbc1fa673ffc6c66b9a163362ef4bae9f22af08c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Size 38.3 MB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
474c541c1f90c9a57847b3eaa268055c72c7cd908f9a9998e2ced54a435281f7
BLAKE2b-256 checksum
How to use checksums
dcd73a184039c2cfdeaa1442bef1320f51368c33097fe71d79dacb1b1ce636f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp313-cp313-macosx_13_0_arm64.whl

Download URL quadrants-1.3.1-cp313-cp313-macosx_13_0_arm64.whl
Size 26.7 MB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
308133d89262a89e70561880c351b628bb859dbea909e0386ec690db351a7594
BLAKE2b-256 checksum
How to use checksums
f9f95d042cc5914b7d1adfcdf51989134f3ad0c30c908c776a45af61a18f0fec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp312-cp312-win_amd64.whl

Download URL quadrants-1.3.1-cp312-cp312-win_amd64.whl
Size 29.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4830c9a5453ed2595aacc2a2ef502f7b715cee57305ba74d0eca97913dc9796f
BLAKE2b-256 checksum
How to use checksums
e1d629d1c439e3225aacde96c88faf86cf058b6df1e62032a3d2eddd5f6845ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 41.0 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
84efeccc4248440a152635b3ee63564d71c089b9cc812e1ad4ed6f80680a1554
BLAKE2b-256 checksum
How to use checksums
d31776447f7e9c68813bfb8c608f3a72c4eb71dc138b4bf37dfabb2ad106be2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Size 38.3 MB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
89bae0f6435b3d82a43381eaa582727c93012b911e1bdc4147083746e0c8dd07
BLAKE2b-256 checksum
How to use checksums
5f183bc26a15e602f85790f7da3277060bdc2d5ff004ebbc8c57f2f9219329b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp312-cp312-macosx_13_0_arm64.whl

Download URL quadrants-1.3.1-cp312-cp312-macosx_13_0_arm64.whl
Size 26.7 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
4dbbdfbfbfdbff4ef2d374dfca7e2854ec963e5bd7a9f6f7af298c9281b2f64f
BLAKE2b-256 checksum
How to use checksums
9946630652734c02350a22d7586699b84493881b1dea72f1659640d3afa755f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp311-cp311-win_amd64.whl

Download URL quadrants-1.3.1-cp311-cp311-win_amd64.whl
Size 29.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2d1ad30ebc9970a3612487c7d898e087fa712fa0346a50d2cdd6baf9559cf39a
BLAKE2b-256 checksum
How to use checksums
0cb891b735650d709a3b35544985ca6da9ebe3dcc504f46451082498c269eac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 41.0 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
066295ee20e0981c3a741a6b516fb662147e4824a2db6e85337b1f705ef4498a
BLAKE2b-256 checksum
How to use checksums
d065a2ee9940db99d958102e44279028f32828478d6b2d6db3914aa69fc0a58f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Size 38.3 MB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
f6893efbfde8f4af46a681ce2a5fe14f858f1656adbca670cf7eac82e5b1b68f
BLAKE2b-256 checksum
How to use checksums
7bf25d8e001891d9965dd82867fb93cf77c1f602c5da3c85f0bf61e4b15083a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp311-cp311-macosx_13_0_arm64.whl

Download URL quadrants-1.3.1-cp311-cp311-macosx_13_0_arm64.whl
Size 26.7 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
32551af50626951c116e166e35033d13ea8b864574edab5a89b6758daf927e9c
BLAKE2b-256 checksum
How to use checksums
34a2eb9cb0ada2f400c41216ee73fc27638b47b7c52e1c502216d3995688e94e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp310-cp310-win_amd64.whl

Download URL quadrants-1.3.1-cp310-cp310-win_amd64.whl
Size 29.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3a81064a8de7c87cc58b81b3682487350c0ea0c52d77138ecdabc969a3da86a0
BLAKE2b-256 checksum
How to use checksums
a7f529b613ae45352dbb3e54e6aacef6c5d8a13b668b84c592bedcd14d811ae6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 41.0 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
99f4b3703430ce278340c0be9696fe2a93738c03f1851cf6c094dc534872a266
BLAKE2b-256 checksum
How to use checksums
69cc8d62fca3ee69209767debc3340e62b536878d11fdad492282c67fc4a0b42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Size 38.3 MB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
35146248f43c47b667e3fa4eb818dbab1b771d95857fd43914e0a3be02a8234c
BLAKE2b-256 checksum
How to use checksums
e9eb435e092eb715d7a9d886af667f1c472c234d08a724e84e5ac99d1efee665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21

Release files / quadrants-1.3.1-cp310-cp310-macosx_13_0_arm64.whl

Download URL quadrants-1.3.1-cp310-cp310-macosx_13_0_arm64.whl
Size 26.7 MB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
575aa854d58764b7278a89c38107dfe0771459c519abed9f0937905581cf3939
BLAKE2b-256 checksum
How to use checksums
7bea278fbe635d7fa5d15711ae290a4665daa7ca32630fcbb3ead80575cf3401
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.10.21
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page