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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.5-cp313-cp313-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.5-cp312-cp312-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.5-cp311-cp311-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.6 MB view details)

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

quadrants-0.7.5-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.6 MB view details)

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

quadrants-0.7.5-cp310-cp310-macosx_11_0_arm64.whl (30.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: quadrants-0.7.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 730d92ca1b29d3f841f17eaf51341584917bed386b4fac388c7ea3e8929bccdb
MD5 3703531803dd0b748f84d8da9e437561
BLAKE2b-256 418b5f95174e8cc07e2b6ed2555e11bddc80b6551d48fd0a60c9f1895ab1f28e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f903bffc4bc17b4f5234acd7e8ad042b3f559a2a51bcc4bef870a456bce09aa
MD5 f527897d37620032e8afd445dc3cc5ff
BLAKE2b-256 cf8748911ffbd53a4191fa0fede5e9af01a323327d529aa0eeacaafeaeaad3ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a00bc2bdafc8a107f78cd80d0d2c56fac182598d81388b84d183b2c6e6b8e638
MD5 6a76f38961b820e6123578ef721596f9
BLAKE2b-256 d5594ab72f05e826bce684e5008015bd8dc4a3c695554160896d41987eabf9ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07000a2f9e0b13ac0aad2fed15cba29127e503c0d22922821d7472493f0864e0
MD5 60fec64056a69ef29ca09a6b1597822c
BLAKE2b-256 8abb13e45ef4b057a1ad3fd939c8d80db8534daa74bec62660ef5bfc153ccfbe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c14075fc00bc0aac175dfaf0d95d040b81d7849ffc08395c0462c381c9010979
MD5 1f7fc77bf6717932bd2b2f3dbc51970e
BLAKE2b-256 d1403615209077f0ad001fdcf93ec1cea8123e5bbd987aa3edf24f1f6d96167a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6004763a9ff4a96e81dd73d8121a931e35431965a1cffee735142bd7a5912bd
MD5 6f08f58662abab80ff4373e83dfcd242
BLAKE2b-256 e97463665e2ba153f592a717e7c182b80c6890541de06be457be467d1ee753fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 468f9d8e52df5464002e2024ba57656dd4abb6abc0e514d2741dd958d48e942b
MD5 d607afe56c71db46e433f0f4d0776534
BLAKE2b-256 53ebfe25733df470eeec74aa5370a65e3a3bdd367aea88e72aa38eafe7269576

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 618c8108798a2e44364c57385a0a6ca29c2259300fa9c845c8957ad1c6d3732a
MD5 45b7c7a8896d6143d43bafbee9109ab5
BLAKE2b-256 db94c7a4d1f79a2dc8f541fc49f1d40477b1a85eec5bf5e6d0b8728e6d5aace8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fb061690426607f5d7d861deae0c518b99c54ba400c909e0a98b7a3f0047bc0a
MD5 65e3cfddab0264113fdd94d7edb9d1d3
BLAKE2b-256 77143b3d36f98405d872b5d641a669f87de8e56ab55aed2697ddef7fa7e7ec8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d3aaeb56afa1dbc6629fd5d3ccd417c12a792a311f6c2ec227c771615604bbd
MD5 449e3f606987ad475f8565fe8bb2ae39
BLAKE2b-256 3c3e8fd9787de394cdd3b41170530b0447e2fabeb316739e6295117605e86262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5792ca0097036fd4975603991521f97b1ce4ef1658097f4c68d1ff6f1b6194f3
MD5 b31dfb90163f596ba903a0ef145fd040
BLAKE2b-256 6a06aa9ecd152a5eb43ea605c94030ada567434f15803e02c76e4888680306d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9a33ec379825c4669a426ae7e4ab57dd0eedcd76ba884d9f00b5f834a65f89c
MD5 599705876961831af5157c2beeca5359
BLAKE2b-256 ce73b6748c58f3f59eda553f7a7bf895ca354ec61be8b06190d7bf7e5af20ded

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quadrants-0.7.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4d71a9c8d2568fa671ced7133f223034c979a3b59961b4082017a770a0f2371e
MD5 22117adc4e1a3eb8b6c219bc5e74eec5
BLAKE2b-256 c289a752f6df607d546ed83953a8027fb168d86b812571b77b0294430361cc3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e837b8a05b55ff98362fad67d9289f87fac34d07a912850bedd893db9f268105
MD5 cbf9685fe907b7841ef090d2ab8822ea
BLAKE2b-256 de13c6c125d4b5821cc696c99adb0f946306ef7093208caf9f4b996cc963bfea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1579e39a684cdb217480cbce79da32208d94281a6c6638064d629d1c47a7dcf4
MD5 52835082d2bcca8cbd3662e69d9a9194
BLAKE2b-256 d23c0b4d5c96765fa9555bd9630a529795f744a2436c0d3bccc637f6ce67a524

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quadrants-0.7.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a967004cdbb67900d6ab18b79ea06b475141b931029c80f28161d9508bff850
MD5 9b00d2fe7351b99242653bf6f9af387c
BLAKE2b-256 119604a01cd0271834a54c4b110ad81e849ec6e2f910a4ac497a718359f3d180

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