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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: quadrants-1.1.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e8ec9bfa27856017e941753f375d62fd400c7d4ff13faed523986f3aa6bcd26b
MD5 b33f029d918a0bc9e4de76dc43d3d913
BLAKE2b-256 4e9bdb1d1ff8f72653c7904901b2699ca4d9462928b281d5782e8acc93dcde60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 500cb173aec4c06adaaae051f27bd41556bac02c9ca0429685c098e36911ebd8
MD5 dddf8bc44cd5d7bd35fee94e23b9a60e
BLAKE2b-256 895915f899bcb6bb798073cd40d888dde658398aa67364307d3b2be356f0b332

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1a4b598e594ed79fa7dbb2ca71ab340855b5cf5440bdd319a156a972bdc4e78b
MD5 f68a554206d1e1b261582b5654884691
BLAKE2b-256 4fa129338af40c1e4187a28c00c087660d8c64715e00c0d7e0512817de17af03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55dadb45183bfa17879d456903a0419a1854aecaf80a3c6cb94c28b9b8c3de53
MD5 c062529d779c326110cd2488922ae79c
BLAKE2b-256 f3b6bd25caf6bb258384bd0b88d0e783021246e461427fa078e212aa106f4d9e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2578b90ec3b26fb111412f421708282b5b16bda6a89f99a458c3792730503cc3
MD5 f2991b0a32a352f765a6e44342047978
BLAKE2b-256 cf32e2decde7e8f545edcd18dcc25b63acdb641895cb59ffbf010189a301c185

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 273983d55683f15471a9909a94a5cd8c20db0ff2335dff446a8d92d87aee9efd
MD5 37bb5c921db8018b55f2f0b7132ab195
BLAKE2b-256 40d7a01a36662187ed0be39280d6992f9dd443eac4be2b62de91cfbf9328470f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 08a248df81d35ee5f70075e8defe7d5a1891d04e7aaffd51d0c1f9049853ce73
MD5 6b42bcc4cd111df2b02417f3ce8ffd31
BLAKE2b-256 6ea048ffbf7daace082d13b3ca56934329d992235c18366ee5ab70aac3a2ba73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7655ce9471e016924cdca7e7e6556c711414ad3776173966b5a2deccadf61552
MD5 49fa1a6955ef204562067c4233a2d88c
BLAKE2b-256 77554931a0f599726aa53ffb3ffed4b997374dde62d49aaf52cec975bae8aaba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5979df922ad42a6536b1be0412d569e87b87956acb24cadb9796f856b8ac804f
MD5 be639aab57b830e325b344795fc4a138
BLAKE2b-256 d9c974506591d5dbb5f76d3c11b50f5d92abb6c089fe56b646a03622f1c8fdc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e25ff25aa14c8e766880d3039e3a2aed0d1cd49cdc3a6b65b0988ce0832e05e
MD5 01ce09f8ad59891c0634c7b558cd6620
BLAKE2b-256 3e6fb9d92766d5af2cc44928a893d6765b4eb5f1e3c643ad7aab70ca34ab3002

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 dc9b29cb671906d42899f5834f3690662e45edab6c7ba25093cba22f2c8cefca
MD5 304799a33df504741299931dde98bb18
BLAKE2b-256 51f83dc38cdcf427bccbfb718551491726a2f088b060f16c40ac2bd31c103737

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a54ecff3ad8948b4794ad3299828e7bc4bbdfcfb19f413baab4f2fd2d79420d
MD5 9bdd7347cc5f9c9afd555d9c6dd95da5
BLAKE2b-256 842e3aee15401df43a1e8968bb436754d42f40183183921728a145fad62dc569

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f88d486310be5fee174f59f88a2278ae4049c299a37b4d0245df93e03399dfc4
MD5 0e30825aee2a18e6151fd71c081a22e8
BLAKE2b-256 4edeaa7282fdafdfcfae82bddb0664d8820cd71737083de4e6c29a2abab1220c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce8817e260bf485b3c308c4751a50609a654b18991ef2a6daa74f88330d4d3b9
MD5 9434fa528b63df98d26dae67c3703421
BLAKE2b-256 33055beb4c25d6c9d38373fac21daefb517266d0e77a96278a2f4074def54200

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 29d141981b2fbc651bcb367f0a0eb38c09456d48c811ab7418bff4092df395a1
MD5 827af305362654bb05d598f766e4c736
BLAKE2b-256 db056259e984bdabf9d221528f8680ec55525189d5baa06615530d34cc75e338

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 936c35b8320b6b2e380470dc327f8e772b551a7fb28d789022fe48bc86fe4873
MD5 6a24e7178847a8da8668d3cf54eac1cb
BLAKE2b-256 0db4ef66b544d8b8801daab7261336a2bb400c3dfeaa16256932b5d282ce59d1

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