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

Uploaded CPython 3.13Windows x86-64

quadrants-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (40.9 MB view details)

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

quadrants-1.1.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (40.9 MB view details)

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

quadrants-1.1.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (40.9 MB view details)

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

quadrants-1.1.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-1.1.2-cp310-cp310-win_amd64.whl (30.9 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (40.9 MB view details)

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

quadrants-1.1.2-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.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7778bf961a5ec7d75cadf983f5d2b7257f8f688a6fad5f73c6128317c6838050
MD5 ef22391a5a48480fb69c2d4e8fc6b5cf
BLAKE2b-256 020b0c634b4e05cb50196fe4ae765a34065a3c7451e52eb01f32ee132e8fe963

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c05c45e9cecc24977b5483ca7626cf3c23f17513500914a0c352fdbe541656a4
MD5 a23ac1fbf473707e3cf85d0306f68d35
BLAKE2b-256 e71c949511c21e8975023de4ef7c0f49712864fb3d1eca1d711147d5b420de4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 83d819dfaab257479f6cedeb53e387df7c406f1dd6f6164cbb564339b02be51e
MD5 e13febb6ad60f528066abe404ad2b0a0
BLAKE2b-256 b340209f9be1a50a9f55e89add334373077214fe61f5d514e33a241d20409ab3

See more details on using hashes here.

File details

Details for the file quadrants-1.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddfefb5c111a9a56752cbdd7da4ac7fb1412af25dc7b2205f050ea461820e267
MD5 9388a24c392232b05c7256e886eebadd
BLAKE2b-256 1690ed8858dc47fec6d9358ecbb75dc52a9d2e8c64b56ad366401e31571c885b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 19ffc446fec14a83f55711092661dfab44225f50583041343adf734400e6245a
MD5 fdf67444d89081cd3e80afce83bae67e
BLAKE2b-256 a0a351ced7d3f6332f10145625916a691abc0cef99e2c704c39eadf595c20359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c336b3d05e45619b4ebedbcfe274fb00a32227ccce0909ac8d8214cc2a19ea41
MD5 c16a76b3365bd5b77e3fc70afbab2a37
BLAKE2b-256 8e1b9e35470d0a385e530cd87dc36c96e560d0d03659811d1707e2cdc63dd0bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 252c1a637c798636ca4f11616d43a8024939d374257b2e533e14ea70bcf21684
MD5 107c892f2ef4060844fd18ccaa7b19ee
BLAKE2b-256 0d1d7afe186178886e8bcce8e2dfe9a0eb5864d4bc183b19dd152b930bb24c49

See more details on using hashes here.

File details

Details for the file quadrants-1.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26b79a4c142c709a9d016aab33eea615f1d40b72d1129fb77d958c77965fc896
MD5 adcc605282f9d3b9eb2e07b9c257c116
BLAKE2b-256 475e82ca4e1ddc9f9be514474ae6888836c02d2ec39b10f981e11770c939c46b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 469b1af7fc679ff3843b9561e45785ba42012f57d38caa1dbff5567d98d402cf
MD5 400003eb46c8c909bdcf6a0b2d623408
BLAKE2b-256 37814d6fa8efdc084cbf1784fbd24e9894fa0422e8093c42a5a0e1447206e928

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36c1d8b6e8df75b733fb35c6cc852bcac4451d995913da091400acdcf5ee237f
MD5 f88c2f3bdfb0a145d6f7df162fdd8336
BLAKE2b-256 b3951dda09e36b7d6ba344dab862a489467bef6f6bf8a18a178859cf7afcce5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2a4f3b0935d167692e15eb6e06827c53b68a7f6f66e7aeade5df32abe71cb5e6
MD5 2e7d363c3e504dd7b54761c031b3e89e
BLAKE2b-256 f0b7151d944fa0c4d9c8ad03ae5527d34e8f789f7e16e3cf0345c6646c1cae64

See more details on using hashes here.

File details

Details for the file quadrants-1.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9120aee01d84f441121b9ee6300107009254a44d0222791543fdb6ebf6444e4c
MD5 37a34f978be92ee486a3ac35cec55a3a
BLAKE2b-256 ce09f82e25c52691fd7a1f3e3ffae3d0e33c164080297a560306a852c5b10f71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 30.9 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5cdacbb913e8169ac2aefcd1122c559d701cc8ac3e23a949cc4f2a8b78de0b30
MD5 bf4e75682ffa2ebe913d8c774bb1574c
BLAKE2b-256 0252b822f431eff4a04e556d9ef95cbada5cd3414022b3c1cf56ebc0f6aa0d43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 906cafcbbe77b33ca8716726617977b5a0accafe85776faabcb87b4ef579390a
MD5 a9ce599f491e5d9b6869e2810d6e7485
BLAKE2b-256 d1cd0d9912c3d923427f0528adfa34dcfd8e0d6f0b9c7625f4bb3a558e93d71c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 78133dacf31a26249f2fa69ad14303ee978832ec05d3746a3bd1e2db3507beac
MD5 af77b94b2da47c8f34178357e0efddfd
BLAKE2b-256 50ed5a7b23012bf39b943b838d4ed448ea4dcf505a577eb0cf2eb70eb6181edc

See more details on using hashes here.

File details

Details for the file quadrants-1.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9d0e75f096e4f01dc1a865783515d725c418d506a394704006405e6e1720c83
MD5 41d4355fc838275cdd50fd70884c4de7
BLAKE2b-256 e8e6d6bb6f4c99fcbd8398f92c9e0f0c321bc516b3925308753190516e74c8fb

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