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

Uploaded CPython 3.13Windows x86-64

quadrants-1.3.0-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.0-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.0-cp313-cp313-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-1.3.0-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.0-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.0-cp312-cp312-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-1.3.0-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.0-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.0-cp311-cp311-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-1.3.0-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.0-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.0-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.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.3.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 70c2985fa986b908b1e12564f9ed40b3cd45bae8986d0e5bd41d033d7cf48daf
MD5 128d200cd6aa9a790b56c19e2c7261db
BLAKE2b-256 0c2ff6ab0908b931e347789634b2f65bc5f1fd07137bc847376fb2abe982bacd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2593e5a1078c511dd33e22225da8ea024023564feac331f17820d71ce577194
MD5 f8541ccc9bcc90482727394f62fea0b7
BLAKE2b-256 59dcab888de75da5604d8a604822a32be2761d5716195d04e467347681215f53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e84d152b6bcb7ace8604918f157023f1890703d591ba3dda235d52ea71667688
MD5 9f6b66966f10a8983151bb4d4e67f1b6
BLAKE2b-256 ef5ffd875f16b75e3f021e9fd6f89cbd5a862e2b2b32de275044ffee3fb40544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f078eaa672d7b7793e3d045287b2caa1bc2ed56dbe9dc4577ebf3ce6f721fe8b
MD5 a0d1862bc642aa617e56bbe39ac019ff
BLAKE2b-256 6256822c0b2d8f61b44d272941ad2e137a54cdf3f5ea107bb494f0e5ca511043

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.3.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c1e5ede6dff01afab65c22b33ce0a651753743dddd1fb99041af0c7059e67e68
MD5 260c237a9de0bfd7a560758c828327c0
BLAKE2b-256 68d6d1b72956a40016260d2197fef80ec27a5611bb1d57f3fcf0bde22f3180e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79b09a7af4df51f4733dec6b755491ef2b8418cbda3ec042130c555f89e8003a
MD5 a94405644fa30d2ea7c33139291a83f7
BLAKE2b-256 564868405594c33062faa77d349d5f320300c7bca3a7e6b6f332c8f7e22bde9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 edfbd97648e3a0d23b4bb592b51352ddcc4cfb186c11535002c171316321fe29
MD5 325eda6b68d305d18e7c748df8901977
BLAKE2b-256 1ce015cdcea47a587db6ccc03e04eb16cf2983ad7bef6557bce4a4de85019284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 83c9f4fa87b1d70ff279e8e1a1e8cf65344880802b792655a7ef49535dd780c2
MD5 8a111ac48f01cb28d6945ed3481d6c85
BLAKE2b-256 743c8bf3d846b0e385b6fcdfb0ef9760a6f99b73e9fc9d5f7052a644add6b7d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.3.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bed8fcf39738fe68890d60233287f2cb338f1ca20141c3072c87f8ab14b290a3
MD5 f500ca2c346b3920a066b335bd01b7c1
BLAKE2b-256 c9271ae772c0328ee191040ac99e6c2d27c396f9b85a7cc06dd0aa9c5a965876

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 908bb35442b27de346fa17aa7d6458fc782a668dcfb4c6192dec08a7808509bb
MD5 45f68c3b9cb76474df32170492ae5b97
BLAKE2b-256 7e3acb96b77751e7ed8d0dc74e5a83229f29d2bda2bb6799b8e9f06091b61c20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b25b16e13e7ab77c2c3ea8e4863dcd8e41efdbc91788a56c11c04f03dbb6c585
MD5 010321284377a47aec0a76d88af1c2cf
BLAKE2b-256 40f6b59101a6c35dbb420da2d5c5fb76db813c11330772c6055b68307d47e939

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46bed8c9ddfd2a787f68e77e09961752155684f49615315b3aa1f75f97ed2369
MD5 5d0d89cfbea1aa6117a716552744a971
BLAKE2b-256 cecba537c1360b8185c1c6e62837f25347736ed450f20457691aca7836578934

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.3.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 247be967a9aedd1979b6499e3161e9486cbdf5bff49f1d5b0aae61081da0d83e
MD5 d53c7f561560d369b38c3b3dab5c98d2
BLAKE2b-256 1020879067189d24e513befdb556b1cca26b9f68d61b2b43a5a6de71ef8da7f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3ab881eeb9173b62787bf54d2949ae07ef745cde43228ad8b2c0037a0b4575e4
MD5 4214560094f848dc52138206db82973c
BLAKE2b-256 d06216ef6186468e807db3eb47ed4fd169e603bfa08b374ebb4e3c72b3d4ebc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5faf4f067c1404febc05fd12bf32b4aa5d7c4a3d2dfa79de3af7bc62446962c4
MD5 18ae3f732c6e21a83926c367c9460fdd
BLAKE2b-256 fb980dcfc021a83388c56ef35e8e440e62816650895d8713fa0fa1b6fbbdf1e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.3.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 28cdc1290eecbb16e956c90fe8de1ecf27a3233eab9875490ad189cebd65add7
MD5 d6b8e937dc2e8fc0b1d8ac0b6cfd28ed
BLAKE2b-256 7413aafc1a02b354086636b8cb2439bf3084acee4a4635e05e1794c0a39dd111

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