
TaiChi: Open-source computer graphics library - adamnemecek
http://taichi.graphics/
======
ptrott2017
For anyone interested - since its not immediately clear from the website
(though the graphics are stunning) – TaiChi is a cross platform combined
physically based animation and physically based rendering toolkit/ library. It
wraps a lot of current state of art research algorithms and significantly
simplifies doing graphics R&D. It is also a lot of fun to play with.

~~~
phkahler
So it's not doing physics?

~~~
lkschubert8
I believe it is doing physics. See
[http://taichi.graphics/gallery/](http://taichi.graphics/gallery/) for some
examples.

~~~
sigzero
It is both not doing and doing physics. That is the TaiChi way.

~~~
jbotz
Actually, the TaiChi way would be "not-doing" (Wei Wu) physics. See:
[http://www.the-taoism-for-modern-world.com/wei-wu-wei-not-
do...](http://www.the-taoism-for-modern-world.com/wei-wu-wei-not-doing-
taoism/)

~~~
kwk1
It's the other way around, wu wei--the absence of effort. The extra wei in the
front is the "doing" of "not doing" (wu wei) which seems to be something
particular to this author.
[https://en.wikipedia.org/wiki/Wu_wei](https://en.wikipedia.org/wiki/Wu_wei)

------
garmaine
Can the submitter explain this better? What sort of computer graphics? Real-
time simulated? Path traced? I explored the website and the github and neither
really made clear. "Computer graphics" is so broad as to be useless as a
descriptor.

~~~
slacka
[http://taichi.graphics/about/](http://taichi.graphics/about/)

~~~
jandrese
That about page doesn't help at all.

> Taichi is an open-source computer graphics library with implementations of
> 40+ graphics papers. It has a hybrid design: a C++14 kernel part, and a
> user-friendly Python 3 wrapper.

That's the extent of the information on that page.

~~~
ogrisel
The gallery of rendered images and videos is probably the quickest way of
getting an idea of what this software project can achieve:

[http://taichi.graphics/gallery/](http://taichi.graphics/gallery/)

~~~
garmaine
Doesn't answer the questions I had. Is this real-time or batch rendered? Also,
the site advertises it as a "computer graphics library" but many of these
demos are more about physics simulation, which only adds more confusion...

~~~
vbarrielle
Physics simulation is a very active computer graphics research topic (see e.g.
the SIGGRAPH conference). The goal in computer graphics research will not be
to have an exact result, but to have a visually plausible (and pleasing)
result as fast as possible.

~~~
garmaine
Yes, I know. But such libraries often call themselves "physics simulation
libraries." The term "computer graphics" is typically reserved for rendering.
So what is this library doing? The scene setup and rendering? The offline
rasterization? The frame-to-frame physical simulations? More than one of the
above?

~~~
theoh
It's a library of complete physically-based simulation and rendering algorithm
implementations.

You seem to be assuming that "library" must mean a layer or an API providing
certain runtime abstractions or functionality. That's not really what this is.
It's more about code reuse and a rationalized core of tools for implementing
the various techniques.

------
dmos62
The Github README has some good examples too: [https://github.com/yuanming-
hu/taichi](https://github.com/yuanming-hu/taichi)

------
ajuc
So this is mostly for non-realtime, non-interactive stuff, right?

~~~
slavik81
There's a number of interactive simulations. My impression is that it's for
writing research code, which often requires scaling things down to iterate on
the simulation behaviours at interactive rates, then scaling up and going
offline to make a cool video.

------
dcbadacd
How does this compare to magnum.graphics?

~~~
eps
Excellent question.

You are clearly familiar with the latter. Perhaps take a couple of minutes to
read through the linked project and answer the question here, for everyone's
reference?

~~~
dcbadacd
I'm actually not very familiar with it, other than it's meant for more real-
time stuff and it supports a lot of different platforms. I'd love someone
comparing that is actually educated on the topic (computer graphics) :P

------
imulligan
It was stunning and I can see use of that in corporate presentation, science
study, school IT..just wow

------
fh973
What's the difference to say something like Unity?

~~~
vorpalhex
Unity is a full blown game editing and creation suite with a complete engine
(physics, rendering, assets, sound, so on). This is a graphics library using
some very fancy, very modern research.

------
adamnemecek
I'm realizing that the github link would have been better

[https://github.com/yuanming-hu/taichi](https://github.com/yuanming-hu/taichi)

mods can you change it to the github link pls?

~~~
cwyers
That animation of a knife slicing a bananaesque object is going to give me
nightmares. I never knew there was an uncanny valley for fruit before now.

~~~
PeterisP
Yup, true uncanny valley - it's clear that this is something similar to banana
but significantly different, it doesn't behave like a banana at all but like
dough or modeling clay in the shape of a banana.

I'd never considered how a banana would look like when cut, and I'm not
certain how it should look but I'm certain that it's not like this.

~~~
slavik81
The banana example comes from the MLS-MPM paper[1]. MPM is basically a way of
simulating deformable solids using particles. The big thing that the MLS-MPM
paper achieved was that the particles wouldn't magically interact with their
neighbours on the other side of a thin solid.

The example is kind of ugly, but it's really only trying to illustrate one
specific property of their simulation: that the knife can properly separate
neighbouring particles from each other without any spooky interactions between
the banana on one side of the knife and the banana on the other side.

[1]: [https://youtu.be/8iyvhGF9f7o](https://youtu.be/8iyvhGF9f7o) |
[https://dl.acm.org/citation.cfm?id=3201293](https://dl.acm.org/citation.cfm?id=3201293)

------
mistrial9
uuhhhh bad name ?

