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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: quadrants-1.1.4b2-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.4b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 18ab991a3307d1fcf2918ffb7d5c065a996402faf0791cb1e1a94ee0a324f4b5
MD5 6b0ab8a12e298569289721fa1096408e
BLAKE2b-256 42e4263d890dca43aabcc6be1717e3c6068c4c8a8064736d574c9d9552e7f52f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1c2d1187e14e813f56366697311c31b522cd677c6ef7768b47e72b7839a80c8
MD5 29e698059f8af66cb2a97b88e46ff5d6
BLAKE2b-256 da6d6225bf366879ebb7f6c53d461c6049d6d2911425a4aba795e46b7eecd814

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 14dbc35026e98d3e8d2724b52d21c122b0fd8f31ced778604dc45b656baf588b
MD5 86cfdfdf8c53171d71a5696b15c3c595
BLAKE2b-256 988153f4bc157152bc97b0a513ba5d7c5f110be079322591f1712d245a4c5f22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d5d603667ecceae51eefa88537696bd1f1c819db57a7e61b440fd85dddb9b043
MD5 370ad5f6e676036c1ebfd75d90368f7a
BLAKE2b-256 76edacc233b64bd14939ff05f0f4f1c95b30e51e693a1fb4b93157523de1d3f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b2-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.4b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c0fc135db769954418ab3a6eed5cbceac0b22f1c3c21c7b445f7c02c28864871
MD5 24bed4bafdd11750b23fb8a79d190220
BLAKE2b-256 cb02aa47092bc87cfea8453906537b39da972a4158ca5451573131b4ae9d3b40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4abf8feb829fc916718e459918fe8f40215fddf64ba6d9500a2f9c684ba4ac76
MD5 66ca87fb2666c06fbf454a43f1f1def8
BLAKE2b-256 bfa22b08eb5f3d5f632396e2489de2b87348852b0b5154ee68277de1f95fa513

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ab7a6c7215f45db55f6ef34cbb024295c84140f2ca5b7d40c60ed4ce1260096c
MD5 2a2b586cb4b48e20aaa818ede171c934
BLAKE2b-256 38609ff07a33b841a922327d9522694e8bd0e772db023c1e6cd67a83dcff85e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 832d22ca9a165bae027189ff2689459018615e54e8fae4b16ae0383f8441d08f
MD5 8202b75d37c508f80d483a035943bf34
BLAKE2b-256 3d4125e6f24b4fa473331d68665297f183a132f09fb7843c8dff1b88c2bae5d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b2-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.4b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e63bcd207c18467b2bfdb1fb46209eb81b635316b7ad3c9dd794bda59a294bc5
MD5 9d284479a7bacc50866a02e2d6f81e83
BLAKE2b-256 bc62ec06a629b80c0e00de85ed920cc0e98810b4e7516c8f15c92f87796ed77e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f152b709697a19a63a9efd8ff473a61ce7690c04a0b0ea4ef8ecfbe3df2bee6b
MD5 67399f7980c4e914033b03732a061482
BLAKE2b-256 2a55b5d41b0ff606a2c902f1049620b6d27c7a81f9c01eec3a50e1eb8e6c0dcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6254e3fe9211389d0ee833914bf11283191122c63be317e92698eb91fcd5604b
MD5 5ae0c529bd2cdd09d5d815d1e138e293
BLAKE2b-256 37bec8f72ce1c97a93b0b21f4e78005ea51c0002c64c1ef7496c044e69988619

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 5137417f494517a8cdd93c1dada9a895acdc902d105af3d1e24e6ddf2880c321
MD5 6dc243067a36b1a8e74c28dce723ff34
BLAKE2b-256 fed0d3fff70257d9f53a0e6c4798612835d9e97d08a8296398ffb99728d66700

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.1.4b2-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.4b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 902921705352260137a54373a90765688facb1f8f6123ce7f423fdba93202445
MD5 8c2c09e01fa7abaacec7b7d1df70862d
BLAKE2b-256 9c091f65419077d29a8c5612f334225692c594a4b0d91bde38907c77416111ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc8e8e3a15c68a6c2fc55e6b4fa7235ef980ce877a1979d274b51ddb9130ff9f
MD5 f99aa4ae7be0c18a1c3a381676cd1975
BLAKE2b-256 ed54b0d465eadbe69b822202a505f95f7aa169a85c7ebb392425942304df2026

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f524e03dcb24dbc1787eca9c8178cad2bb37757b445ba3032c0f1bd97fa4cc4c
MD5 493f911d7dd7343aebd020a51e31b002
BLAKE2b-256 35a823425cdebf0ef60173850ac294acd74090c37487199810248f7cdc44bedc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.1.4b2-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 747aa6bcd5e07be99f4eb69caaf86759ce70fc90420ae82fa6eab6f314d0feb8
MD5 960d64134184211f99489cea10f0aa41
BLAKE2b-256 101f2bbafb687aecf2613928500dd43c0ac25f2f2de9d0abbe9446893fae9b6d

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