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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-1.1.1-cp312-cp312-win_amd64.whl (30.9 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-1.1.1-cp311-cp311-win_amd64.whl (30.9 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-1.1.1-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.1-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.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 30.9 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dbf63a5115eed3b4966fd7850b83732017d06d77c24e766fd43715292c440232
MD5 c078356c5d8306e124c7462ac1a28ce6
BLAKE2b-256 1b100b7ee8eb6f6a6aeb281a23196ec03569ff161924dd794e84b18d9ba70686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3965efd2d5b0f77020a4ccf4c2c7e69a27f89cb5710913c07b3b30671c34258
MD5 9b9b28a0e16edf03cd7655b619a926b4
BLAKE2b-256 3256c264502e07e67d2d6727c3e63a4a848db37963209ba7fb3924cc9a93af52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f98a0130a5e2ace2a864177fa09eac8219185cbc3292a2be158e2598e6d48252
MD5 791c93fecc24a79f4748a072f2b24c1c
BLAKE2b-256 43cc9cd0fcb2a2d9ae2181cd4f11e7e7c5b405fe2968ae9095034516793f2102

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bdf8981410265cfc94ffb46766205c121db97488bb6c767d61ebac1181d76b78
MD5 b7798681243d981398022a1ea58187c7
BLAKE2b-256 d30aa9f63695997f1d26ce89fbd3acab4c28f6734fd10820bbd103d5c22a9de4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 30.9 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 de878839c1a15a8d63cc7903f7d24a213d880b88d0ef5beb7f833309f5262bb7
MD5 607c75925153a8dbaf2cdeb7c99ba498
BLAKE2b-256 d7fa71f09f13c0bd8cd587727b845afa458b84ad42423e8bdb9b730b05468a19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 615e04d882229d441f9031903354aa2a6bd55cd5ac64eb4e9fc25a245a154cc6
MD5 b4b8edbc8374e3189ace43f4af640a35
BLAKE2b-256 a887b064bc33a3aaff9f44c668fd32e23417cfc3dc0ca18567197258380194f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5608fc1c404bea874521f1473d97ae611a8763e8703b8bd63c2200bd89b364d7
MD5 2452985175f0f8ad889045ac0fcaef6f
BLAKE2b-256 aa760e57368573272279f7a443fb11481bafa148e4474d2edea2522cafeaaa3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e8ccdb5166105793a76db6bb7a4d48c032c31a9f81352928fc3290221a741e5
MD5 a79270e633a7c348cfb337914ac16abf
BLAKE2b-256 7b8261079e6239dc5c561fdc6f494b8be1c6736b1e057f0c01c059458111f7d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 30.9 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7328eb4e0f70e840d8b10859e0543c452485dbfa8b312b4537df755b75b3c6dc
MD5 c4852fb0a270d47ca6b05c0d23a77fc4
BLAKE2b-256 05848a21ce5b1d8352ebd183262f8d34608fab42e3be1e2f567545d26e7eb7d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d298419fca186df12fab7253621c3a7e24e003a39cef4bd1bb354991c72b3ae
MD5 b0cde8021f332f02cfc55e5ceecd47c9
BLAKE2b-256 7cd6341fcaa6c7915580655ec626c34a64f4e03845ed51041104e48fd77fb9e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d9961da3edcb4e021d60e1998ea7161617d4f629e54b7c0a3aece1e5353e74f9
MD5 8175e04f0901bab33b2429fb81e03e62
BLAKE2b-256 998181ab48c55cebcb01a19acdfcc5997398841aed008c41fc8fcf477c20efcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b141b459f55b28051d569f785cb67809689b955d84df21d1ec29c38f76e1600b
MD5 3ec2585d0160417cb1246a7f870b7a1b
BLAKE2b-256 62c92c1ae6f5bb45ceccd587f5365d3375ba45a3ead070a5c7ad27a4af63aa46

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 888b308d831f2df669f4e36c59540b9b298d08ae8e2c8b508596888ad4cabf37
MD5 c445bcc39271ae0f916eca8a615965a8
BLAKE2b-256 b7ec41adcad59003153dd4e500e7406ac6210df5cd84ca6917935ff1ac5ff5d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 489fa32f99e91a1be6cfe6e7ac94df28c3b87d6e3e1d61ab3d6443533ab5280f
MD5 3b1fdd9659a7de0b504d27636312af56
BLAKE2b-256 481f1e9a0b72909af3e7b494c6c19d9d6f4c2b0e4ca1451e8c8437913c038c11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 03eafa00e2e8cd3b536f6e29c7214f138f4095970b1f190c76cd312b25de1bd2
MD5 a69e4ffff36f595df6d23f87488a2a60
BLAKE2b-256 d2df9c7e351a2e36ee8a1c21c0be3e61b7d687096180117d123206735e526c21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 583605aaa81894b76b7e315e7fb3e3b19f631bed7612cc4d267e1743f703722a
MD5 b0e39cbb9953caf4aad121a6597f3e7a
BLAKE2b-256 c8450cfe9ac8f7edb781f6bd993df4aa5cf81461d846226bfbd4ddceb703027c

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