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

Uploaded CPython 3.13Windows x86-64

quadrants-0.7.4b1-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.4b1-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.4b1-cp313-cp313-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

quadrants-0.7.4b1-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.4b1-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.4b1-cp312-cp312-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

quadrants-0.7.4b1-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.4b1-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.4b1-cp311-cp311-macosx_11_0_arm64.whl (30.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

quadrants-0.7.4b1-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.4b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (44.5 MB view details)

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

quadrants-0.7.4b1-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.4b1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3efcf2c99cbdb00ee181ca18ae43206bc018b9a70929b887b31bb6324cc0d034
MD5 8b44813af68cc4482f4350305ccf8018
BLAKE2b-256 ca22e7b3a2c4b490dd27f1855feb59dfe2e10be9fb66a950313ae00377beb433

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 805fa6e36931e0b3e482c008da13b81b59edb061ce77d55fac5b08c68f356224
MD5 c6b6b52622c6d689257127aa4c2d4002
BLAKE2b-256 ca3160db5410ca883569650f6b31b629c4c2876b3835fa2d2d7778adef981168

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 63889073b4d24cfc3dff228734d021c9a72ba8fede11e63be5399d92a239f62f
MD5 50079f1ca34e299a8518bbf9e7f82460
BLAKE2b-256 5e32b82dab5f3502818e057e59c3616ebc0db7c88aee2e44f100c11f0da99022

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aad3c49d14a460ebddc01f11d465c9a4a956d7a5c0ee19c7655e7dbfe3de2a69
MD5 19b18872997e2a84a171cc1f677fe4ca
BLAKE2b-256 cbdece1a6ae32bea08317fa3aec429275477e8674424ccb68f0fa2939b52113f

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 266bbc41636f3a7d15be1906751e2d72cdfe71ed32de6c817eb793c43bf7ab2e
MD5 8cd0efbc796ae63ffeeb057cc8cdb3eb
BLAKE2b-256 2f32b1d542b00a49cff11aa92266716dd69414263f4c70414b1cc04e0543fa00

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d123b997fbd07f7f7b2d2c8671718daebee17214412e56f9fa7d43ac959f4b9
MD5 d71a447532b254899efe9815a58aa110
BLAKE2b-256 d537e3abadffe48fcd13b244b992f0c0435f5dfae890df76f2681c40625afbd1

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 4ebe0a4735bd3ab92a1956885f35e29eb06d131ffb9a34ab2731f73c6cdadf71
MD5 8b77122a6b37643a2211b3fde03da51b
BLAKE2b-256 20ccaeebe01c1426d864a23fbfbba3a92f4f6dd6fd854da4a21fa79bd1930892

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90711e8e66dfa1f7b109c1b04183aeb26ae178543abd5aeaf688d8bf55ff33ac
MD5 d817577bac88e6dbfe24c1ef1c6e2d61
BLAKE2b-256 7a1ad4e4f88e2d4d6b18da4d1ecf679c1128bc586320c355c68244c900a6a5b0

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8ae2d899637b5c7612d6145676a4083c6a5825432c2beab755299f79cf88e75a
MD5 35fceb30b75eb4d0afe4c329b993802f
BLAKE2b-256 024c53ecffcca5e5543b73cd015a06a4dfb42daa6782682e1ef29a5ad7c2751a

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81f34e9b705952aecd2ddb88d008f5ddd34ff5c4e310903f981dc9bedd250d98
MD5 fac6a3436a4e93ef9e1c5a8a296e4a7e
BLAKE2b-256 69028a7b6445e8c0f9282f4ef80f1b52d659dde4abb49e1702291d955ae86adc

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 230f48f0a5de0f1a59c75e36427eb429f25e0ea206d40e33b42f87266e01fa6c
MD5 765d776235d0c26a8b1ade0c7a1313c9
BLAKE2b-256 3aa7aee9612f90d46b53942286f6399d867425f0bfedd77f2d0906ea667517ca

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c62a8d66ed67ce5dd38641a73020607cde60a2c4ef40647826412be536b1713
MD5 b02d472aa7b1d489419d235d33aaa595
BLAKE2b-256 f908968a5bf16647c22fa9f2d58e1d2bffb893294a45c7dbedbc867563b8c1bd

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1164fd7610ce702e58dd774193fc9f082c4c795ec2c61d25bbc896413034b3e8
MD5 7fe54c422a2736190304d4808eaa3fd9
BLAKE2b-256 04bab1846dda7de2683abfe154d0b15e8468e8a8041646e6cf3fb8713d190d3b

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e090abd1a09611ba209948022796417e77bbad8f7b0f3b306818e8ee0ec7fb4
MD5 ad3a188102e90ec14e92e8602b3344b3
BLAKE2b-256 60287749f9991908c96dc469e272194267d237b91b04a2460030d61aa587acf7

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2a6bee19e6cd1eacc4ff714169631d3ad75568420f299a4e2a481cb12ddc0236
MD5 007b56f7ca88b57858a67401e0318dc3
BLAKE2b-256 de32aec3f9670ce80f0c0452975297e753eb0ca07380d4ead7c5bfb8cae1abcb

See more details on using hashes here.

File details

Details for the file quadrants-0.7.4b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for quadrants-0.7.4b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b96797f11aa0ca672a6039e3d95e2c7e55f162ee6aa7c00dbd6bea2301694639
MD5 03aba374bb9fbc805ffc04b747ce05e6
BLAKE2b-256 872daeb2ba4cf428c7563fe835febf1f066bdbfccbe138b26f5825a59cdf6bcc

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