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.2

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.2
File
quadrants-1.3.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
quadrants-1.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
quadrants-1.3.2-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.2-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
quadrants-1.3.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
quadrants-1.3.2-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.2-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.2-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
quadrants-1.3.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
quadrants-1.3.2-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.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ ARM64, Linux glibc 2.34+ ARM64 Details
quadrants-1.3.2-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
quadrants-1.3.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
quadrants-1.3.2-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.2-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.2-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.2-cp313-cp313-win_amd64.whl

Download URL quadrants-1.3.2-cp313-cp313-win_amd64.whl
Size 29.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2461696d57246237bdf384b2572740f5dfc4ee2a70da315e0f902df6cdbc106e
BLAKE2b-256 checksum
How to use checksums
408c612d52aea59d5328cd1ab531771b10f8ef4346d60f83d70882859ea92ee6
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.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.2-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
a32372ef3fb284a1d6e04ba9fd4472fa366eb2c026ce9358c0568961b25ae2a8
BLAKE2b-256 checksum
How to use checksums
913855486ffa7c425c79484f686e230bbc0a54c0e56417f773587b38eb634748
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.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2-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
a31055b8d42fa57bc5909233259b933b0de70a0107c97a035e4803da363e5eec
BLAKE2b-256 checksum
How to use checksums
f8291b45eb3624e6124197e5f8813418b78ae3ba7ff8737cab475a0328abb521
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.2-cp313-cp313-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2-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
67895bf2f93bcf64534418ec5d1e8471a83094253cd0947da49d185a4fd52037
BLAKE2b-256 checksum
How to use checksums
be24e1d04a52a653753e838b5100d4f2b1b23990fb5f5bc55fca9a7922699edc
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.2-cp312-cp312-win_amd64.whl

Download URL quadrants-1.3.2-cp312-cp312-win_amd64.whl
Size 29.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cc69c91deff17f67f8872c4a0e8d37b79236c2a9b7e78e5d4591bf46921186e3
BLAKE2b-256 checksum
How to use checksums
fa71ba14a4e220cbe962359d5b64b379c4859ae1e2dbc7315a0ede1a4215770f
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.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.2-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
416e33172c9e8fe7fe3fcadcee9fdc2f28cba8dcf305951fff659f7b51319415
BLAKE2b-256 checksum
How to use checksums
42c4f9367b88432268dd9ec19726e61932f390d3c0f657d9c3a4500a774ef3c1
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.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2-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
4da6681a04909c442cb0d8cd7d925537e424ad132ad069bb69432dcb3bb23960
BLAKE2b-256 checksum
How to use checksums
113ab1341f51969aaea67dc1e2a7ee6c1c988b338e932e03aacc24bc6f2adcb3
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.2-cp312-cp312-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2-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
ec37cfa772587393cc128c6c1be5b016a8dccfc6f6d1f992de73206e497f662c
BLAKE2b-256 checksum
How to use checksums
2704512d010fcfa8d660632676afdc963eee36ee82f1847c90f3c4e02f79e240
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.2-cp311-cp311-win_amd64.whl

Download URL quadrants-1.3.2-cp311-cp311-win_amd64.whl
Size 29.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
fdd11c13156eac744bc173c9faf057ae557a0e32d9720f16cbad1f56489301f1
BLAKE2b-256 checksum
How to use checksums
a69d383b9cb55190697a3058c650a16ac0385848e7d33352d1d0d6d18522929b
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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.2-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
7bb9c546e65586b691f94ddc04405256bab27668554db26f8c5d20fb91886add
BLAKE2b-256 checksum
How to use checksums
772622d839e3f4d96a7f376e7757960f2043a9e056b99fda89d7df671bbdd418
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.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2-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
d3e315ae32a9c923be0aee6e8f349708bece14cf4acd83743955c19132b0fa90
BLAKE2b-256 checksum
How to use checksums
b1c804548cd22a3e626a8d621f98bfaeac6cd92585ce1e53731302672d3b67b3
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.2-cp311-cp311-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2-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
7d0b2833190f5bbbabc2b2b9806e7725cc67644ce23b60909fb4bf6c1918695a
BLAKE2b-256 checksum
How to use checksums
f23309c280f9f6c757cbb471c88f89a57b8264858985a999a1dc71b74bee476e
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.2-cp310-cp310-win_amd64.whl

Download URL quadrants-1.3.2-cp310-cp310-win_amd64.whl
Size 29.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0cbdda315aa9644d124e4a3f096185b5a4bc957c428dfaeefe36691a4e7d4889
BLAKE2b-256 checksum
How to use checksums
0a1a8c8def25f5ca20847b91cf49843d0f655ad5286c01ea0f5ab886cdf5e787
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.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.2-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
1593a68427de2a5248f7690f2568fad02d2458755e1f3f69cad4d5d80c98aaf8
BLAKE2b-256 checksum
How to use checksums
4931720aaf41f575fdc849b7f29e8fb0c42537916b504b05a36063c7663997ea
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.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2-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
b53ad9a69d7e102a5f3d164de7e1418e849842ec19d29961997b4c571b7438fd
BLAKE2b-256 checksum
How to use checksums
7813324d020be4374351161782aa579462592f04c6892b23b6b77a149108a09e
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.2-cp310-cp310-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2-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
d0045419ee6d64a0b7a1cf10b22bd3faedcb8a8474aca4e4d548222d93196635
BLAKE2b-256 checksum
How to use checksums
5d9d637c52a7b11f805a51e52c6f2af1e1dc543a98967811f6896022d07a8877
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