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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-1.1.3b2-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.3b2-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.3b2-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.3b2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.3b2-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.3b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e208e10f40d1b678fc298e3bee8a9cdabcc465d288fdad868ead81761431193c
MD5 e7e7c0d592bfe6f237861c4a5da18c47
BLAKE2b-256 86600834d066f6b8d6eaf54de3ff77a7b2b75d3f8f9e6dd267dc79a97328e8b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04cc88466e4a460fa3fda748a95e43b06f653c3bec9281d2c5d485e3eacb04ea
MD5 9cda26339b521a20ee48c298f5493acc
BLAKE2b-256 5506b45ff1d72a0505beb32955f681b352e2fca3bccea7b81feef769f6478ce7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d246461900aceb5342df528f2288b6247424cf8e89e8d2656a9fa15b5f17516f
MD5 4ba6d6e8dee5285b3213460dfa89ccca
BLAKE2b-256 d64eba4a72c3b88cb269ef8d40eef28f3ae65d54eab931edc7f54ee4e3d52524

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 308c016eb7194591bfe48cab8fea96e82c5e4dc2785a2e5913bebd7ad1b7b490
MD5 1931c804192aa85407300678d88a8679
BLAKE2b-256 2cdd4c9dbd04c1ee2853cfe942bd9e3ebf073b5ba795fd8d44e6bad47fddf22b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3b2-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.3b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6d0f1ecaa310727e12cb3343490cf0a7be3620be9308c40a13cf45077f46f1cd
MD5 35b5e1a0db64d2403947647ed22b0090
BLAKE2b-256 0afcebd046ac21816eae257d40fc577e56c5d65481da6b3c242db19e3a471877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a95734dc60094f302cb1600efba1cabc4739b674679151d6d07b6c023125792
MD5 93850f248adc0cf3da58e674b84b2e57
BLAKE2b-256 e44a7e4f24adcf1e4a9a354c6c549625675bee5f22047a308b4cd6c5bd27f293

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c8b1288ef2059d4cf69d210fc44dc1d45cedbe02876b294dd39e276955fa79d3
MD5 b236032b371137563f7556a950cb90e3
BLAKE2b-256 3dfeca3e0cb4d050bf8a65d28c8a140f82427e539edd29d1fb35b10248ce9fa8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02a13827559dc7c5793297d64af89e9916995453102410c80d63fab44dffeda6
MD5 07f1b41614d6320c0dd68771eeac3f9b
BLAKE2b-256 aabedd42a482cf512b4244a2c70dc66138b3d2ea70ce19cb2d78d6a278a24bb5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3b2-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.3b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4a9a7a079d29b652d1a66c6d8d06c7ae4fc7908d4b12ed0b3e336f6655a9b94a
MD5 8b57ae7da88b79ccaabb297b7ac9e05c
BLAKE2b-256 2e08d81aa468a1f0f62af2ed3699006e820d0d6838bd1f18aa4008bf2861fd78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf5a8d163a7d5201a210b48a6fbe6cda46ed2ecf2093f6d8829709778f1be032
MD5 c6f27805c4dd9e048812a2413c873235
BLAKE2b-256 a2ab6eef9721e9436cb78c7bd9b3563f4b868fbf3a0188548c27fe3b825068b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 76342bd0d6200215b1b5f61b028ed1fd0617cebfeacf03b7f38ee60dd699951b
MD5 c0669180eccf25e8ddab56b1175fcf2f
BLAKE2b-256 dda86483ddb5c8baf6c5ebd57334ff8bf91ade905538abc9df10003aa996ef78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1584af7e8e0012a96084963595571858a6b2ff3c4aee5b561bcdb290abbd3f53
MD5 3875125580c11b235468e2aa11c215be
BLAKE2b-256 59cdd1465685019559be3b561db0a56c174f1ecda920ee798a57011900f6629e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3b2-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.3b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4f951f4893a1505467258c823ae9e712d06d0c7bb50cf34f27b0850c277d215a
MD5 74b8fd63a2a5a3322e33169d69a6eded
BLAKE2b-256 4913952e3208abff5d4e1c9513a4a7ccec2870b26a55f9b93993f475859427a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9cee3dce95fe11875704069142d4152b49c458539195da60679f0e48a3c3f67c
MD5 0b9e20dd5761ec12b78e2539b6d9688d
BLAKE2b-256 254c7a4d4373c3f7804eeebefeedd90b2ae83f7b74cb01e8830cecca71db96ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 097c2c3f85edfe61936cd48c8237a45a4966d7ac4f55a2796e430de30bfc3625
MD5 dcdc4e75022437f49d924c5274cd6720
BLAKE2b-256 5f0f914a207d40ac773ddea0b161f1f9e8281dba3a0c282d38574e3059a7f336

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3b2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 622da11e9fb624e2d516a921f708cceae4c9c1720684d413b8c2747ee1776089
MD5 04ea5c648a532ebb6a7be620bfdba582
BLAKE2b-256 50ab66e4fc689091b0a69eb0fa3d8751fcd5429e55f4783ecee0f54ea995cfc4

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