hero

大家的计算机图形学编程语言

文档 →

生产力

Taichi嵌入在Python中,其语法与Python极其相近,因此十分容易学习。研究表明Taichi程序比等价的C++/CUDA代码短10倍,并能轻松达到更高性能。

可移植

无需改动任何代码,Taichi程序就可以在多种平台上运行,包括x64/ARM CPU、GPU、浏览器、智能手机等。Taichi支持Windows、Linux、OS X等操作系统。

高性能

Taichi的即时编译(JIT)系统能利用多核CPU与大规模并行GPU。Taichi的语言设计使得其编译器能够进行有力的性能优化。

友情提示 beta

本网站还处于持续施工 🚧 中,这里的内容极有可能发生改变。访问我们现有的文档站Read the Docs (opens new window)来查看详细的,特别是 API 和中文文档 (opens new window) 的相关内容。

# 你好,Taichi!

Taichi 可以用pip安装:

python3 -m pip install taichi

(请确保您在使用 64 位的 Python 3.6/3.7/3.8.)

下载 fractal.py (opens new window) 并使用 Python 运行:

python3 fractal.py

您将会看到如下效果:

fractal

 




























# fractal.py
import taichi as ti

ti.init(arch=ti.gpu)

n = 320
pixels = ti.field(dtype=float, shape=(n * 2, n))

@ti.func
def complex_sqr(z):
    return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])

@ti.kernel
def paint(t: float):
    for i, j in pixels: # 自动并行
        c = ti.Vector([-0.8, ti.cos(t) * 0.2])
        z = ti.Vector([i / n - 1, j / n - 0.5]) * 2
        iterations = 0
        while z.norm() < 20 and iterations < 50:
            z = complex_sqr(z) + c
            iterations += 1
        pixels[i, j] = 1 - iterations * 0.02

gui = ti.GUI("Julia Set", res=(n * 2, n))

for i in range(1000000):
    paint(i * 0.03)
    gui.set_image(pixels)
    gui.show()