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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.2-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.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.2-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.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.2-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.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.2-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.2-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.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-0.7.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bc6343c82022215c23584d327245d29fac1ed26abb0a8ddb980fb7fd005c56e8
MD5 fa06c48a999e7eeafde98f9ef3c7eb78
BLAKE2b-256 a266a88d3091cb2abe88abb256c96071beb8a7e32c8db4c6366e924948559781

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49b3103066ed51116b16957963810391cbbb40770f0d206c36f4c0be0d62f977
MD5 011f13d0635c069baff0f7df5c2d0e15
BLAKE2b-256 5d3ea3656bd41870d0d69adb72cccfec8dade953c86d1e0b5a6b84cde9f43462

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ec651f4576ce2292ea3c19da4851a7dbacf012fe625608a08e84ed6ac92a46f6
MD5 7255d59bd8ace9a9cc323b7821b6d3a5
BLAKE2b-256 06a8efa180dc4b7dce08848c16b97b97d0520cc841340bc72f0825b2bc2a2e3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dae1a2f350a736ab906f40848215f137df41faf4dee5b4b03ae986651330af5a
MD5 8bb89662fa6703da80e4855723d8bc36
BLAKE2b-256 0b975c38acdb7332cb419f3741677c5563d0698bfbd86962303051da51bfdadc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5a8932d05ac96cf6c83e7b502f9922df478b006eeb97ea0a51c8afae77028283
MD5 d30af7880f6f1f372262b4f80692082c
BLAKE2b-256 44acc4b497d40ff69dd1f30027dfccae5d1e67e99b2351eaacb0f6e9652cdf11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 531c1b13ccfb47cb326ed31aac999ff127f99129e821f3670196b32518942e80
MD5 b9dd9ef3463f92b313451ca40327714f
BLAKE2b-256 7521cc83fff3a5d7d2ddcf85f877b0af6020fb740fcf2b74bbe2b6872492be24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3f6e0fbea3da6b00213bcefe5253efc687ccdf759f4520532ecd7f4d51bb31ac
MD5 f76b051de732663f623657c00179de1f
BLAKE2b-256 f7c453eec29636fbadc29ecf9416c91265e7384ed929288d7b7f841a27188f26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f92bd586ce0c2fe87a5f1522e78bff450ef002800014230e369ef664afac2a2e
MD5 b9b0c922f4d22f90295d7a7158d014fc
BLAKE2b-256 c54d9e0d412a855856f9aa84c85c0fe371f096b83cec4571569d4f18d7e25ab6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2a2d535add2b4471b1f4adc423db9e4c595b32e02ff6128750ee91e3a2e529d5
MD5 65f6eefc3280d3fd8a6ecef169721996
BLAKE2b-256 bf4d6192c7b53d535bdd8bb70a790c6ccd8eaf933335f78515ca053a668a76fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab9ab4bdcc9c4d73bfadde36bb39006966c5036cbdc0ce1147fd6af108e1fa92
MD5 c834a569cc1245d34251faaa0ba375ad
BLAKE2b-256 239ec8aab05aa0a699801de41c9362ef8b98ceeecaa5382bef777a063d52570a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 26b1b42bbedbc08dfe37f2ba8ee50c937448eed57074e92a89b22540d9615515
MD5 b520fc158dc41e15f87dd389f5fd9ae5
BLAKE2b-256 aabac1cf4916446e35a3dd12b24fc819e597e2e38182a4404df88f8eab6228b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1b89e4947786189e22f84115ba3b0710f139fa1489131c0cff84ea53834b12c
MD5 f42b84479f88e14f6a45e029c27b34d8
BLAKE2b-256 1b41094f0a0f6f4815df2caa4d847014a7bbb0bc3f12bef7cb964568b251d036

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1f2d7ee7300354a2bc10bb70cffb99c239d4bee81dc4ffcdea076930d89620fe
MD5 b35b26a57351ffde4613e9f129c6dcfa
BLAKE2b-256 dd8668a0a5ccb5b2d5470ee1e216f62495caf1e99062118e62942d316fcfdfeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee38fad501bc519896edc192edf53191730488a4cef842fcf45d55165bc126de
MD5 f4936b36d7eb362905ae1961346f2f2b
BLAKE2b-256 37ef0c4e93e7ce269b374ec144cdfc5d545f2ef634d9b57d10747c4fcad7af96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 505377fa295e9ad262e4740a52b30ce1a5fa7987203ebbe7d4ed287c16d0bbf6
MD5 1e2eebeb179b594d5a66d6be93f3e92b
BLAKE2b-256 32d52ced007227c3c21c3016a7d6b572b2349e695eb76dd81dc5bebb88d4ab70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9cf95c3ebc153c3b6bdd6fe59405b21453e03b690ab4afcd289ba4ff86ff7df2
MD5 e6c3e573ef531f18a7f4f5749228480b
BLAKE2b-256 6d9289f8f2a75712014b9ddac19f530c27aebb19fa72214fdb6ff922c9d547b5

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