Manim – an animation engine for explanatory math videos
3b1b.github.io
3b1b.github.io
According to the original Manim's readme, it's recommended to use the Community Edition, since it's updated more often.
Show HN: I made a parser visualizer using manim - https://news.ycombinator.com/item?id=26382729 - March 2021 (15 comments)
A Manim Code Template - https://news.ycombinator.com/item?id=24985609 - Nov 2020 (1 comment)
Manim: Animation engine for explanatory math videos - https://news.ycombinator.com/item?id=24926947 - Oct 2020 (19 comments)
Manim – 3Blue1Brown's animation engine for explanatory math videos - https://news.ycombinator.com/item?id=19716019 - April 2019 (80 comments)
This one is a dupe because Oct 2020 was less than a year ago (https://news.ycombinator.com/newsfaq.html) but I think we can leave it up.
https://computationalthinking.mit.edu/Fall20/lecture26/
I believe he was going to do some of the visualizations
[-1] https://docs.julialang.org/en/v1/devdocs/offset-arrays/
If you select the option "c) 2 ≤ i ≤ 12", then Dijkstra's subsequent argument for zero-indexing becomes an argument for one-indexing, because a sequence of length N yields the range 1 <= i <= N when subscripting with 1, but 0 <= i <= N-1 when starting at 0. The latter is uglier than the former.
At the end of the day, like all language design decisions involving an arbitrary choice among reasonable options, you get used to it once you use the language enough (and also some folks will refuse to ever use the language because of it for aesthetic reasons).
I've used many languages, and I don't have much problem with any quirks or major differences (Haskell, JavaScript, ...). The only language I've bounced off of is Prolog, and I'm planning another attempt.
But I've done a lot of low level programming, and 0-based arrays are a no-brainer to deal with. Switching to 1-based arrays throws out all of my intuitions and makes me have to recalculate everything, which is error-prone.
When you're in the supermarket and you're counting how many items are in your shopping cart, do you start from 0?
If you are counting, 1-based makes a lot of sense. If you're indexing, they're equally valid approaches. However, if you're indexing then you should be able to use an arbitrary range and not be restricted to one or the other (with a mapping function from your actual range to the language's base).
Yes, because the cart starts empty. But, more to the point, I don't call the thing I put into the cart that causes it not to be empty the zeroth item.
Or, at least, that was the case when I did maths there. No idea what the default interpretation is these days.
This is mostly why I don't say "natural numbers" and instead say "positive integers" or "non-negative integers", depending on if I want 0 included or not.
Honestly, not that many people in math think about the construction of the natural numbers frequently. Yeah, we learn about it of course, but that's about it. Very often the natural numbers do not include 0. Often they do. I've seen $\mathbb Z_{\geq0}$ and $\mathbb Z_+$ used to avoid having to worry about it.
Hell, different countries can't even agree on whether 0 is positive. In France, 0 is considered both positive and negative. In USA, 0 is considered neither.
(quick edit: I realize my last paragraph makes the $\mathbb Z_+$ option seem weird. I do math in the States.)
It's also about the only thing I really don't like about Julia – so I can understand someone saying 1-indexing is a deal-breaker.
I'd bet this is true. It doesn't seem fiddly to me as a mathematician. Thinking habits can be really hard to get past though, so I also understand people not liking 1-based. I just think the argument from math is wrong.
I got used to switching between 0/1-indexing. The only place it actually hurts is when using modulo to remain within some range. And this is needed much much less in Julia than in C and C-like.
(Say, "panim" name might be a gimmick?)
--- [0] - https://github.com/NISH1001/panim
[1] https://github.com/sleuth-io/code-video-generator [2] https://youtu.be/e21hJnB9J5k?t=44 [3] https://obsproject.com/
This allows you to e.g. get the current time (get_time) and pause playback (pause). So you just have to write a small script that issues the commands the way you want and you'll be good.
I did exactly what you want using a small reveal.js plugin that parses the list of partial files generated by manim and inserts the corresponding video files into the presentation in thst order, it worked quite well. Let me know if you're interested and I'll throw it up on a GitHub gist.
Or you could pause the video manually; in Keynote, press K to play/pause.
Some of their older documentation (now less relevant) is available on Internet Archive: https://web.archive.org/web/20200122124703/https://manim-tb-...
מנים
In any case, if they were fighting mathematicians, it would be pretty awesome.
Examples in a presentation: http://acko.net/files/gltalks/pixelfactory/online.html#35
Some documentation: https://github.com/unconed/mathbox/blob/master/docs/intro.md
"Establishing new languages is a powerful strategy for control-ling complexity in engineering design; we can often enhance ourability to deal with a complex problem by adopting a new lan-guage that enables us to describe (and hence to think about)the problem in a different way, using primitives, means of com-bination, and means of abstraction that are particularly wellsuited to the problem at hand." -- Harold Abelson
Suggestions welcome.
Really enjoy these kinds of tools. Though I wish you didn't need an account to preview or upload content to manim.
As for interactive content, you'd probably be better off using something else that was created with a focus on realtime performance and portability. You