The other one is OpenCL (C). I know SideFX has made some efforts to mitigate its verbosity, but C is still C. Even the Houdini document [www.sidefx.com] says:
Its use of pointers means it is easy to write unsafe code that might crash your video card driver or Houdini. While developing you may find yourself in a bad state where all kernels error on compile - restarting Houdini may be necessary to restore the driver. Rarely, you may need to restart your machine.
And it's nothing like the rest of Houdini. When you talk about being a Houdini artist/TA, people won't expect you to know C.
But there are better ways. One of them is Taichi [github.com]. It allows you to utilize GPU power with super clean Python code:
# python/taichi/examples/simulation/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: # Parallelized over all 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()
It's much easier, and more importantly, safer to write than OpenCL. And every Houdini user has already known Python. It's under Apache 2 so SideFX can integrate it into Houdini without worrying GPL issues.
What do you think?