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

Uploaded CPython 3.13Windows x86-64

quadrants-1.3.0b1-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.3.0b1-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.3.0b1-cp313-cp313-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-1.3.0b1-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.3.0b1-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.3.0b1-cp312-cp312-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-1.3.0b1-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.3.0b1-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.3.0b1-cp311-cp311-macosx_13_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-1.3.0b1-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.3.0b1-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.3.0b1-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.3.0b1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1baf90c826c7c1129f2d741881ec9cfc23238ec1ed15485ac02ca036a6b6f4ed
MD5 1273fdbbe8a3974c4bbb415e6f400f04
BLAKE2b-256 2c874ed07cc80a5905f58ea234de436130b38df63521f42042522843d8349b4e

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53f00f93ef397d238c316082e1f823a6caf76d336d842fb514779e7ea5856ef6
MD5 6a9355e10fb094dcc3d978a30cdf5615
BLAKE2b-256 b88bd12984b3483a4f23a3e5062c72659f785b067d767a8a325b0980ed65f8f8

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6d3429edaae579c6daa1c63c490cc2fcccb99077e6b612165802b20c16d07179
MD5 6acf08096ea126cd454cb2944d58058a
BLAKE2b-256 2108cf4687a6bcd0617a9644ec4c7215b993cfe4ef093a3656c51acb29af46cf

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 de8dc00c726f4c286952a39d807f40f52742d8f7fde194f6013b51d2788f6163
MD5 c734e8531ada7e45e0d19807a9e3f6d8
BLAKE2b-256 a38b68a830f7a656483f01e255176f0b078fedb7e171db07876436b9c937905c

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d612b57499823aeb086f5b4617950c30029856f6b519c6f86e5db53dad4c34df
MD5 9916e7b50e9dd56af80afd53dc51ebb7
BLAKE2b-256 0e7e4ec51aa81c788c9695ea2fd63754aac90bdf07f0558331ad24f49aeb66f1

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26ef3eda36ca1d9273fba84d6dd9c84b41bf1b241c3637f609dfdddeac3f6cab
MD5 054d9eb04f7b53753c67ab4af5ed612e
BLAKE2b-256 6baa11205a8e22de627f367b81677979bdabe1b8330150aabb1f7f91fe72234b

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 461eb9ca76ccbfaa9b5c2a08cc6164f7ca65038658443916cfac232d8c8510c0
MD5 db566ed2b971913b6346aa0631713365
BLAKE2b-256 e783506d0436d744deb398d0de27f37a8fe70409557c59d7bc3ad2433ef99b97

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 14b654b57371d4bda94869581c81edd80969c37e1f1a65d23c303675609af9e2
MD5 02aeb2a6a2b1007b320c2eccbb9f232b
BLAKE2b-256 7ceb4c3fee99c6074ef1984d34808b13c93fa1095e2ee61a9253707749484035

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e80c0957c0813c37decdb059806f390bf3bbdcf0f7aff22f3c416c736a241c9e
MD5 73428a24bbf48cc3b75717b28e09e8e2
BLAKE2b-256 2017a6dc632129ae5970e28a10c2892800bb34113261a4e4859483d98aee7068

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f7cd159915c373c5151e12b8831cd8532ac7384f47d3b24143ede3cf19b846a
MD5 a5e2902d9c3f3468bda8694254eb2ce8
BLAKE2b-256 d6a5d5a10be85560cffc2919817524bba897d2568a32fbd65608659037bf4c71

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 95a76b50da290c725f9374ab57b804f7674107269c33811f6b1eb894151311f0
MD5 1cd93d93988dd902af656ab7d95f033d
BLAKE2b-256 b03dcf993d960ec261d55d91815dfa58b2cf097dce6a762f8f325411ae28638b

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 bc860ddde57830d4c5fc7ec509d8193c67c4b6458bd5f9792a7af8a2a301da51
MD5 27cfb5514a4218a01c824747ae0e5085
BLAKE2b-256 e7b9beb3995292c732aa07303a98473d36cd70cb33364c9ac613374000aa93af

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3fed573450012305ce63c68d1157207110d0fe30c67501804c1f668fbe784f50
MD5 2169cc0dde39db2a676043582185df58
BLAKE2b-256 7e7566395b6dc8721e975422fc2bb03fd6337c43d359dbdfa5da60c6d8831910

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be5aa10d6a2fee437fe22e2c052b65d1c311fd1d2ea4f758a053b3dd5ff0216c
MD5 a2649b64a9d7647f789b4d9e16a88630
BLAKE2b-256 b210b27019423ce718391c5a2f88a4b3de64a86c3b24a7e8240755caeb90441d

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 15f3d69d2a185a11e698616c15b2484a866ec49a70c6dd927cc51028114dbf3b
MD5 9fab497825dbedc65c3a5289c6d6d742
BLAKE2b-256 440af105dbc15d85ff4f6e85f622e40d10195d6104f8031c535997b4a429fedd

See more details on using hashes here.

File details

Details for the file quadrants-1.3.0b1-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-1.3.0b1-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 456ddb8ed001fdc9eb5c64210ac2186f00aca66336cc799a19af192c84646e24
MD5 d864e8fddd97211b88e32fe58e0116fe
BLAKE2b-256 830b4b0621ee6302d79add09b6a356f1fd60008e90e64e7ed390928fb16ce5cc

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