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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-1.1.4b1-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.4b1-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.4b1-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.4b1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.4b1-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.4b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 91a4d01c2952e567ba97c730ec15a68eede550c10530fc4b72b35b2501e7faeb
MD5 e9dbb97132a8789e319a92e39c6b4119
BLAKE2b-256 86e726540c1c2e81db5762d55e5ab14cd390856dd9d695ec979ebf3061d6a00e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70ae3bc2b100c6a0b4e0b29f8f7bf22fa7697f75390922bfd9a2b3145d943479
MD5 ae855aa2960c1d01a18b423d1add3677
BLAKE2b-256 29f8f8b044ab643dd93c8b61c361bcf83f4a0c299b949f1ab082729b846a4441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 773ba0befb3e72bf13c72ac8c664a8b57f780f4e938a0e3294f4e8442db2d507
MD5 627b7cd7c2aff8b194fa9f525b5dc452
BLAKE2b-256 19afd04e838e217e1f3aea3696d38b0ab9e8365f354c8fbfedf70fcf3f04e201

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8397169abe63bb4dd3278c961dc7e0457a0cfdeaad723589e3c96cd11cab6fc
MD5 08cce880489a085b1659b8fb0fbec628
BLAKE2b-256 3701564e9a26ce0e88d6f4d50b66b8f12f95bb3477ab4f232e05cf098c11848f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b1-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.4b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0932a393dc9dc19e1f130eea9f0a911fddf8816ccb30b29938841513434114b7
MD5 b65b63139a4e6cc0a00def255c9e0ac3
BLAKE2b-256 246f0598cd4b3712e662482e6aa1980a18b717e4b621d0b105383d720779ef3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21001f0f0adac4596af01b30858a3904e8cda7fd59ac0c596f49e8d810f9cfec
MD5 405c4fa7813645df4ba43026dcdbd4e4
BLAKE2b-256 36f8e03a593d2e99f118f3ec4686893126700e3c36d85cd97883eaa657e2d856

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0efea5b906fe0d2c7474ac485daa4f7b303c74960b44c9979bca81de1373be0c
MD5 de45846f01666cb5f6305b7033fd2007
BLAKE2b-256 80db8320a063bd1102d0f1c400f24d5f9403347cbe23d91e094baefd0ef7cd07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89a800ba017109f2f79589659fc807122c7760883e4269505b8292f3fb857cbd
MD5 9b002876890f60eda131ab10cd4f6c95
BLAKE2b-256 35d93ceb36c39191a2d009862c426bb40c8306ad561fc9bbe9b0612f39175f3a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b1-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.4b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 64d547b0ebbb03e2f7036f9dbd2c633653c5622d0586e6546152c95c3f526dd7
MD5 7e773f69b1574e616b6c2286fde72a67
BLAKE2b-256 ea7ca8649a9f0fec39cd315c63a4ab44d4e572723988d33f16d655ec74bba7ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb859c4bca0392bdbf3d0fa9594749b85989e2fe0606af841d8ca221b3577f17
MD5 33d8fadf12f08c7ee3e257d2714b7b6e
BLAKE2b-256 4d217f8d3d105952c29b203c56896f6e26521a2eab61933e16e94ad33c272ab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7800c69b088f3b363d87ed9e8970e8a10175639d7d130162637d5163fda0de7f
MD5 29a9153b8db5ff53a739fe25d67a3d0b
BLAKE2b-256 31f4608c84143e5fa6421cf55fb08a3c2bd3b8ed0a588cfe6d3fc6244c522aff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8074543d73ac691c1c91c7e4d2e8b7073af59855217ec297555475fbf3e050e5
MD5 024d0ff4820abc81f057f7cccc01cae2
BLAKE2b-256 05307581208819d2bb7f6f57b152842d087e49ec4fe88b2ce52ae657fa1403c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b1-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.4b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0fd7dc9ca16bc1d34ca1f16c71e59485ada65a0d968ca25f16f9fa0d62528a1e
MD5 b6ec16c61f2e192f3c25180fcd454f03
BLAKE2b-256 d1464611c7947af80d1cdae42484b8580c7088cb8d884b1c9d9a72bb7d2c1843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da92829fc2af18d70e552969f0728ed9e9e4455d872f8108346d331ec4a2fe71
MD5 dc3ee0e0ae49cd15c2a6c80c4245a2b0
BLAKE2b-256 5a8abe1fd62319d6642948ab99d0d0612b11a45e58efcfae09c8ba3ae3c488db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b355d120788bbaff14e128e6bb6eb92a1b85e1327bc9a846e53177e6a2c25227
MD5 6fa80ead9fbda34b4c267a133ab1ab2f
BLAKE2b-256 817c8cf22f98ce674002ede398998ad692f0c4a89eef60582752eb9c514ca56e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b1f713cb88ca2c7c03b86c1155e2948f38a2539b73709c79f8ecfdf9794dddb
MD5 0a62b7cb5cadc831bc5a56ed1f407c5e
BLAKE2b-256 dbac77f3f3bb01bb588e5e7ff5fa66e1207f344d028f71a7d6c7c7f941c748d9

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