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

[misc] Update README.md #776

Merged
merged 9 commits into from Apr 17, 2020
Merged

[misc] Update README.md #776

merged 9 commits into from Apr 17, 2020

Conversation

yuanming-hu
Copy link
Member

@yuanming-hu yuanming-hu commented Apr 14, 2020

@yuanming-hu yuanming-hu changed the title [misci] Update README.md [misc] Update README.md Apr 14, 2020
@yuanming-hu
Copy link
Member Author

yuanming-hu commented Apr 14, 2020

Now we have a gallery: https://github.com/yuanming-hu/taichi/blob/readme2/README.md#gallery

We have 3 slots left.

  • @k-ye could you please generate a 192x192 gif of pbf2d?
  • @archibate could you help with game-of-life and nbody_oscillator?

After #783 is reviewed and merged, ti video [frame rate] will gather all images under the current folder into an mp4 video.

https://ezgif.com/ is a great online tool to convert mp4 to gif and for compressing your gifs.

@yuanming-hu yuanming-hu marked this pull request as ready for review April 14, 2020 16:40
@archibate
Copy link
Collaborator

Great! I'll polish nbodyosc before making its gif.
Btw, why no ti gif to directly generate gif?

@yuanming-hu
Copy link
Member Author

Great! I'll polish nbodyosc before making its gif.
Btw, why no ti gif to directly generate gif?

Sounds good, thanks. We do have ti gif X.mp4 to convert a video to gif. Maybe we can let ti gif directly generate gif when it's called without any arguments.

@xumingkuan
Copy link
Collaborator

I wonder if fractal.py is related to spatially sparse computation? Will we use fewer threads to paint the white pixels and spend more computation resources on black pixels?

@yuanming-hu
Copy link
Member Author

I wonder if fractal.py is related to spatially sparse computation? Will we use fewer threads to paint the white pixels and spend more computation resources on black pixels?

This sounds like a chicken-and-egg problem - if we don't do the computation, it's hard to know which part is white and which part is black :-) I would say fractal is not really suitable for sparse computing unless there's a way to quick skip inactive parts.

@xumingkuan
Copy link
Collaborator

So is there a better example to show "spatially sparse computation and differentiable programming"? Although fractal looks nice, people might get confused by seeing such an example following the above statement about sparse computing.

@k-ye
Copy link
Member

k-ye commented Apr 14, 2020

Here you go :)

pbf2d

README.md Outdated Show resolved Hide resolved
@archibate
Copy link
Collaborator

So is there a better example to show "spatially sparse computation and differentiable programming"?

I thinks game_of_life can be a good idea to show off the usage of bitmasked. Only those active cells needs to be iterated. And we can also show them the speed boost by comparing the profiling result.

@yuanming-hu
Copy link
Member Author

So is there a better example to show "spatially sparse computation and differentiable programming"?

I thinks game_of_life can be a good idea to show off the usage of bitmasked. Only those active cells needs to be iterated. And we can also show them the speed boost by comparing the profiling result.

My feeling is that both sparse and differentiable programming are advanced topics. We should keep the code sample as simple as possible, since most users may just want a system that allows them to write computer graphics code in Python. I'll think about the text organization here.

@archibate
Copy link
Collaborator

allows them to write computer graphics code in Python

So taichi is the only option to write gpgpu shader code in py?

@k-ye
Copy link
Member

k-ye commented Apr 15, 2020

So taichi is the only option to write gpgpu shader code in py?

I think there are lots of Py wrappers around CUDA/OpenGL. Yet Taichi is a innovative way to hide all these complexities and unify them. And it’s not shader lang, but (a subset of) native python code, right :)?

IMHO the purpose of the REAMDE is to attract people, instead of trying to dump all the great features to them all at once.. That said, maybe AD deserves another section and/or a small example to illustrate what Taichi is capable of.

@yuanming-hu
Copy link
Member Author

IMHO the purpose of the REAMDE is to attract people, instead of trying to dump all the great features to them all at once.. That said, maybe AD deserves another section and/or a small example to illustrate what Taichi is capable of.

Agreed. It's always good to start easy. For this PR let's just include gifs of mostly basic features, as well as a brief introduction to the developer team. I'll update on advanced topics later in a different PR.

@yuanming-hu
Copy link
Member Author

@archibate I added game_of_life.gif. Could you help make nbody_oscillator.gif and share it with me? If you are busy I'll do that on my own since this PR should be merged as soon as possible.

@KLozes
Copy link
Collaborator

KLozes commented Apr 15, 2020

For that last gif I could code up a simple compressible Euler equation example. Also, I think it would be easy to do wavelet AMR thanks to Taichi. The gif could look something like this https://www.youtube.com/watch?v=k72_YeNO7yU . What do you think?

@yuanming-hu
Copy link
Member Author

For that last gif I could code up a simple compressible Euler equation example. Also, I think it would be easy to do wavelet AMR thanks to Taichi. The gif could look something like this https://www.youtube.com/watch?v=k72_YeNO7yU . What do you think?

The video looks fabulous!! For this PR I think 8 gifs should be good, but in the future, we can definitely extend the gallery to 12 or 16 items.

On one hand, if we can have a compressible Euler equation solver gif, that would be fantastic! On the other hand, how long do you expect a demo like that to be done? No rush on that, but we should try to update the README.md file as soon as possible (ideally within 48h), since the current README doesn't have too much useful information... If that demo is going to take a while or you are busy recently, I'll just make a gif out of an existing demo. (But I'm more than happy to include yours when it's ready! :-)

@KLozes
Copy link
Collaborator

KLozes commented Apr 15, 2020

Thanks! I can definitely have a uniform grid version done in a night or two. Wavelet AMR will take a few weeks I imagine, but will be a very cool example!

@yuanming-hu
Copy link
Member Author

yuanming-hu commented Apr 15, 2020

Thanks! I can definitely have a uniform grid version done in a night or two. Wavelet AMR will take a few weeks I imagine, but will be a very cool example!

Sounds great! Let's leave the final slot for your demo then! A uniform grid version would be good enough. I'm sure people will be impressed. (The small scale vortices in your Youtube video was really impressive!) Thanks!

@archibate
Copy link
Collaborator

archibate commented Apr 16, 2020

Here we go!

nbody_oscillator

edit: I found my example not really good... maybe we should put #796 instead of this.

@KLozes
Copy link
Collaborator

KLozes commented Apr 17, 2020

I think an n-body example is a worthy addition to entice physics people, but I think we could add a little more pizzazz to the algorithm and visualization. It would make a very good example of sparse computation if we replace the N^2 gravity computation with the Fast Multiple Method. We could even make FMM a standalone solver like the multigrid example. If we used this method we could also display the octree grid as well, which could look pretty neat.

@archibate
Copy link
Collaborator

Cool! Octrees sounds like what taichi_sparse is to do.

@KLozes
Copy link
Collaborator

KLozes commented Apr 17, 2020

Here's the gif! 192 pixels doesn't really do it justice though.

video

video

@yuanming-hu
Copy link
Member Author

Thanks @KLozes, I sped up the gif a little bit, to make it more dramatic and to save people's network bandwidth :-)

@archibate We will definitely showcase the n-body example if you can implement a O(N log N) tree code algorithm!

@k-ye @archibate @xumingkuan @KLozes I'm merging this in for now so that people can see the fancy gifs in time. The current README page doesn't really have anything attractive. Please feel free to continue the discussions in #740, on the demos or on the list of developers.

Back in the year 2017, @squarefk contributed a lot while Taichi was not yet a compiler. Part of his code is still being used as our compiler infrastructure. Later he changed his email address (I guess) so github lost track of his commits. I'm including his name here to show our recognitions.

The Taichi community appreciates contributions from everybody. I'm trying my best to make sure the list of developers reflects everyone's contribution, and please feel free to share your thoughts (if any) on the current contributor list, in this thread or to my mailbox (yuanmhu a t gmail.com).

I think we have made great progress since Jan 2020, and it has been a really great pleasure to work together :-) Thank you again for being part of our community!

@yuanming-hu yuanming-hu merged commit 365cad6 into taichi-dev:master Apr 17, 2020
@yuanming-hu yuanming-hu deleted the readme2 branch April 17, 2020 22:59
@k-ye
Copy link
Member

k-ye commented Apr 18, 2020

The feeling is mutual! And you should definitely write more articles like <99行代码的《冰雪奇缘》> (when you have time??) 😆

@yuanming-hu
Copy link
Member Author

Right - we should definitely write more posts online to advocate Taichi given now we are more ready :-)

I'll try to write one after v0.6. Please feel free to write your own articles/tutorials.

@archibate
Copy link
Collaborator

hhh, 冰雪奇缘, I remember I first saw this on zhihu, and immediately attracted by the effects of snow :)

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

Successfully merging this pull request may close these issues.

None yet

5 participants