Skip to main content

The Quadrants Programming Language

Project description

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.

Project details


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

Uploaded CPython 3.13Windows x86-64

quadrants-1.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (48.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.0.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (45.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.0.1-cp313-cp313-macosx_11_0_arm64.whl (30.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-1.0.1-cp312-cp312-win_amd64.whl (55.7 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-1.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (48.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.0.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (45.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.0.1-cp312-cp312-macosx_11_0_arm64.whl (30.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-1.0.1-cp311-cp311-win_amd64.whl (55.7 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-1.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (48.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.0.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (45.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.0.1-cp311-cp311-macosx_11_0_arm64.whl (30.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-1.0.1-cp310-cp310-win_amd64.whl (55.7 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-1.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (48.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

quadrants-1.0.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (45.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.34+ ARM64

quadrants-1.0.1-cp310-cp310-macosx_11_0_arm64.whl (30.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file quadrants-1.0.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-1.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.7 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.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ce39bfdade59ae8383f5dbabcb97a5e1b7285c999063c20a200dda05747950de
MD5 84d9b0df7a2755f8d140009df4fff292
BLAKE2b-256 c73ffddc379ee19cc0ce859067b66ddbbde2390141c33500817a279790e2289e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ca503fe9a9337fce13255ebb8236940f0d4a643833ccfd980f24ee5c5dee449f
MD5 86de1bdf08011c9f3aecbf322493addb
BLAKE2b-256 2fe8fa103d7b386543c81d1fc3106e00e0988526625580204bd5cc09ebf9faf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1d8fe329c90447fc46350a016cbe6621dee532d3d046e0b60748a7c8373788ad
MD5 00bff3b3b097ecfd53c53b27f0762c2f
BLAKE2b-256 7ea5e734470c5fda089af9281b6c2c95d985730350cce4ec1309cbff3a5373d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1aa8c8d1bd024df33b47a451878e4ccebf43657cf24b9b95c97f092a1155d315
MD5 12e4c053db4c53ada298a10b318c2373
BLAKE2b-256 e6fcdaad5fb6df8493ac4a185d9ca148fd95a1d015b63eb0675cf5699ca14fbf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.7 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.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a50d0882b0e917624fb6b111d81d0b0165ab2b1f9b8a4e9a5f186ddf260e77d1
MD5 8bed348d5f29e34c8939424d3035895b
BLAKE2b-256 b4b0147bb77cef33842a4cb6e6aa6fd648c5c0f46115e61e33ba057c2ebf7b90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32d80e0b9f3de35980d35dbdcb43b9f7cdc98dc4fef90ec584bde290023b8f6a
MD5 12a2b474798546c8d8d9d20aa5d382e0
BLAKE2b-256 fbfa4ed9ba72589a66b36e3f775e0705933b5169cfe0f71bd706b267d791440b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6759f7906948e588ef6ca13012fac5f6e76a133ec7b2ae976331aec5f56ace54
MD5 63d13672b629f11bc1b5c801e79b6c11
BLAKE2b-256 d550c5781648a1baf61a64fd5109d98cf7bf5937b6522ec6d41b9e9d7fd0006a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4edf955d6b934c3d28535aa2697b4afa13c95a717b779c3d10d0c030bb08afd6
MD5 a46970f93e80b7f2659bfe4d5c7e395f
BLAKE2b-256 e61408d57f0bc8fb13e4dbf4c09cf0406d71565b7ebc7bb452adf64526ffbefd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.0.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.7 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.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 85c8dbb9a7e9befa3edd1767143b87c72f2494b84170b644bfef576958b24895
MD5 5a51de6f4c8d97f9c71dc884081d7c93
BLAKE2b-256 e76212723801b98fd48a0103d2c7fe3219a15ea3ab4d1132c0b329ea565faeb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e165edf77708e5ddfee7936179d537afdfc85839a873d80bb1a4d2242ba1bab2
MD5 c2c84a786c4c5b759ef76f1c4caff2a3
BLAKE2b-256 744398977cc247199432e123ae04ff0ca14bb42c3e04adf5fad8ff67afcafdff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8212377f2ad17a38a469eacff5c1b5be0a589ad7cbfb1a77fb9768db3c2e1a32
MD5 361d7b32870537dbb526a750cd8ab13a
BLAKE2b-256 542d8d26dd0ebc0ca932958de49c45ae5852b66259e84461650188282aab504f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbac7b6ce1d339fee2ed0913f547311e54ac363bab3ee1ec8c0fec1530f88c49
MD5 835e4e90a05d9ffe7e7340c6ea98eefe
BLAKE2b-256 b2c5489833b3b94719c86f221374b917fbdb2c13418286b671c4aa4d9ecf9262

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-1.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.7 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.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 27e261377ac3b530b52251d7cf78c7a561a0739ee4a3548af1fb43fde161ba81
MD5 d02c655d780b9236a52f70612ef55a5b
BLAKE2b-256 b1da2d358ff33ed3f003421f1888197f0715e54ea842f10c401516878587ca7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dfc77469847ad1742aed632a1b7de246b2db56cf99b7d50fdc2624bfee3952a
MD5 2d983c002209749535b9a2f508f1fc43
BLAKE2b-256 577d899bb8cc4c9de2c657e22f5235bcb9f37674818ff82dd470d89bfed3a151

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 fd3ea110a1d89acc91f1486e35ff05b706ff46262bd5497f80edc1b0d6a5cbe0
MD5 634742e8cdae6255a21b6fb791e5aa1c
BLAKE2b-256 d7b57ce6fd780344fc4796207c7e0c7b29d552249ec1a58e433668a91a58ae45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-1.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c894213fff5ff39fc7177980a5a936892600f435011a42418e682d27101d14bb
MD5 275a9e00eed941c8e37f6d42ce69cb2d
BLAKE2b-256 11c25bbf79fc60a43c7879a2345846f0b72c81bd5edb0da943fb68f1ec66fe14

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 Pingdom Monitoring Sentry Error logging StatusPage Status page