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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.4 MB view details)

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

quadrants-0.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.4 MB view details)

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

quadrants-0.7.1-cp313-cp313-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-0.7.1-cp312-cp312-win_amd64.whl (55.3 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.4 MB view details)

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

quadrants-0.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.4 MB view details)

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

quadrants-0.7.1-cp312-cp312-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-0.7.1-cp311-cp311-win_amd64.whl (55.3 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.4 MB view details)

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

quadrants-0.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.4 MB view details)

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

quadrants-0.7.1-cp311-cp311-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-0.7.1-cp310-cp310-win_amd64.whl (55.3 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.4 MB view details)

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

quadrants-0.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.4 MB view details)

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

quadrants-0.7.1-cp310-cp310-macosx_11_0_arm64.whl (30.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quadrants-0.7.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.3 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2a36bd7a5f4912703da62ebf69b58a2a31f6865b4ee44c6c4c8d66883148d7f3
MD5 1dfce68d63212f8a7597691911d2ecaa
BLAKE2b-256 bbbb1781842b50dccf7b7df956aab2fd9f783cab56e9ba814bbcb56ae94f930d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 068d01c494fb3889432dcbeeaff9bd566547d14992c89d6982b05162239012a7
MD5 9de64d7e59383c7fe78e000e68e22828
BLAKE2b-256 1183bae7649ed1e7761bfa0e7cc877f8f79531659c3ddbcba183598401313d83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 76656a86df67ad12a2751b6762e141943c7588c211c65d1bf79ecdc6c7cfc6f4
MD5 5307c4a4468aebc54f935e11b0ebc999
BLAKE2b-256 ab8183a79133f06ecdc23acc8d650dc3feff3adf1bda5f9e2de39535d1284446

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26a94e01c6cf2f1783ba5273dfd9422af08dd37553616800df9cacbd9cdc608b
MD5 d0e27d7bb95829cd6b424c2ba43fd5d2
BLAKE2b-256 2290f5a6ee1685e375957df07b4b25d7865a1ecde463b4917c3bdd78550bde01

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.3 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a5c14362607de834037fde5e0fd297b8b92d987644255cc4042ebb080f259605
MD5 5f8f862225727ddab89057d1bf2693b4
BLAKE2b-256 cd55927b360662483f0dacebd684e97415e76fa600d59df0ba53599165a7b880

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19a3ab717a1003b61d98bad52c5fe8f219fdcf3c1500c9b6a992ccdf5874cfb1
MD5 52d0183c67a8762749ffeef0dd67256f
BLAKE2b-256 6e35352584744727a10e32be9dcdf7ea7c40a8b4d0ff9bb7223a015b3d1f5c0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 14e61799274a46ea8b671c3b18c84bdfbb9dae3205a265f29eb3a94c77aea2be
MD5 9cfff84142214fe4347d9fa6818a1b0d
BLAKE2b-256 965fc4db94247294910fb8c2b49bc92bcea1a1e4b69fd27df3236ca2f083c558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28dd273fc881d5d3f616863ad1313fa2e451766e297ece0da661cd6145596e0e
MD5 f91541451729bd6b129c63fcee7dae7e
BLAKE2b-256 33b21c5cd772082e503dc9684a032895dd490ba2d37f98e370e7931052cc979e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.3 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c9792ce7eb8ad702f5294fc0964d9428a0d4f8b22dbb9b1c95553599e2f3c92c
MD5 f8780b557a2c7266c9f076e4c45dee47
BLAKE2b-256 18c8bb944bdb46897b40030d0e90c4a0578095adcc8cc31fc1f6d7b6f056fb48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b757de00a7e006c9fff3a1f87c857d33f8f07b5ddb50709fccd20133364dbe0b
MD5 12c7b331711079377e3214671c8e9cb0
BLAKE2b-256 38fcfeeff9cf87d96fb85a00a26ede1c68b0a8ea1514a7afaedf0e0ac1bb2624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c8619dcfcb7ae5add14d3e1a4bc281fdaab8fae83c1d0943eb9c0746c82d2fd5
MD5 e739a002e25ffc1217f9d90e43f4f9a9
BLAKE2b-256 88764a9c68ddf18baaa6f1524711302f5253558a363b241f20450f3e0f87b415

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd0e71871b15ebfd3b69d96c58a99ad1de954a60999da0ca7b7464c5a9516468
MD5 d35fd8e6fb2fce66c5dcc7862c15ced0
BLAKE2b-256 95c6671435bbc07fb0c94dfb320a10bc433287d7ccdbb22ada5b5a764623a49c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.3 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 423f6a0b6dd8c2db7ad7d5a783a4c4bd6c3d6616a92e011615cd2a78cda3d6f3
MD5 624975d13c7b4accb52ce7cc5ffb982e
BLAKE2b-256 a56c0f967c3b756c3078fe49126693deb4ca41037a44557634830b9bf90862ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71c08a317f774026122798dfb1ff893de98aa3c7caf35de1dbbef8a5207d1c0a
MD5 ff8ac83004c38e8809f8ca7dd4205f5f
BLAKE2b-256 8d41bbd2c1e5064bbfda8cd5752dff485814ef267e9a6f62b31bbbac49548e72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2ce344a35172c156da5de36c86a97ab8644218ec91c4a0aa6ebec6e5dfcd065b
MD5 373d49227deedbef4cd222fb0d3a48e7
BLAKE2b-256 a2547c7bb635179c96157a60f8c0cd6662ac62befe3654371a3993436ded62cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54556776c649a2754f426996a4c67429a8d0c672092a2bc352cc460d3f1da5ab
MD5 851a88dfee7241de3312b71b4ad9b34b
BLAKE2b-256 a9a0a8492d4b65372ea58336abe0a5e814156b2553bc60d45588b469b3419c0d

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