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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.0-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.7.0-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.7.0-cp313-cp313-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.0-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.7.0-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.7.0-cp312-cp312-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.0-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.7.0-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.7.0-cp311-cp311-macosx_11_0_arm64.whl (30.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.0-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.7.0-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.7.0-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.7.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quadrants-0.7.0-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.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3677c8ff337650524f98c35a8d53b56096444d603429b5754a6a4e5f710369a1
MD5 fb4e38c50f1d90c3b93df829f5755f93
BLAKE2b-256 5906dcd935e0ac048ebd85bab68a15795ad14eaa3faa01dd0a19c2fb77771e37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad99497102f104d2b390b5cecb85d1c47efb608773bd74c684e035190d0ac4fb
MD5 b9ecdc4b7bc1ae2b1d654db2d5c5039f
BLAKE2b-256 a822592048d83db33e60fecea86d8137cedd9936cc9e781a6062bc4d4ee5233a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f8d189f3ec0d30cb10f20508b5d68ab6858f0e9d63c990e9bdc02766eb627dec
MD5 c498a804e37e5f1e1ff85bc2a424559d
BLAKE2b-256 162c21efd7c4e95ba5223b28b701332da9525e9c87bcfe181be48bdbe2934600

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 482402d94405ed2dbc2cc981ec4f8cb9c6d21a10f59f63ae6d71215d7eaf439a
MD5 78796902a149000d45c006c39442b4ad
BLAKE2b-256 6043c9aadd7c689c0ec246c1cc873a02f4b96987e9b0ab060097907b86f0168f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.0-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.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5d630af9f0d1ed6b4e49c311408c0b8a2356c555d5cc30e2d75faf6a122f57a8
MD5 0171368f09321fa2af32674cdc883486
BLAKE2b-256 173db53cc78f3e87ec586df3a9fa7e61cd5d87eb5fbc35a44e9fdd58f451b851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a2a54b813aab58ed644c98e7f5c18b56b8e31e95934e0814e793515baa411a06
MD5 42a6c746a01bf5086e2b4ab64b79bf47
BLAKE2b-256 0af204a5f417618e8d32bbba491b331a608dc8444f8524dd674dcdecc5f0374c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 eb9d5644f58374a5adf64afce570de76a3cfff8468c36b51e3a75f277ea6f732
MD5 4a250fa822638431dd51009ab9b84322
BLAKE2b-256 5ca43a872b1800e5c13d56e12403b789ba1ed62ec43e89180d7bbf1ca5d693ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9ff9ea2e06a8faaf8e21c825423d7598d999cfe27edc72bcf87ff864d45b0ff
MD5 f34131233aa7051ad2088b94d6a821fc
BLAKE2b-256 bec5508a9e2ea405e2e1b7b7304c41b24fa96a6a79ae0f67a1fd87a32bb715df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.0-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.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1b5b91457e075595bae05b2fd26fc09833130df7788db933c3754e036d4ecbe7
MD5 c4daa34ad6d6f2f2bac75616dc7fd978
BLAKE2b-256 63e54f45e33a6b2fc582d46727fa55014943e26692753b52fdfc9e3ccdc223e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27831a87ec99258ffca831c48125dc171b9a0137ccab4c93d48cf0325eca6c0d
MD5 44b6993c046bf804dc762c59e7344a67
BLAKE2b-256 93833b18885a28c9a3fc8048384656d0a741a9613cc8f5f2cdbb433174b09df9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 67baddafef682875e806ef55a60db768d06d9f3d5df1a3f6b496464ee8de5252
MD5 b520f73d5da9accb430aa2a48b5ede59
BLAKE2b-256 8c0b8c68d7c89c23254724c29f5ef5f2b34954e141e91fa6807bd21639cbd4e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a87c78c64a1aa0106def4f9cce81bfa83dc98a42b350f38f276885c9d0bc8b5
MD5 1a5b6be442717e716a296195c56c37b3
BLAKE2b-256 11e81c1f0256a23af6a47ca75cf6fabf85138cc822ae6697c7af71e67b4f4adf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.0-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.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2b0a7ade47af46c5f55507f7ee45ed7cdae2c0cd130846b2844fd977d08d6ed5
MD5 6364f4842f2366397e1d33fa4acf3e1c
BLAKE2b-256 2408ef498b82b42b0daf592ae154f38bbc047a9e4889ea8ce37413e8d343fe5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dfe3094229d50ad202cc5e787e8bb68cfea63603cd60368e6468640f6e0dc4d3
MD5 d44637a3d973220aa12f9d907c405ced
BLAKE2b-256 883666833cbb3f603154d94b60053abae52a200c4cb928bfe83dbe480ddefbfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3e3fca7790b6a2ed99c32f1d8e703a70006527f1747ff2dfea4f5fda2ec950d8
MD5 27f8f2e04aed3e7892e9943112aa2ae3
BLAKE2b-256 c4fe288bd0183c41cf383a6f3cb74493459ab99bdffa29c294cd54b32710b131

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d763acbfadd8beddeec4169d0944cb6ca6d67ff872de97a4598a242f9373c746
MD5 bb4c5baac1d9498012444406f1eea77d
BLAKE2b-256 5781de7ff13ca1630e3b3f2d5e75b8e64412007b8e4424f973ebc4d4f63f0cc5

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