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 interopto_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 backendqd.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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

quadrants-1.3.0b2-cp313-cp313-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.13Windows x86-64

quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (41.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (38.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.3.0b2-cp313-cp313-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

quadrants-1.3.0b2-cp312-cp312-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (41.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (38.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.3.0b2-cp312-cp312-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

quadrants-1.3.0b2-cp311-cp311-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (41.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (38.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.3.0b2-cp311-cp311-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

quadrants-1.3.0b2-cp310-cp310-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (41.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (38.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.3.0b2-cp310-cp310-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file quadrants-1.3.0b2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.3.0b2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.3.0b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a33082963303ec0e34fc81c8a01453505541c6eda47ed4c7e69204a37ee4a755
MD5 1bab1cbf45981475fc41d7c58a07bfac
BLAKE2b-256 ad7e5b903f31bf00ae78b2cceef09d65d933be67964a32e4f3b788f834a86e7e

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d47f7898fb5990be594be0e1aab83f5ebbc95d53b15638bd5b8dae6335e0ceb
MD5 96bf185a65fc8005ce518b17c17d76b9
BLAKE2b-256 03ed561154582369ad66d343fbf25835155b38d032ccfb39744e2cfdefa0c661

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 26af7e47a5209ead486d87440eed19045f4cb7dc853e31c024d3043fca098716
MD5 d819094afa529391f3a4e6e05192a176
BLAKE2b-256 b9cc5c8fad7f6ec169c17f938bc2673c4fd077385902e27174d585c4f63d671d

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 068db430c36432110d12cab2fb699fc2bf9feede888e262b2814c95853a06c01
MD5 3fa50fdd0acb8910ed71d2d662b9d5a0
BLAKE2b-256 ea5197f3828a956bdc47708ac06889a36b739786b341f3733ea7fbadaae791fb

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.3.0b2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.3.0b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7bfc46419e3862f10e8c081877bf8a9189bc8b4f11cc6704f678efd928653452
MD5 a6f6875ff8b994d66a8bde431b59d5b2
BLAKE2b-256 4ca551677e5c5c3f47cc71672d2904c2309786df818be6de93902245fa828fff

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1d188c4851ca3e84aa059fd458cd7944e6cb7d6031d6015a1d55c608c3b6c72
MD5 99b53bc7f6ea573003c44eb3d56e3e17
BLAKE2b-256 393ccf1d47e5c156978bc1471dac1cef73ff993292b556ccb744d0e3f9f9750d

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 dbed30b91ae3c3d9a532494d6a09858d51d3f66991524212d32e028b82484239
MD5 c5a074f5afe2601b257d9e8c042e41fa
BLAKE2b-256 42923b97ce0c6c76fa771fd934602dd0bbaade85a15a506cc28eee4fa5d82e82

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 52464be7519c6e137cb2e2dafdb490ae4252ec56b566b4e1a39b4ea2ef6dabe4
MD5 41401deb0d8335c90da3b5382850bdf5
BLAKE2b-256 5d24b13596cb371bb806fd5381422f9a3e402209828f9417189c6937daacad8c

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.3.0b2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.3.0b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1215342bad0fdbc02826c0ac1fdb2d7803b186c8925ce26c37a9d567f8391ecc
MD5 86635ca7d164d835bec2fe491cc3c21c
BLAKE2b-256 2ffaf11e5407ecd39cd146bde4c54458666b3631c0832896967c0daebc659caf

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a90410d10cd3d7f36cffb339b4ad3f20f4866675ccd2eb3a251c8f30e59463e
MD5 43ffa74623bf0dc45a557e67d4396c70
BLAKE2b-256 03934f2cedfecf58a10c03debe9dc7c3097adc9e33f455c30075b9caed1708cd

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5d320c93753aa6ac5e81c898a874ababc298d8185a4bb97c16a3e17e6d36df7a
MD5 5b64578f924d2fcd0101a982e1690d9f
BLAKE2b-256 9df3c9d3c6722cb6948e3f878ac71d8164f3490c3d811bc66a08fdf1e86ff335

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8c763833e52a15cd08d98d335c06006f75a5a9a27fe2a5888abb34a4a58c6d86
MD5 fb4bca6c3b76482dcc718fee2805817c
BLAKE2b-256 0ac93bb38bdab309334d66c007fd8e84e158f3a7f2e2002ca5c6e284e3a677a8

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.3.0b2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.3.0b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 493701f05bae8a32483dbbfe5b11e2af205f06485d6ab24c971ef80aec9d7227
MD5 37ae4703f71a56d28affe9b6ffb0a0af
BLAKE2b-256 d6f37a628f113ffd5740d1a7086cf5e763ce4351b3a3a1b26233afcba5112657

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0c9a01909ac112836e209882fbf9a92637afd86bdc1180baa28fef12791298ae
MD5 0508fc2fb11a6e6a160c87d1b8813d7b
BLAKE2b-256 849952a52e40209578f2babaa565e1cb1f8cfab97dd797017f00c2dd9cf1220a

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c539069fc7f50f07b59a3ae1350a882aa630b19db7016d6ea46d0025c7d417d3
MD5 b8b8d238cd45de14a7358eeab7400dad
BLAKE2b-256 fedb02f3b8bd6ee8253ddff55d9ed85e81e92e9b7288c76ff249c27ad13324ac

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b2-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b2-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 40bf8a98b14e667dad903ca2152bd6586452d5073d05bb6e811d4268853c535c
MD5 47ff9931634d24c052f8c0b1cf5866c4
BLAKE2b-256 781ff47cfef34efc8f22905d3ba3d910a2fc2e21d8647e5d300855f446ca04b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page