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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

taichi_forge-0.4.24-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.24-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5716c3e9410c098c60b6d49f9aff74a96936596a6d9b30f780b829e82381c734
MD5 dc795e89fe745c7895db37c4624f6f3f
BLAKE2b-256 13ed54830b09115abbf7c407f8677d988d63051b17eff3905aee639de25274b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1376395de12c55fbfc7b308bbc97ab77d712e803f8cfda9c2cd6b513636682e2
MD5 aa6f91d4ead073d1276aa74aed25940f
BLAKE2b-256 ee1e34f85f99ccf6898b18e7f6b6df248577a8c004d2480760f83c7730a9dcdc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9839c3cd875436b287cf036f5fb136cffaa7183a62411658ec1d1c4e80df63e7
MD5 94a747713ea42718252e8070b7bf1ea6
BLAKE2b-256 53ede295e1be472ab8273947ecfeac7e304a418ede9a517b30d4ad44183fc31d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a3dbf2455b2647653c737e6978517237f97b92c287044652c14b1c21b00e18a7
MD5 0eacc35d6a4e00e8de0c395e4c9385c5
BLAKE2b-256 015b064dddce86ce861f3dcb82b3ed94b8cd7165609eb90563b4753f64ef7c9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3481c996a4c9b3904dbebef5f0659a2586c87ec2600764afdc53326829a5c239
MD5 9cb9a0fc5e32df6267d7034ea57c9fb7
BLAKE2b-256 2f585ad7ccdb7c63e045d7720f7029fbed9361f93cf876193b77441390f86ca5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e87ba8f1dfc5c5f729b959ed69bad969153350e44124cbf25dc9fe739d0ebf5a
MD5 1cb079d3cbbda4e678f20b7c771a0766
BLAKE2b-256 ebfa15c282fedc2515d942a0f746e8854755605d014a5aa06c3f4a13c0c7a9c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 aed68b307dd7f299ed6af6661e89a748e06dc71c08511dac3bd3374d7e34033b
MD5 553d5cfbaa4d3e335fb953efb37e49fe
BLAKE2b-256 f7c7bb12fe92b45820e3bb1bdfb8fbe7532a6a41e753f7ba314a773bb0981404

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b4c525f837911082a21989f7c0c8ef058caf62b6b1552c8aa3295b01d9ef3f22
MD5 a11808b4e6a12609a612466765ca606b
BLAKE2b-256 5b2db2d7c34b8e36680519cb01d343f2cd8bba51ca565007f589d634dd4a4df7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2a8fa1d35747b78ebf8be86c83fd2de4b2db8ac788c51c507ecc9868a2ad2bcd
MD5 af0e232dbfbb58d4393b2965ae8bf0bc
BLAKE2b-256 31d35622f0a141693cc316a337cc798826915a05c3dd5c11da0b60fa24ce2afa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for taichi_forge-0.4.24-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 7d9d95a022ec999f8f3379f7a0b7b4141dce22f84616663e45ccdb032342360b
MD5 a4be093f55314e643be1d171f67b4287
BLAKE2b-256 dda7fafb5e89eed7b7f38f07b67845e5e736d827eec28661d6328d5012357119

See more details on using hashes here.

Provenance

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