Hacker News

TaiChi: Open-source computer graphics library(taichi.graphics)

304 pointsadamnemecek posted 2 months ago36 Comments
36 Comments:
ptrott2017 said 2 months ago:

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.

slavik81 said 2 months ago:

With a basic background in computer graphics, I found it took me about 4-6 months to understand and implement a paper like APIC from scratch. TaiChi's author, Yuanming Hu, apparently implemented that and 9 other papers in the same time. It probably helped a lot that he worked directly with the paper authors, but he certainly has been very productive.

I really appreciate that somebody is implementing these papers in the open. It's incredibly useful to have a reference implementation available to study alongside the paper. Seeing the same thing in a few different ways is great for learning.

His 88-line implementation of MLS-MPM is probably a little too much like code-golf, but when I expanded it out to 188 lines, I found it really enlightening.

phkahler said 2 months ago:

So it's not doing physics?

lkschubert8 said 2 months ago:

I believe it is doing physics. See http://taichi.graphics/gallery/ for some examples.

sigzero said 2 months ago:

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

jbotz said 2 months ago:

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...

kwk1 said 2 months ago:

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

garmaine said 2 months ago:

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 said 2 months ago:
jandrese said 2 months ago:

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 said 2 months ago:

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/

garmaine said 2 months ago:

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 said 2 months ago:

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 said 2 months ago:

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 said 2 months ago:

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 said 2 months ago:

The Github README has some good examples too: https://github.com/yuanming-hu/taichi

ajuc said 2 months ago:

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

slavik81 said 2 months ago:

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.

Impossible said 2 months ago:

The 2D rigid body and 2D MPM examples run in real-time, everything else is offline.

dcbadacd said 2 months ago:

How does this compare to magnum.graphics?

eps said 2 months ago:

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 said 2 months ago:

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 said 2 months ago:

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

fh973 said 2 months ago:

What's the difference to say something like Unity?

vorpalhex said 2 months ago:

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.

nurettin said 2 months ago:

Both are cross-platform and can open an opengl context. Everything else is different.

adamnemecek said 2 months ago:

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

https://github.com/yuanming-hu/taichi

mods can you change it to the github link pls?

pavlov said 2 months ago:

Here's a link to code samples: https://github.com/yuanming-hu/taichi/tree/master/projects/e...

(It's not on the top level of the Github repo, so it's maybe not obvious where the examples are. At least I had to hunt a bit.)

cwyers said 2 months ago:

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 said 2 months ago:

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 said 2 months ago:

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://dl.acm.org/citation.cfm?id=3201293

buckminster said 2 months ago:

It looks and cuts like a cheese food product.

mcphage said 2 months ago:

Given the sample images on the github page, I would have assumed it was a physics engine.

mshockwave said 2 months ago:

i don't think the github page helps either

adamnemecek said 2 months ago:

It has cool images.

mistrial9 said 2 months ago:

uuhhhh bad name ?