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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: quadrants-1.1.4b3-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.4b3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ecc78ed25698483d43e95c9e2813f90ef6e547c3dfec4628f9ceb09323e39f42
MD5 d0a06b7c1fc1ac6a781957ce127837d6
BLAKE2b-256 b2a0f9248a0691b7b4e8e504a26bcb573fbb8ba9eff4bc8736b0c67cc14b6790

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 809f28888a71742d6df6574ecda0a5dece0e604a232b6047a334de7d17ae9cac
MD5 a180bc04bc841f8a8e386db2225c8dc8
BLAKE2b-256 7d79127000004c75d4d4fe29ade4b5ccc892cab3047d55397daa1018a5dd35b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6140d32b2a03c6d4ab503962f6b0acd077e47597b26affe4d86e3348a9e945da
MD5 a5cd272ab905a4597ccdcd8dbea1cad7
BLAKE2b-256 dea072329724d68710ab90c6f2294457592c69159ff011cbe86f85a80d789d5f

See more details on using hashes here.

File details

Details for the file quadrants-1.1.4b3-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e9c4f599854a2f2a127e689121708f77795d2cc7a69daf14c5c2e0d8c87a8fa0
MD5 ba569ce348be4bf5989181e27f92f11e
BLAKE2b-256 77ac723b3233dc56ab47b4201aa091fbcb43f7bae3e65350accb39849db73c26

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b3-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.4b3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 72062aa13517839a0e529299ead040f04b4c00e31b4d68c1d7c17e22a1e50a19
MD5 74fba9c30a570568e31ccb21607d64ca
BLAKE2b-256 8e5bce94730cb43875aefabbf7efcb7337da574b068f209bf74489c87545cde9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0462b8bc51ba0d157c6960d26fa95ba587848d6420fec08fc68c3fbc071f9c49
MD5 1fc9c44ac3b6ab63e65e255657d0fbf6
BLAKE2b-256 acf166fc52fd7612652d55a09037cc3a7a667e1fae700840d36fae70ba89fc12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2e6d7281fe31867d1fa379702cc9e21437e43c8a170394004c000007a3207653
MD5 1c73d922d1edb5473fcef4f291da92c7
BLAKE2b-256 75bc9a6abc9feab48c74dce079d84575ccda48551c98781bb70d344b25435bb3

See more details on using hashes here.

File details

Details for the file quadrants-1.1.4b3-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 16fdf098f05c169bfd041478d25433bc6a5a4ecdda2b760fbc107a14d18f787a
MD5 6acaebb1f1465698d43fcc186de4799f
BLAKE2b-256 53e83daeee47a86c2327908183f9a2a1c33eef36dae730cfbab1b916a7b8e5db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b3-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.4b3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a05c0125b5a44942b2434d53390df2dcdbda4728ce582ab33b5960dc444d6d25
MD5 7466e01f01e57104c2961d443071ee48
BLAKE2b-256 ba0119abc8bc8ac37ba181d8576809acbb404823f97cfbabefa39cbf1d70a254

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9bff7338d787ab0599af975c4f8021132e8c64c9eb65d73a364dfd0bbe26855
MD5 752103a0f4301528cf45d830a060f1ac
BLAKE2b-256 6f80a31f064572271cf5dcdd4ae58e5ca84e729724c61628a6099bd898cbd837

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8a9a3bcacdded47ec3681a73e766e353591fe641c08d4859b807a00c9278e147
MD5 90cc8a677d8f4da92b1443e42e4b8e55
BLAKE2b-256 fd0e50fbe9d82e51eb1a014aeb5e4fa000b9cbda42b728a63d3d5e19833a7ecb

See more details on using hashes here.

File details

Details for the file quadrants-1.1.4b3-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9111bb590acc0ce3de104252d9304f23129f02b0caefe2bd044a2b0e3ec0eab0
MD5 fe73da1c754b0e065933e6a7612ce4ab
BLAKE2b-256 c17ed8445d81145bc7fc88517f2ea422b6fdf73d77efd5afe51de61c28e2d4cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b3-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.4b3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3434f05e07f3d85ba6152b89740664a55c8607543ff0e02a3596836b66b45f45
MD5 fab4818631685c3fbae7f988639c8653
BLAKE2b-256 6add3560b632fdbc980b32d6ae6b2d67a7c1386df926f161da58a443e846be97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ea125379a733292b8068a3d4b7cb4f1da96a9b50f9ee566472e1a72e8f5d8ac
MD5 74d8af5229a9845864a3ecad9ec4f333
BLAKE2b-256 81a4ce4dd2a252957b2d4760b3aaf0042f2f76fab8a922db4d782ec5f1bea671

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3fc44deaab4db6e4505f3967a0e476d47858f092c4d3ed18a7a11f13d9976409
MD5 875b0ccfdcef153656621ae3a6479dad
BLAKE2b-256 53aedc20abe7ff95813f72bd1d29b619da4e428cb7c60427db54f67d1379ba6d

See more details on using hashes here.

File details

Details for the file quadrants-1.1.4b3-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.1.4b3-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 96c9309e0a7be46084d97aeb52e3eef98c4a2977492ef32fd364f5e661444e90
MD5 410d4304de1bba153312c8604962d56b
BLAKE2b-256 13c3a7438fef09c6d09cd80c188ee824e7fe4a6bf1b2005f4301dc6bd8120518

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