Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename Taichi THREE to THREE.py? #21

Open
archibate opened this issue Oct 6, 2020 · 3 comments
Open

Rename Taichi THREE to THREE.py? #21

archibate opened this issue Oct 6, 2020 · 3 comments

Comments

@archibate
Copy link
Collaborator

As Taichi THREE grows, it become more and more mature.
I'm wondering if taichi_three is a convinent and eye-catching name.
I think we'd be ambitous, to push this project not only an extension library of Taichi, but a standard soft rendering pipeline based on Taichi.
It currently supports shadow mapping, normal maps, PBR materials, OBJ loader, etc. which is totally a small but strong bird (麻雀虽小, 五脏俱全). We even have set up a documentaion site at: http://t3.142857.red/ (WIP).
Compared to other real rendering pipelines like https://github.com/stemkoski/three.py, our advantange is flexibility. Not to say we're going to support path tracing scheme.
So, I'd like to rename Taichi THREE to THREE.py, to claim that we aren't just an extension library, but a complete rendering pipeline.
We'll seeing it finally grows up to become a industrial renderer, like Eevee and Cycles. We will finally see an option named THREE.py, right below Cycles (工作台) in Blender's "bake" menu!
three.Camera also sounds cooler than t3.Camera to me.
WDYT about this cool ambition? Inputs are welcome! @victoriacity @Zony-Zhao @yuanming-hu

@Iteravse
Copy link

Iteravse commented Oct 6, 2020

new document looks great~
may i more prefer rename to Taichi3,taichi's three meaning in chinese is 三生万物 :)
if just rename to THREE.py,it sounds just a python 3d library,but i hope some day may we can independent with python,use another more efficiency method programme,let it become a new platform
i hope this platform more powerful,effectively,conveniency than any exists engine enough to realize any vision in the world
but i think if we really want to develop and gorw stronger taichi3d as fantastic Tools even better any other Engine in this world like Unreal,Frostbite,Unity3d,we have one advantage over them,a stronger core arithmetic 'taichi'
BTW i invent a board game to let human challenge deepmind artificial intelligent,and i try to realize that game graphical interface by taichi,so i more prefer Taichi3 become a unique engine not a just python library,just my opinion,the hope can be helpful for you

@victoriacity
Copy link
Member

Here're some of my ideas:

Naming - I feel that Taichi has been making the distinction of being its own programming language. For example, we almost always say "using the Taichi programming language" instead of "using the Taichi package in Python". When talking about a package of Python, one may naturally think of the NumPy/SciPy stack, which is the case for PyTorch, TensorFlow, as well as three.py. In this regard, taichi_three would still be a good name since it is "the" 3D rendering extension of the Taichi language. However this will also relate to the long-term plan for Taichi in whether we tend to go closer to Python or depart farther from Python.

I more envision taichi_three to be a more research-oriented renderer than a production-oriented renderer. The greatest benefit of taichi_three is flexibility, which directly accelerates graphics research, for example, imagine reproducing a SIGGRAPH rendering paper in less than 100 lines. A Blender extension will be great -- one of the most common research renderer, Mitsuba, also has a Blender extension.

@archibate
Copy link
Collaborator Author

archibate commented Dec 18, 2020

Thank for all the discussions here! Here's the recent progress on this topic:

The core is completely re-written after Taichi THREE v0.0.9 is released making the API more intuitive and much easier to maintain in hope for make it available to everyone.
Don't worry, many of the good things from legacy Taichi THREE are left, like cook-torrance, mesh editing nodes, OBJ importer, marching cube... but some of the very core parts, including the triangle rasterizer, is completely thrown away and replaced by a more efficient algorithm that is friendly to GPUs when faces are a bit large. The new rasterizer also make compilation a bit faster and no more growing compilation time when there are a lot of models (reliefs #26). Also note that the camera system is completely re-written (sorry @Zony-Zhao and @victoriacity!) and now we no longer have dead-lock (万向节死锁) at +Y and -Y.
The re-written renderer is renamed to Tina to celebrate the huge changes in its API and important refactors and steps as an answer to this issue, source of the name might be Seventina, one of my favorite song of harumakigohan 😆 Another reason is that we don't need a very long import seventina as t3 when import, we could directly use the original package name by import tina and tina.Scene(), what do you think?
Also thanks to the cleaned code structure, the renderer now also have a Blender integration work in progress, see Taichi-Blend, and video demo here.
I won't rename the repo taichi-dev/taichi_three very soon to prevent dead links to this project.
Also note that the dependency of taichi_glsl is removed after the transition to tina, we invent own utility functions like bilerp and hacks like ti.static to prevent sync with the taichi_glsl repo (prevent issues like #32 (comment)).
The legacy version of Taichi THREE could still be found at tag v0.0.9.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants