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

Uploaded CPython 3.13Windows x86-64

quadrants-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.1 MB view details)

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

quadrants-0.6.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.1 MB view details)

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

quadrants-0.6.3-cp313-cp313-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

quadrants-0.6.3-cp312-cp312-win_amd64.whl (55.2 MB view details)

Uploaded CPython 3.12Windows x86-64

quadrants-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.2 MB view details)

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

quadrants-0.6.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.1 MB view details)

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

quadrants-0.6.3-cp312-cp312-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

quadrants-0.6.3-cp311-cp311-win_amd64.whl (55.2 MB view details)

Uploaded CPython 3.11Windows x86-64

quadrants-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.1 MB view details)

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

quadrants-0.6.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.1 MB view details)

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

quadrants-0.6.3-cp311-cp311-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

quadrants-0.6.3-cp310-cp310-win_amd64.whl (55.2 MB view details)

Uploaded CPython 3.10Windows x86-64

quadrants-0.6.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.1 MB view details)

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

quadrants-0.6.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.1 MB view details)

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

quadrants-0.6.3-cp310-cp310-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quadrants-0.6.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.2 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.6.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 968f9df6ef4d3d0bc02d973268f89733099a80bff69bb512707bd59cd379a760
MD5 3b42a833acd3717cd7e92eb28372647b
BLAKE2b-256 12efc872676ff6cba2033cb8abebd889af2c4dc69e1b2f937fe1f59616a4bec8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8dcf7a27a80d5b65bd7468ffe0c6ddc826fd4d65a14fe3eb3a58e9088dbd915e
MD5 1d6b3b5a533f7484ac21afe6611bcc71
BLAKE2b-256 92f35dfe994816923bd071c603d1d2b0b3fc19eb2c5e91be219c387667e540a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 66dd9dfee5af2d77abe095d6e2d071fa959230d794a984719ed2177ce938c948
MD5 ea832c13956f998fe7d9237ca05b4eec
BLAKE2b-256 02b10ef4882faa28ee0e92e10d335ac3f2c6877a45fdc333c68b927f95f5b5a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aad965c028fee09fc1ea7ef98c0816989775d745854bb5fd7ea26eaace7eecb9
MD5 10260bd1edc9742f5dfd22e8ad8866c5
BLAKE2b-256 c3d6e394c9f1a6858bb189f63423fbc28b8fcb3cf78ace298f02eb1e894712d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.6.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.2 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.6.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3747f44c0fd25d2412ca25ab9fba1194dbefe0d90bd378d9c65990a1121007a2
MD5 3fb6194042f75192fbf6ac2e12f434b2
BLAKE2b-256 b8c77ddfffff895bb170605b4d0ddbcafc78b0b3708a8f51f0d25928b8b7713b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 609490dd95dafceef69c2bc24573951f77e637d3c4217a57db8354584210b014
MD5 11fe1fda5f14347fe625dff3779adcfe
BLAKE2b-256 84747e0e8ff8b67963df255d64051db5d8f9c59753e6d50c74dab68e65179314

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9050665806937196028aed46a6bf7f2809922ebc1faa5b4018209989da6045e8
MD5 dd3809e1edce2d1bd54f81e4077660cd
BLAKE2b-256 be5e0da719e08b639aafeacedb1858aae5b9f05bccb5684be9f526326e99b51a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 637c59553f56fb8e98a75124008aef7d7c893a511838ae4a4ec3b59967ee53cd
MD5 69285cf7a65b72ee194040c4922544dd
BLAKE2b-256 9d255b3c0c94c21ac9ecb616d551e6bb50d551a48b589199fc314473d09596eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.6.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.2 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.6.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 56cd3faf8456309559bde6bffd6c04689bd20c6193831c5bc389081293f00c1c
MD5 3e1009c7f867a1ca61149155cb0a8031
BLAKE2b-256 7be6a31693419674d966bd586999280c68defeefe121a7af3309db27436cf091

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9ac89e45b169a8e233b88f4762534436076897471db5cb2e35defbae32cfd68
MD5 100b59b02dfb15c66e46c501121ee57c
BLAKE2b-256 445e68869587f39c6ecf4f0e1e73ba521da8262cb430d7c4cc9dc3f1ed6f0ddd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b3eb715e989cb2c0452e24428268015d41f43d7682c285bffc5adf086b37ea11
MD5 f4339e144ed58cb8d0c3f6f0bd84070e
BLAKE2b-256 670e15041a382c4f549f7f5470af9be2a6ee91331ad8eb824e99ea32e20eb386

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f848d0ad31ee90b1397916016dabaec59edff1fd92fbaa8f9d64acb4969469ef
MD5 e4e1d91d1b6e675e6aba6a1d59cfed95
BLAKE2b-256 1c2246c38c021b58271411a4ddb70aaf74a31b5dc18e3ecc3c32b21ad09f6311

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.6.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.2 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.6.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4a4562f806091a5c1a2e8ac713071acacf94535526632955435b7f81ea7dff87
MD5 a4a121a4d23f4868bfb2f967969992d9
BLAKE2b-256 8da90d94470530c9ebf7fdbc471325ad1b4b23e93dfd62ab49408b1fa9a6a566

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d39c71cbf00396acc554c1d291801e2ad856df908f9d731d0949b401ec41aa2f
MD5 7946042b7adb71daaf1dafecc9095724
BLAKE2b-256 d1a124e1dba5c226b8ef6be36b01e77e3f49ae999b4a9dc2614c855f7d03a373

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 792be79365d13569ce19a5c98e761472e77781e2d49503e4e584a6e0d0effb95
MD5 86eeb2a74d9ec5f399e99cf4e687ebbc
BLAKE2b-256 da80e878106626db195f3c8fd19b6d88c9f7f923fb54f4c5e33f3d6bbe5d2c1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.6.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f4cffe78fa6916094aef94ca9348d980aa6ea30fe444846e296777ad8c82b13
MD5 de741a27c4bbf5218e54f324b1c7fc15
BLAKE2b-256 7377bea0043484b7bc5a40fbf960193f836b810924f2499e5365df64985a2e49

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