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 (Ying & 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:

Modernized infrastructure

  • Revamped CI
  • Support for Python 3.10–3.13
  • Support for macOS up to 15
  • Significantly improved reliability (≥90% CI success on correct code)

Structural improvements

  • Added dataclasses.dataclass structs:

    • Work with both ndarrays and fields
    • Can be passed into child ti.func functions
    • Can be nested
    • No kernel runtime overhead (kernels see only underlying arrays)

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 improvements

Reduced launch latency

  • Release 4.0.0 improved non-batched ndarray CPU performance by 4.5× in Genesis benchmarks.
  • Release 3.2.0 improved ndarray performance from 11× slower than fields to 1.8× slower (on a 5090 GPU, Genesis benchmark).

Reduced warm-cache latency

On Genesis simulator (Linux + NVIDIA 5090):

  • single_franka_envs.py cache load time reduced from 7.2s → 0.3s

Zero-copy Torch interop

  • Added to_dlpack
  • Enables zero-copy memory sharing between PyTorch and Quadrants
  • Avoids kernel-based accessors
  • Significantly improves performance

Compiler upgrades

  • Upgraded to LLVM 22
  • Enabled ARM support

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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.4-cp313-cp313-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-0.7.4-cp312-cp312-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.4-cp312-cp312-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-0.7.4-cp311-cp311-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.4-cp311-cp311-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-0.7.4-cp310-cp310-win_amd64.whl (55.4 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.4-cp310-cp310-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quadrants-0.7.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.4 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-0.7.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 04cc69d7f8422391ba4b03f5ee272349d51820b41e86653389f0487e4cfba07e
MD5 4294a322446377d177e8a86a6c08a33b
BLAKE2b-256 3e1c77ee28669dcf3a7e55b905c196e729a5612b2fa32cd4893d435ecd1cd820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 345278eb41d3166d02c331323221301af5e03cf9c898fb4729d8a5d2cef4a9dd
MD5 d78c9bc9bec6580be75eaabcffe5dde3
BLAKE2b-256 0f93bd20dc91b771ae672e08ffca08b4111c058365a86cbb7d1a2dfd26d3b987

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 04f220ca48c548a0f1460187e89b9d0978388308e250c36765a29c743cf41bfb
MD5 8251a8e2ad520fae20b4c4cc10608807
BLAKE2b-256 80f25c51ad7b0b07c2a9e297059fc454c255456899f5e0834009fe1f2453dfda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b39aed1e29ea0483e8edd3a50bebdf11bd0082684dfbc72d4d6d366b59b41f0a
MD5 304e97a08c695a9e87dfae3bcaf2b80c
BLAKE2b-256 5ad2a34518fd6d79293eaea207a16c7b49e8054f59e4ee8c26f66d78417eec98

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.4 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-0.7.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1ec28f73bc2ef9adb6bea155c95998c93cac52146df0dcab5832e038ddacb85b
MD5 5780ac20f2204f94c5646ca2789c4f24
BLAKE2b-256 fbe3c59dad96ff6dec2225743fdb201743e6515918bbcf1e52ae3366fddd1a0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 062fb25febcbde504c6b779742e37f404b95fe228721922230911d2c64410c38
MD5 643fc05e90265efdbac0cf8ca83347bb
BLAKE2b-256 e0aba82250407704bd47a91b311e136a2d793d328ea5e9e284ba4e6123701e9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d1074c98d698e0a82adb47ca2cf8326a5ca4b243a74a66b3530c34bd7ece2238
MD5 deaab3c1b8d6f70e3b5a83782c34b07a
BLAKE2b-256 75fe174f94e231b64901916fbe427ed185bd491770625d886c58c92cdc8e08be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52b2c7d9f51a19a3efd3fd5fccbcac5f38918c900580e155796ae7bb24b19597
MD5 e5cf0075549da0ecf69e2e42c6720e58
BLAKE2b-256 f47eef14471126be38ced0f0878c27fb652596e0bd991cfc9dce85e58ac44124

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.4 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-0.7.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 76197d51b6aff4849106b2da61b4fb1d3b6d0b55f5ee86c6a6ba89edf9975d6b
MD5 a8ec319f93ba47e02b6fa9fac58d6fc7
BLAKE2b-256 2e5b2b0ba5ee993583bb84a3d6a48a32d74de5d08e143346fe8d3c97a5713466

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b55bf244eb3de181002838750597c7c37023f4d4f5a9246b324ba9e7c912d8e
MD5 40fb97d06439ee3d34d364571a4a48c2
BLAKE2b-256 b9737699a8fbadf8d2830936b6bad470d6a313c94028e7b48d5cc90c6fd52947

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 31a8b3bc239e6eeadefb2d8e20753cb5a015e836ceb750a0ddb7ee39496c4105
MD5 e3b88b5721f9d73853e4c2c914510279
BLAKE2b-256 9f9387f8c62173afcc80317063bf3d449cd1c18a34ae43e4b3fe0ac62a8f18e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5dcbf6fe940ea5b43487bc154232ca025acd0d31ba315b8da3c81163763ad4f1
MD5 c19b3d3c3d15a679105107c795cb38b2
BLAKE2b-256 1d9b2d58e415a2932e37ea88e108aea3564c9e5d7aa29295550213a4c5f4e813

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.4 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-0.7.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 35ae21f762f3ff2002969a7cf39fcf323c6df688da74eb7a1c08fab332051edd
MD5 ee459b8b9ec7fd1277b8c505ac1c5d6b
BLAKE2b-256 99a2985c15d23b3a9269adf3dde7f64286602e6f94babd329e2c2353fe85b738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9298cf3f7e5b2078332c3d2e782dd3f9a4d306092af8edb6f80b2d35375e7f4
MD5 296e7279afc2c67cfb560642c2e16529
BLAKE2b-256 fa25152cf12121fd80853cf7657e4e410c4280eeb70731d3ec11b91367d97466

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d829e80e37a859d51d10bf384c6b76d83f1f8bafaa440e0bf5baff0ac8e03f7c
MD5 8c66124c562ef6b1677f13cb62d0745e
BLAKE2b-256 2c7e9ef4b2cc609da2c51e39573f3d0de58bca311bfc6af5b39f130f078e1536

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6600842f4f4f5fb48c80835e4bd7de6d095746b70a0dfc6fb099e3574d9da8bd
MD5 ee094ae776043f59eeac8e318974dc47
BLAKE2b-256 19f0b3f10d2ab8eca6322cd4975714a19c973579f85613f578c2db51311745a7

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