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.25-cp314-cp314-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.14Windows x86-64

taichi_forge-0.4.25-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.25-cp313-cp313-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.13Windows x86-64

taichi_forge-0.4.25-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.25-cp312-cp312-win_amd64.whl (2.5 MB view details)

Uploaded CPython 3.12Windows x86-64

taichi_forge-0.4.25-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.25-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

taichi_forge-0.4.25-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.25-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

taichi_forge-0.4.25-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.25-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 56d7b6a1f5934888888ec266330e786a06859f2311f196acc243c981b321df16
MD5 69eae66d266eaf5917211213e463be33
BLAKE2b-256 740f41c3f6b11f5260ba5d4ed9b672d2aebe7abcf490625bd7efb5507b4f1f56

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b5b0d5ca4659f970a8ec74f097d5e2044d5fa3470b7a6cb8bca2aae127dc8dce
MD5 c35fef308e5908837360c32c874795fd
BLAKE2b-256 4394a92faaf98753038b7ee17087285be3c87b68cc933dc7ee0abe232cebe40c

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e1acb182eee1d838ed2f8a403b57c8336118977de6e462d94f3b936ac82ea578
MD5 9498b2c616e9cc375fe0ad723de0a751
BLAKE2b-256 c272aecc55c56e21ec3afbfc339e2d0f7d1f026cb6ba6161a9af22e55cd8cf52

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 14aa215579e6f7b3c1e113e873036861093d91c0cfb0d85489dfbd2c58fda520
MD5 49aa7b3ee6a32cab22c18b22fff2c142
BLAKE2b-256 0e8a2cfb222de1f3879b9ed9e67d5ae57e04a7bb11ea16b23a5eb0b72adb5533

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1bf175a0397e9b1061ad5b1afd694c40ddcddce3e517f283f2b9abb4770bdfb9
MD5 687483fa535728e85f553adb0f6b5029
BLAKE2b-256 65778b9d510655417aa3364eb1641272111f358f5661747bfc63bebff5246142

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 23294fc3f64b4c154553e8fd698dfe9de30f1d4e2032562086a9482ad0836417
MD5 709719ac8b42234cf82bd8914b0120ef
BLAKE2b-256 0de4ad7665c4edcdafffb8f51410b9e826411adbf0c0a3ef2223867c5f61fe89

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6f0556cf3f9c63f4e33eb17234259d555ec6951b40fd1313b058a89b5aedeadc
MD5 90438abf4a0ebec498a93a394bd9fc19
BLAKE2b-256 a239ca28c307c83a27b35e880ac9fb814f7a5eb32b9a6a04983de6091cdf1aef

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a02f534cfdbf4c8a4c215388e48e176bce841de87396f7044ea912f0039262b8
MD5 09037256f5a7a1fb9abaebfa6f310c3a
BLAKE2b-256 6d1bf7cc54823da74eee2ee932fbad4d628f6fc0ed6201d01f4a343a733e82df

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6280e9e89f825b83930741133cea316461b968565e98cb3c00c6a37ad8041882
MD5 c113705f506b07e1df177466f0dfc148
BLAKE2b-256 118d3d937e991fa1f8f3fbd2fe316e8c0cc2e7079089e1ddcf49949fbeb6daae

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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.25-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.25-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 9ecee0ca16474cce0f00a5952a2f000b8707dd663aa37d6cedb168f43ff59ba9
MD5 b09eae0b8aa54193af3b5fbccbd73e3b
BLAKE2b-256 9aad66737afe0528b9bb16adf0f16279487c7a50010be97b601e71c340f61e9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for taichi_forge-0.4.25-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