Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

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

Total release size: 540.4 MB

Release files / quadrants-1.3.2b1-cp313-cp313-win_amd64.whl

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

Download URL quadrants-1.3.2b1-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
fe8f115097102d6c73df0e7586ad233b4c858969e4757003de098fce287b77e8
BLAKE2b-256 checksum
How to use checksums
4bd00537274e84bb1b19aa69b6653e0c7914aa63baea3bf110a2926dfc56a118
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.2b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2b1-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
83a2625f4e767b69856af8b9b9043832010466b87d2005b71af8ca9c71c4cccc
BLAKE2b-256 checksum
How to use checksums
4443da8a6e1a435aadd96023fa3fdce5183296bfa6da10e8f28f6574e0a2e5d4
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.2b1-cp313-cp313-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2b1-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
66c00511af93dbe3eec9cc83c135a521ccd102a1c4e78db78022458bd7609614
BLAKE2b-256 checksum
How to use checksums
5c4ad4f3cd26ff24106d82704c84b0d6c9856c4aca7aa7b9561c535520abcf6c
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.2b1-cp312-cp312-win_amd64.whl

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

Download URL quadrants-1.3.2b1-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
f120d12d873fa7fc6136773bb48af0679e7af0d570f958b126a75c00cc6f3488
BLAKE2b-256 checksum
How to use checksums
ba0274d89c544bba604302363a653d70b40651cb955d3b4e52cd2fe22dc0966c
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.2b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2b1-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
4bedf766616e6afc8e928717ab8b6d19642d2da775822bdb54d9037ff935b59f
BLAKE2b-256 checksum
How to use checksums
60dbca6f026cc1592ba610798670ccec5754e09f728f781797b00497f783c1e0
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.2b1-cp312-cp312-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2b1-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
20e69543318c60bd8de1bc97e55130a91bdb25e9afe4e231c18e7effdd286399
BLAKE2b-256 checksum
How to use checksums
1dca8ff434109fcad361ee579656174f6306bde24b7ea6de61ab0247e2e7d39f
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.2b1-cp311-cp311-win_amd64.whl

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

Download URL quadrants-1.3.2b1-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
9e360ca69b934558e432e03eed6f884ba4ce2ad976dad91c2791834c5cac96e7
BLAKE2b-256 checksum
How to use checksums
a5cc360663e875107cfa3ab21c13f3b85f299a695c946c07b24b166c2c9b397e
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.2b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2b1-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
54502e1898908a4e58674f723f243f69c2f04bd22b98ddeff27999f3b1a27b70
BLAKE2b-256 checksum
How to use checksums
3721c7180074380ef48622687444c327e7ebbd477c99409bdd9babc6b76ec451
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.2b1-cp311-cp311-macosx_13_0_arm64.whl

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

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

Download URL quadrants-1.3.2b1-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
09dec05ce0e75ac2ba31f864b4e203c4b6ffb03e328eab483d75955f8a6b1569
BLAKE2b-256 checksum
How to use checksums
f9198e1193dd7bca2f05d1f49f1dacdbceac1999869d2fd9c5def155ed3a6b73
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.2b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.2b1-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
4886c198c6b9f2dae3e8b0f211677c23506e4b30f0cf7f920cfb8a2e2a2bb77b
BLAKE2b-256 checksum
How to use checksums
1d3dd5beab1374348c43ad3d522af5944c2d0e708a6b7d10bbf7eb099d07ca0a
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.2b1-cp310-cp310-macosx_13_0_arm64.whl

Download URL quadrants-1.3.2b1-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
30ee8cd985d7570c3ac4d11f11679b650d55cb3673e84493caf9186a00ab7505
BLAKE2b-256 checksum
How to use checksums
f895f44693a660878c093b17d799374e5c850c20c411e4d1664d9e8c13d6c1d1
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