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.1.3b1-cp313-cp313-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.13Windows x86-64

quadrants-1.1.3b1-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.1.3b1-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.1.3b1-cp313-cp313-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-1.1.3b1-cp312-cp312-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-1.1.3b1-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.1.3b1-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.1.3b1-cp312-cp312-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-1.1.3b1-cp311-cp311-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-1.1.3b1-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.1.3b1-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.1.3b1-cp311-cp311-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-1.1.3b1-cp310-cp310-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-1.1.3b1-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.1.3b1-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.1.3b1-cp310-cp310-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file quadrants-1.1.3b1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.3b1-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/6.2.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.1.3b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c89edbd02a24dcc26dca8a5e0e222f5e811643f30aec578aec29e3d60b173ad9
MD5 412353685c11e14829f4a3f6b434269f
BLAKE2b-256 962fa33e6ebe47d398d8642a3f9d1f1c6332b6d88ddb40454f27a1c99cc15a0b

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0aee42a830ac6a6ea1a80c6959cbca5aba4dd4be9e7834a5e423338971c1f92a
MD5 959c321b7feaa2eef7fd15c8fd9566f3
BLAKE2b-256 7a23c22558bfb47f982858b82d2a3ea8781a9fac13b9720339d293fa18314b49

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 acf9e043622755fc6b9b8f7f329bd320f93330fa4e4b95c9844f0c0ad8275edf
MD5 53e18bc78ea634f51ea2e49aca74ce19
BLAKE2b-256 e2896efd1b46205a366daf3f3392daf2edf1f1e2c4cae361d3210e24914db140

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 230be8991a9ad4cebfc273fffe333c33c5a1538e8f2c3e7a8a872036988f9774
MD5 8090bcdd05d735c62f38aa21a185d415
BLAKE2b-256 cedc3a4f6cdf2a3cb2209b03f37ca0a3673d8c2bccfe23043c3df34cab60334d

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.3b1-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/6.2.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.1.3b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3cbffdacb03002ec845bdb5ac5de38105ab7ea326298c41eb285543cd56d17bb
MD5 885718661b13dfb8ef2f837fb3bc6be8
BLAKE2b-256 a73db5abcda3255b9dd41cd6ccf253e0392fb04d2da4c75e764c1a82d808b1d4

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c5c1567afab78419dacb6c1c1425fa6a9f0099e3c935c2856add73d7626338a
MD5 ed434d10e1f57a6f0c64ec66542b57b9
BLAKE2b-256 a60850b3b6d65ae12cd28ea7dba732b67744c0deedfdaa8f2b003510919ba5d9

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 39b91df03939f579a5c22f8c7170339a0b1734631e6806deac528d22e1c9b5d2
MD5 1d00e730eeaea596b863bc986fa88b55
BLAKE2b-256 0e7eecf8fdffb9d8bf6c2ab7144307ba67797af6cad81002c4ea7a75a9490857

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ab4ca50a21e51d3395cee90576b797eeae2a317cc975e45f627ea7aa00ce432
MD5 6b9ff81631f15da336f9d63f6cef7fdd
BLAKE2b-256 233aeb604eafb0b828c588836f009d27a29087ab8f92ab82c01f12586232f37b

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.3b1-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/6.2.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.1.3b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2d583129f9cb29797875a9d7a6075ef0b6100e564702fba471f413330ab06880
MD5 77a6cabe3609926950f4e271c9c8853e
BLAKE2b-256 04315a61b938c96c4aa05eb834c962ea51b71a756f6d3826d962d397ed65b2d4

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 90a3c0b818eef520965d35b7f5399461ade7bd4e1c37fce13d10c8da1cad82ab
MD5 14d7e9ccefc41b04ee38c398d1eeff88
BLAKE2b-256 5e246fd2c45753dcf03fcfc36dd8ea9448b18ebcd2c51f36447da7c264dd6b5d

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 bee0951360165ed98ec39ed79adbc44caddd464b7ffeba6f387feab8b02adcb5
MD5 1f01f22159905091989d4b008d6a6351
BLAKE2b-256 8eaca5c3bdb6bd6c8fb1811c565acd117d90f689c17663e113fe5492aeeb3ad8

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e3918ca5f62f860159413ccb04924bd73c968e41e192adad1a033e7f66ec42f
MD5 c6f553bbb0ee268e5da921b6f906c671
BLAKE2b-256 7ad93c7dc358779d540d87f58a87035d6502e1bf7c459c60c671c2fff0ccd056

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.3b1-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/6.2.0 CPython/3.10.20

File hashes

Hashes for quadrants-1.1.3b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3706be35a16f83416847cdef239e42c0459e30898e2abf061a08475e66b1042f
MD5 0fe320b950a45eca1c9d577fbd8f0791
BLAKE2b-256 a9837c1881d5a9909a9a91beab9e980fb59fe9092e7ad71ed62a61cc3331f940

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 edbd642c591f116f53d3793948ea503303faa53a072e869fae526e57caee7833
MD5 c0d0c8c8f725daac7bf2464e9bd5416a
BLAKE2b-256 3ef4474f19bc82a010972a4e8c8394e00165206f32d14a0be6efb55994384f79

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 68df240994d63dcaeee1ff02efb1d1fbe1caeea61de64b8a8d9520268571b55d
MD5 c0dd9d18001ad905882ff492175fe08b
BLAKE2b-256 25be3cb543e4ec275914f114079bfe0beb31be73a441b0e06925a73054690e5e

See more details on using hashes here.

File details

Details for the file quadrants-1.1.3b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.3b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c963f9f8eb9f26cfec64461af18c5935e67354491339b3826717dbb9bbac2d3
MD5 4f09e73eb12823d99b4e0e375263168b
BLAKE2b-256 3fd45c59cb34f558480a19dd56cd4fd12d932c9970ffbcbf9ef5bb6910d47649

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