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

Uploaded CPython 3.13Windows x86-64

quadrants-1.2.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.2.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.2.0-cp313-cp313-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-1.2.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.2.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.2.0-cp312-cp312-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-1.2.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.2.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.2.0-cp311-cp311-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: quadrants-1.2.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.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 449985fda810012b663b1a91a4f4a4ad9dc20cf29235990112478d2151f62bd0
MD5 a64cc7f9d4b1bae87f943371e6a43384
BLAKE2b-256 03aff9ab4316bb5becc4cca41636f03e968ec82da37f23e5645a79d3969cd4ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb58bbd58e79d745c4876d55f7a1679256cdf9aed29ddc3df8c1d643f0764922
MD5 4dda5751c8c4de14c3fb9b68b49c2f7b
BLAKE2b-256 a22b87a11764590b9ac11e1cc3473c26f403ab9b1c4f0535a77a5f4de717caab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3627dff09ea3446f7b428e41f07102d1b954e4466273ae6d0e873cce7627fccf
MD5 4598f24c712273dd4c94b9771f0a64b5
BLAKE2b-256 e14b308a6e2df3cfaf68c3b04f807b286341c876661aaf35de9e5178ce3e0496

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2e1c01c5465b202a4949ff30e7716b7d249a788188af9b9f54ff584a6f0f9d26
MD5 9282f6cd66c777811a2d914c9d386066
BLAKE2b-256 9382da089914af926fcb4535999b8cee2814f6ec89a93c8db77cef8ecd748e96

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.2.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.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5b5637feff865cda4f22d598568747a0111e265c65f932bb55e34a3466a04103
MD5 bf030a1e37610d7191e5a8a0c7a9f865
BLAKE2b-256 77fb1928060ce26e28aaef7f9e9ab285032d1b7f0d485af9ec6b293d9763fe67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f89d4d2748cce5520e48af347b27289937e26cfaf1b722f403117d9bd26fc99
MD5 5751576b727e20a1bb90111c7b021387
BLAKE2b-256 b5df2cc0db8575f0d690c6d7f0231e540a3975a326649df6372a33c8ddb556e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2850f55d032a518434bfb0b3baf9cf2062a9ec1404d513f7664509ece08e4eb1
MD5 a243d037ce1bd1580d6641208973b039
BLAKE2b-256 79ffdfd67e31562ed0c3b5133bcacd43bed277a4213aa3ea327532ef9583e428

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6b0ef33610e0a8c1760b5e10811e1da984755da251235d8fa082f8571539a4d2
MD5 147f18d970a895852ea05699016aec7e
BLAKE2b-256 823ae5690471367ff9dcc2ed0673e19087e9e69ae9856eef7fe30e2025256d64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.2.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.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4266a1128302b1a4837abe306b358da55be478c3e267296e030a43d71d7f777
MD5 36e920b7127ea6b7f9b399f08c18cce7
BLAKE2b-256 ba82b172342098c2851c52e798361a8ce554b88e72b32340650665353a207348

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc19ae6d4c62aca51adf405ab167b83f8463742e8758cb01247651c82c5f6a8b
MD5 8bdfeb119499b5318075239f2330a302
BLAKE2b-256 202af6e4a912f7d86d6de558081a446408616c8e0f59c55ccfd0244604bda309

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7f1635cc1b6cba218eaa9bea76d18641c98d2efff007a0575c64c9af28b8ab5d
MD5 94f5b6271ae5b962ee8eb02e2f783498
BLAKE2b-256 b515faf336e40125a1ce0a3c6fbc1f38d05ff0fdb781e1c0090e27a9def4f3bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2b07e5285015f7ba17662fa11b179430ea630b3292f5fcbfdcb34756eeb422c1
MD5 b47d3202fcf8d12eee5776e86fc386a1
BLAKE2b-256 11578420b373d0e04b71e47e68fa6b124bf0e4a195d82530d90e11e8153b86bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.2.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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 896e1fa9657a882a75bafe166c51f2332a80ef006b67b89526a62e1d22d34ee7
MD5 78e475f8c1a2ab8c4ce9eaf1fb6150ba
BLAKE2b-256 5b65eea9217645f8dbeba424dd9ea6ddb332c84cbf9057164550fe06175d29b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40efff5d152487e312f621d82bc55ff12d95418be01acdbd8c7176e8eb812452
MD5 ce14d5563a6d360705581abea5e14bde
BLAKE2b-256 2da2478e4fa159513c035547fb78fa918c7554a6f80c60d52d4eac0e61717d65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ec40b26f834503c0344a916630ffd6277dc1f32c7c84da32aaf25d75e18cc34c
MD5 db991592b006a661a2e36c114236d1ea
BLAKE2b-256 e0af52c409bcfd2db4360c4eb28254cf49fafa91bf386865c087a69809d31e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.2.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 29be9819e4cee5fe97f83f4fc261fc180ea6c7013cd45c6ebcadaa0f4fe14103
MD5 9b10749d1d8ccb2de9b287dd19475fe9
BLAKE2b-256 308c950f556baa138449ff6a64d4b573e30239d0fbd9f442261b5dc7a8189fa0

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