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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.5 MB view details)

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

quadrants-0.7.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.5 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.5 MB view details)

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

quadrants-0.7.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.5 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.5 MB view details)

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

quadrants-0.7.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.5 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.5 MB view details)

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

quadrants-0.7.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quadrants-0.7.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d4788f0e351f6f740386686a7f1ac5949d4bf0d3c038a2beb69f8cf1da2d3bb0
MD5 de957caaa3a1ce34224ef62e0516af1d
BLAKE2b-256 ed48032e09a1c52eeab6f5d787daed7adb37125284099444071be9f668589c39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c86d816a2a281b93cf33dd699331e8aa492e16c36982294a31cb397b9b74419b
MD5 1db99c57635bd8f071138c2b6eacfbe0
BLAKE2b-256 80df8437be8d3c5064ef414ea222ba9df26e61bb54bc7297bb3d5bbadf4025b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 bdaa717a2b5f2607149119f53204e6f0b8c77577ef39800e6358e334ac7b24ae
MD5 06592067c412ccafcaef9174a293ccae
BLAKE2b-256 e889ed0c82a6b24ffdee0ca437e066a5558ca45c5c4e1b685ca137fbdd0555f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40ae7d019919bb4c58231767f8ba97d62aca41a57cb92bea019b49c25bdb8a3e
MD5 7f71695420bcf2c8ffa3f0b5a19d3dc6
BLAKE2b-256 67aa1512d07b5bf0738ec5d8c12687576769b68b18e0fda17635a74033dccf68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2b9008501c8300f39822cf5f5b950473eadf2f13246242c74c3a589cfd5f3f89
MD5 29a15ee58a03eb23c43a07409b9f6415
BLAKE2b-256 d875a9706ac8901263223e4df869fb06517b64977080c37eb6d6fe0a63f99e11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6f0986cffa6584f0d29efa1d5f55b9d437614d0cdbb57cc9803492f1d743088
MD5 7a5cf238cc3a88f1933f50a6efc6bd69
BLAKE2b-256 d50e4d14079a8f3680d4c46490aae9de8c083365237a2d7165f986b0fee567f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 acc232ca739f59a86f8158ea3e14631a52531c5445b65b763ae236043caae103
MD5 daf3adc5dd559adc55b5959d39e372f9
BLAKE2b-256 52d4721062f4c2d31a9d8b0d2ce3ce00abd9c5ef2842d9fa93374120c6c6e683

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf90a57afa10c2231f3d357b6b4aa2d1a8c8f4da39441b7a66b8c0583b50527d
MD5 3e7d717110c3c6a2d1ad0db9b5d9f27d
BLAKE2b-256 e897cd8ee7f661821391c792a60b453d72c213143971cbcc66c86154a7a042ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 71c5eafc5a4d6c4162d29449f9baaa63c503ddb1e6a9752d884388078afa4ef1
MD5 70d777badc038d65140d5e65b8e89cee
BLAKE2b-256 d1e8ee306e7db0590a1a75ae0bbb66524c94e989f3bb29a05460ea3ecac1cf63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ffb2e980476355e16a7e23b5a6b09167d1d63cadfb234882e8f34355f32ecb7
MD5 2429ab78ed92d8124cc6ea7e0e460e91
BLAKE2b-256 69b39d87ee3dd9a991a43418d62ce4465e99425746bd2c389f33231eeeb3195c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2474eb1857e229c6711305433ede09e9d973406f4dfe2a8e527843dbeb66b4cf
MD5 bb231a51daaba9febd68ca46eebc9ff7
BLAKE2b-256 d86a009bf6c1b96b67d9addc6bd55a78f5ee9bfa8d66f7120542430f3fa9ed20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45e13ca0b2cd2d8a44ce638791461c384df8dc82fbbfe83a104b1f44109bad26
MD5 450377f18f7be2b685c4db6a53559c34
BLAKE2b-256 29b8a11b63c39999d3c82891f228b14d0240721624d8a1f4f481e2da0f1239f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7d1aace359a3dec738072bfc6a823ac982b92c69c2a07bf88ad9f620230b48e6
MD5 7e67dfbb33f380a2d02b10cb9b19823b
BLAKE2b-256 bbb62a4ca58035337b3d20fee1aa5ed156edf1351ae030c5f5a9fb78538669e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6cf90868a0855d88356ea1571a1a3cba1fe72908a4deb7621fcf71ba5c1f155
MD5 b90dff18c71d6b6780902f9edd984e04
BLAKE2b-256 53e7ae3bd3e735cc549d90ba724e9668b65d76ee141f06f9dcaf264dcc494013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 15c588e0bde9d21329ab845b56786bc672415a61c5a6df33d49c94884d09c87f
MD5 d71a172ebad8443c3578ef3af7965fc4
BLAKE2b-256 a1f2e8c8b1c0c99a147ef4797fbe9f64fb652f49f9d2c3d6b38dec788e1ef310

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c5bfa06df6446615ade3a0816bdc02fe93ce36c5109e602ad5f671528fe71e2
MD5 168c8947ca9466d271d4a7580852744f
BLAKE2b-256 de89710e9af9814c106ef6de187b7e0fd46e687183b472beea8eec2d957518dd

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