Skip to main content

Taichi Forge - a community-maintained fork of the Taichi Programming Language (import name: taichi_forge).

Project description

Taichi Forge

中文版

Taichi Forge is a community-maintained fork of Taichi. It keeps the Python-embedded DSL model of vanilla Taichi, while carrying modern toolchain, backend, graph, native algorithm, cache, and display-path work for simulation and rendering workloads.

PyPI Python License

Install

pip install -U taichi-forge
import taichi_forge as ti

ti.init(arch=ti.cuda)

The package name is taichi-forge; the Python import name is taichi_forge. Forge does not overwrite the upstream taichi package. Code that must import vanilla taichi unchanged should keep using upstream Taichi or an explicit compatibility shim.

Compatibility Baseline

Vanilla Taichi 1.7.4 is the main public-API compatibility reference for this fork. Forge keeps the Taichi DSL programming model, but the release line is independent from upstream Taichi version numbers.

Area Policy
Public DSL Supported Taichi-style kernels, fields, ndarrays, sparse SNodes, graph builders, and AOT APIs keep source-compatible semantics.
Package identity Forge installs as taichi-forge and imports as taichi_forge; it does not claim the upstream taichi package name.
Backends CPU, CUDA, and Vulkan are first-class Forge targets. Backend-specific additions are documented explicitly.
Experimental paths Experimental features are marked by API name, option, warning, or documentation. They are not treated as vanilla compatibility promises.
Bugfix-only uploads If a PyPI upload only fixes packaging, crash, cache, or documentation problems without changing intended feature semantics, the latest fixed patch in that release line is the authoritative version.

Changelog-Oriented Highlights

Current release baseline: 0.4.2.

The README intentionally describes user-visible changes and compatibility boundaries instead of detailed benchmark numbers.

0.1.x: Toolchain Modernization

  • Moved the fork onto a modern LLVM 20 based toolchain.
  • Added support targets for Python 3.10 through 3.14.
  • Updated the Windows build path for current MSVC/Visual Studio environments.
  • Kept the vanilla Taichi DSL import style under the separate taichi_forge package name.

0.2.x: Compile and Cache Infrastructure

  • Added compile-tier controls such as ti.init(compile_tier=...) and per-kernel @ti.kernel(opt_level=...).
  • Added batch precompile helpers: ti.compile_kernels(...) and the ti.parallel_compile(...) alias.
  • Added ti.compile_profile() and ti cache warmup ... for compile-time diagnosis and offline-cache warmup.
  • Split reusable frontend/source parsing state from backend-specific compiled artifacts where reuse is safe. Backend-specific cache entries stay isolated so switching arch does not overwrite another backend's compiled artifact.

See Forge API reference, Compile and cache guide, and Forge options.

0.3.x: Vulkan Sparse SNode and Native Sort

  • Added Vulkan sparse SNode support beyond vanilla 1.7.4's dense/root-only Vulkan path. The documented public target includes pointer, bitmasked, and dynamic SNodes on Vulkan.
  • Added experimental hash SNode support on CPU, CUDA, and Vulkan with fixed capacity semantics.
  • Kept quantized Vulkan paths behind explicit experimental gates.
  • Added the Forge-only stable sort dispatcher ti.algorithms.sort(...), while keeping vanilla-compatible ti.algorithms.parallel_sort(...).
  • Treated bugfix-only sparse-pool and package uploads as superseded by the latest fixed patch in the same release line.

See Vulkan sparse SNode, Hash SNode, and Parallel sort API.

0.4.x: Graph, Native Algorithms, Cache, and Display Submission

  • Modernized graph execution below the public graph-builder API while keeping GraphBuilder.dispatch, sequential graphs, compile, Graph.run, and AOT CGraph as the user-facing model.
  • Added support for Forge-defined DSL native algorithm nodes in graph replay. This is not a public arbitrary native callback API.
  • Broadened native algorithm coverage beyond sort. Public algorithm entry points include PrefixSumExecutor.run(), experimental_compact(), experimental_reduce(), experimental_histogram(), experimental_transform(), experimental_gather(), experimental_scatter(), experimental_scatter_add(), experimental_bucket_builder(), and experimental_grouped_reduce(), with reusable workspace objects for repeated calls.
  • Formalized canvas.set_image() as a display-frame submission path and added ti.ui.DisplayFrame plus Canvas.submit_frame(...) for display-ready host, texture, and packed u32 frame inputs.
  • Added display statistics APIs so engines can distinguish accepted, submitted, dropped, and reused display frames.
  • Fixed some issues in vanilla Taichi as well.

See Forge API reference, Graph upgrade notes, Native algorithms, and Display frame submission.

Public Documentation

English public docs:

Build From Source

Forge wheels are built with scikit-build-core, matching .github/workflows/publish_pypi.yml. The PyPI-style build supports Windows x86_64 and Ubuntu 22.04 x86_64 for Python 3.10 through 3.14, with Vulkan, OpenGL, CUDA, LLVM, and the C API enabled.

Use Building Forge wheels for the exact Windows and Ubuntu package list, LLVM 20 setup, Vulkan SDK setup, CMAKE_ARGS, and python -I -m build --wheel --no-isolation commands.

Known Boundaries

  • Forge is a fork with its own release track. Do not assume a Forge version maps to an upstream Taichi release number.
  • Native algorithm APIs with experimental_ in the name are public but still allowed to evolve more conservatively than long-standing vanilla APIs.
  • Strict cross-device zero-copy rendering is not a blanket guarantee. Some display routes are near-zero-copy or staging-based depending on source backend and resource ownership.
  • Public compatibility means source compatibility for supported paths, not preserving every upstream implementation detail.

License

Taichi Forge follows the Apache-2.0 license inherited from upstream Taichi. See LICENSE.

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.

taichi_forge-0.4.23-cp314-cp314-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.14Windows x86-64

taichi_forge-0.4.23-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

taichi_forge-0.4.23-cp313-cp313-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.13Windows x86-64

taichi_forge-0.4.23-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

taichi_forge-0.4.23-cp312-cp312-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.12Windows x86-64

taichi_forge-0.4.23-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

taichi_forge-0.4.23-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

taichi_forge-0.4.23-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

taichi_forge-0.4.23-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

taichi_forge-0.4.23-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

File details

Details for the file taichi_forge-0.4.23-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1523782b1a4fc0340ef8a219e84941db964da353d7a328456b8a9b6c288cb75e
MD5 b7402d0e640702c002633d59483b3846
BLAKE2b-256 2d581aff1b1b103b32004b617712cdb45072129c41ecb7245157a3490b53e9ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp314-cp314-win_amd64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 06d078fd9ef15a6d64972ecc67c3af138d090c48d86687907f2395e8f52bda28
MD5 27ec87580e8bd017d268ac9b8c2c7173
BLAKE2b-256 571c47e9eb7cfae728c343d86b13684ed5bb28727e11c3f0dfa0382f18a8c1ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dc4a571c816a5a61ab236340faf360a9a1a96a50eedf25258326596a637aed55
MD5 5e660a50217c864c00c6667458277738
BLAKE2b-256 dacd0dafd7ab54814041d9e2b3bfc1b7251f1a9a9a80bccd348e674a9e80fc7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp313-cp313-win_amd64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d51b1a7ba49a462f33e750b2f0ab0c1e2d286b5a026296f2b950cba591dd0cd6
MD5 27f0bb576a341a3b59c9781ac73195c2
BLAKE2b-256 14b196e1fff6e149424ab11e59dedc8607c830f3275c3f1fa02d3cd294965f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e5946e196d8a63a0697fe0293dd5f4958866b861d6b25921049aefca5b36e528
MD5 a91fdf347beecbaba2a1dd9512e3c24c
BLAKE2b-256 c8062f75100aeae34eac72683dbfd473589933a3b014b1b22820d120ab66dafb

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp312-cp312-win_amd64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 8ecd568b4548c07b433ba11cbf42d2acc44c658c923159369f72eb383e73abb4
MD5 d9fd4a356f0018ea3b99ad38accf7121
BLAKE2b-256 7563c99e995e9bad3c65a029904742df55aab3da7c34b14e8ed4e4ff105bb2a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 86b804f6ef2fcc42fb631d2ceab4e71637a5629b80c436426778501dcb8883b7
MD5 41309f534de1d2d0b1875914856ec174
BLAKE2b-256 9df084fe9a5cdf9ba1ea317b7dc4f8235174e13bb6f84e1a5ab37a1e055dba5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp311-cp311-win_amd64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1f8b4c17b865a82e364ae1b214981b3722b53167723cc35e5a8f0876154dc3ef
MD5 66e63a515d9c70649911876b06bb4734
BLAKE2b-256 40547082e2148b154b619e6e32fcc0fa499216319ad24a8b96676d403996669d

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5763d9b3346712588a476aeca94ea83c7d9e2a10ea811cbe380f90e4adacfc51
MD5 29f8f63e6fb4ef6f91836da525bdaa76
BLAKE2b-256 a056bf7af6802366736d4ea0a52e98aef6678234984a8eb0865ed5b5ada3b805

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp310-cp310-win_amd64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file taichi_forge-0.4.23-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.23-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f6b7e2c629aee96d7ad85b381ad9365f1ec972cf09725f77b346a1896a56fd1b
MD5 49c7a176bed32be71ddbd2e704f5b998
BLAKE2b-256 af9b5ee0410c45191efc61940154789970fe1600048e78d6b703397e158f637c

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.23-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl:

Publisher: publish_pypi.yml on fancifulland2718/taichi-forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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