Skip to main content

The GsTaichi Programming Language

Project description

GsTaichi

GsTaichi was forked in June 2025. This repository (or gstaichi) is now a fully independent project with no intention of maintaining backward compatibility with the original taichi. Whilst the repo largely resembles upstream for now, we have made the following changes:

  • revamped continuous integration, to run using recent python versions (up to 3.13), recent mac os x versions (up to 15), and to run reliably (at least 80% of runs with correct code succeed)
  • added dataclasses.dataclass structs:
    • work with both ndarrays and fields (cf ti.struct (field only), ti.dataclass (field only), ti.data_oriented (field only), argpack (ndarray only))
    • can be passed into child ti.functions (cf argpack)
    • does not affect kernel runtime speed (kernels see only the underlying arrays, no indirection is added within the kernel layer)
  • removed GUI/GGUI, C-API, AOT, DX11, DX12, IOS, Android, OpenGL, GLES

Planned features:

  • reduce warm cache launch latency
  • (maybe) add launch args caching, to reduce launch latency
  • make dataclasses.dataclass nestable

Planned pruning:

  • remove argpack
  • remove ti CLI
  • remove support for NVidia GPUs earlier than sm_60/Pascal

What is gstaichi?

GsTaichi is a high performance multi-platform compiler, targeted at physics simulations. It compiles Python code into parallelizable kernels that can run on:

  • NVidia GPUs, using CUDA
  • Vulkan-compatible GPUs, using SPIR-V
  • Mac Metal GPUs
  • x86 and arm64 CPUs

GsTaichi supports automatic differentiation. GsTaichi lets you build fully fused GPU kernels, using Python.

Genesis simulator's best-in-class performance can be largely attributed to Taichi, its underlying GPU acceleration framework for Python. Given how critical is this component, we decided to fork Taichi and build our own very framework from there, so that from now on, we are free to drive its development in the direction that best supports the continuous improvement of Genesis simulator.

Installation

Prerequisites

  • Python 3.10-3.13
  • Mac OS 14, 15, Windows, or Ubuntu 22.04-24.04 or compatible

Procedure

pip install gstaichi

(For how to build from source, see our CI build scripts, e.g. linux build scripts )

Documentation

Something is broken!

Acknowledgements

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.

gstaichi-4.6.0-cp313-cp313-win_amd64.whl (56.2 MB view details)

Uploaded CPython 3.13Windows x86-64

gstaichi-4.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (44.6 MB view details)

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

gstaichi-4.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (41.6 MB view details)

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

gstaichi-4.6.0-cp313-cp313-macosx_11_0_arm64.whl (30.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gstaichi-4.6.0-cp312-cp312-win_amd64.whl (56.2 MB view details)

Uploaded CPython 3.12Windows x86-64

gstaichi-4.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (44.6 MB view details)

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

gstaichi-4.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (41.6 MB view details)

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

gstaichi-4.6.0-cp312-cp312-macosx_11_0_arm64.whl (30.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gstaichi-4.6.0-cp311-cp311-win_amd64.whl (56.2 MB view details)

Uploaded CPython 3.11Windows x86-64

gstaichi-4.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (44.6 MB view details)

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

gstaichi-4.6.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (41.6 MB view details)

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

gstaichi-4.6.0-cp311-cp311-macosx_11_0_arm64.whl (30.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gstaichi-4.6.0-cp310-cp310-win_amd64.whl (56.2 MB view details)

Uploaded CPython 3.10Windows x86-64

gstaichi-4.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (44.6 MB view details)

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

gstaichi-4.6.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl (41.6 MB view details)

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

gstaichi-4.6.0-cp310-cp310-macosx_11_0_arm64.whl (30.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file gstaichi-4.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: gstaichi-4.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 56.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gstaichi-4.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 26f7bd9b6f0746e9569a5c84fdd210231c52eb433a1eebf2f9039b8848c67350
MD5 e1077d99796e4a86a8a33f41fc8357be
BLAKE2b-256 34a6cc4b28c4f4564a9e40248a5a5fd312598fb9cb31b3d85e55bab7a18dcabd

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a63b71e78d6321219dd7a3abbbb6e9c6c0f6c6822502e157908d2dabad3a68db
MD5 4b70ef9c99815bb8736f9ccab6848038
BLAKE2b-256 ad6b47971daabfaf85fe2cfb2830918926e491f147c7ff7aeb2a8123c0c0e6fb

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 dc4ebe9ae6d52468d69135093a5995cadf94f23fd3351f8ca5892c670c7d70ff
MD5 e64ce5b9855f8bf01dc95ab58a9ca5f3
BLAKE2b-256 ffedb8ea1d7aef47d79de262bfc46fd84953180dbc8b3a4445980c1d340600b2

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac0cd1c31e7f1136e51f68572144ee1264469d623b56f3e6eb2ed6958772b4b9
MD5 f412146792e7f8df625ad1fd9e780425
BLAKE2b-256 f640524eb27037c2534a377aac7a62154c26fb969fb3076c30fdfaba2872611a

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: gstaichi-4.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 56.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gstaichi-4.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6e8cf212c8558cfe397e58450402c2d676bd47aaecb5aea013b142bef4a62a3f
MD5 5c6de28a07993b6d3e81f9ac29cd8ec6
BLAKE2b-256 b5ea71e562b09307b7095c07cb702ac50f006133c1f148e2d0606ff793cce82b

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f16710f1af5967b0c303e7bf9055380cb07c3b71fb97963e85d50276d70489b
MD5 0cfc9fa8bcd6a63ac4beb653209f37e3
BLAKE2b-256 d7729f19293e3a9e0166a8b5d64f24bb75e343ab937f211eb022c87a9ef64521

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 5430c1980fa0f7752fc0ecddd8f4b0bbcca92600af16f2ed832480e5fb18acf1
MD5 e12d1c835dd86b5a7eae33f2d32d52f5
BLAKE2b-256 eb2a099f29274a0b8a806fed1d929963b36d4240ce4cf1abd9e820ff43afd453

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d6b2ab3859a9e70d3a5afb4e354a5b9c949754f218cbf85035639462f2c052a
MD5 0d5a85df1638bc356931577c00ce1086
BLAKE2b-256 0663484e26fab64ac9167ee9c2963fa27551e2e67ef13d05f74de0addc18c36e

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: gstaichi-4.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 56.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gstaichi-4.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 55822651acf9a27882b012ffa98e3fdb0065302bbba8ea4616006a05ff992bd9
MD5 c73ee80de0d80d26b836eb3f3512a711
BLAKE2b-256 2245725b7f61446f722fb6126b9a3c427b0958842da2f65262d8b997b27a81ea

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70d695d20feea4e062a9ab5e097e3c68f8511e3f196c136f90486d76e3437e4d
MD5 a2db94464757a885aaaa3d4254e11bae
BLAKE2b-256 4be3750cce50ab382289a990c585c14e6f9c727f7b37f91fe65ba5ae048f20cb

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 cda8c2c1cf53b0199d9d511b71fbcdbeace46ee56af222a8630ab793f1ecfa2b
MD5 73e3f8b51cc44998b8541dbee2df585c
BLAKE2b-256 edd7124cd62190869699918195318225d7450ff231fda9fc8e9a9c4a253a74e6

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5a253bac228ceb462bf5f29516e0196f4b8326666e8b26ab6ac36419c448357
MD5 6c697fc6a887fb21de19d946a0b8cc61
BLAKE2b-256 3d9c56c847666b501a33b48ecda606f56bfbace67464684c3763e5ae923d8490

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: gstaichi-4.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 56.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gstaichi-4.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 22b75f2bfdcbce2323dccc227f81108e949fb817ec0091a7b2be9e11e70914c0
MD5 5b16a694ffb8627857d5d2c0ca494a18
BLAKE2b-256 f882575df4190873600f56f3a8bf4cca4a0bc450200ee49474a97e1dce9fab60

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b59094fe61666c5747e5542ddcdf3a8cc65cb2fe2473a67b9f54587366ef724
MD5 8f40a4082e8ca0ff03465751ac197e05
BLAKE2b-256 19b0d70229b72349a9ce59b703f7dc5f84c5c343763325065ac3ebf714db0751

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ba73f60c1a82a5317bd237563bcc971a7341a18b0f8dda92c900369cfa08c6be
MD5 ad556c5a37d2a8891687c13d46a2997b
BLAKE2b-256 b9b2a8dd5cb11557811c5ca2e8f23fdf234c7f4ca6f69f756dcea714ec1bf0c6

See more details on using hashes here.

File details

Details for the file gstaichi-4.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gstaichi-4.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9adfc85d87cfa96743918f47fe11b763734aa7472137b33e4da720ee431f672e
MD5 2a2e26ce0d190bed74a6135221d146ce
BLAKE2b-256 fb24e5020559450a655097ccb34f615aad1d4cd54d0d8722f0ea522776204431

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