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

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

Total release size: 433.4 MB

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

Download URL quadrants-1.3.3-cp313-cp313-win_amd64.whl
Size 29.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0bd25b9157f024e464342e5c0089ebb986925b45cd3e4d8054ad98a794c23d20
BLAKE2b-256 checksum
How to use checksums
14e94a7c5b5aaf750455b8081d3db305201579e0e479b83b65cfbfb7f891c8b5
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.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.3-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
4dd7577168f045303b455e63dba31e8ab4bda37aa27d1695f88f9916b48047da
BLAKE2b-256 checksum
How to use checksums
02c4e625be95bf0aa5dfaf4424ebbcddfa67bb01d9c16dce704bba4edb12b83a
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.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.3-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
deb922d2941bce1c1499fcda9aaadebc64e4ede1b52989a1ba3390cf1520cda7
BLAKE2b-256 checksum
How to use checksums
b954410a2c995b7623eed671044e76b39683358edd0d4af53069d5bdf774dae8
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.3-cp312-cp312-win_amd64.whl

Download URL quadrants-1.3.3-cp312-cp312-win_amd64.whl
Size 29.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c2dc3c4e63bb5c493beb86ee4488320d06d4a10f1e30c63d4234b141e8dd3416
BLAKE2b-256 checksum
How to use checksums
6a6424c7e59a62e3b6a23fbc06875306f6cd1385ed341d372942f00c8cdb3e1a
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.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.3-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
bda4869c57818546f3a574318165a423ac2f01c90dda52e9cd948ea14ce1aaf4
BLAKE2b-256 checksum
How to use checksums
0c5d9ebfa4f92d8b87e454d244058ae8c619ac31f046df66fae46e4025d02d5b
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.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.3-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
77e59ef8d4478bf0a212e8b49b72eeaca4fe18a2ac7c86119544b6ec2549dacf
BLAKE2b-256 checksum
How to use checksums
e6252b46eb2b4267578bad802aa619a12f1dd1e963dedc1933c71a0f2e6eca95
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.3-cp311-cp311-win_amd64.whl

Download URL quadrants-1.3.3-cp311-cp311-win_amd64.whl
Size 29.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
043761af511bec8f322578fd9ad177e3ddedfaf3557e50f9e9e717f892e8a001
BLAKE2b-256 checksum
How to use checksums
05dd8988c81e06af1d1618f697aeadbc9ca6be6c5a8bb00ef2c17c60382f385b
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.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.3-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
6b092046bff79257bdc244b7b85fc246be841ddb0ed64f61f08dc8f31471baeb
BLAKE2b-256 checksum
How to use checksums
3e3d07cf07ff2dc3924b680b79be13f2fbaac03113774cc96eca193ddac7d442
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.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.3-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
6fec242a44f45ff509f96416427a93cd212eccd0d95666313a3c6ec60b47d27b
BLAKE2b-256 checksum
How to use checksums
1acc5de421af70b3d798be264f0e813b326633f6208bb7087b85be6e097112de
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.3-cp310-cp310-win_amd64.whl

Download URL quadrants-1.3.3-cp310-cp310-win_amd64.whl
Size 29.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2c04f8bf08c9c67bbdac52a9df7cb0f2705ccc9a27521828dcce715a7319f711
BLAKE2b-256 checksum
How to use checksums
0439e59abf33935b7dec47cdbf88e081717c4d0de2546c3cfbbdc34532499fbb
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.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL quadrants-1.3.3-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
b7a16007aef10d515b6a173c541d481390744f5658f7d3a8406f59e0056d2225
BLAKE2b-256 checksum
How to use checksums
efa3ce9e325a478003b04479cbc51d803233cfd2c966348293cd58343e9a5ff0
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.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl

Download URL quadrants-1.3.3-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
4bf69336937ca282070a7c1adc5ffa173dd1e16095c66f2064b483d1b4192718
BLAKE2b-256 checksum
How to use checksums
55851f8db7368c40680c08d730e5cedb2d97ee54a29484103b495ddc59f090c0
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