I don’t see myself using these tools as I know blender very well and I’ve got a workflow. Equations can be exported from LaTeXit as SVG and imported into blender for manipulation and animation. The new eevee real time renderer in 2.8 makes rendering high quality graphics really fast. Then, when appropriate, I try to recreate the concept in simple Python and animate it so the students can play with it.
During my undergrad we learned Matlab in year one and subsequent modules in core subjects like solid mechanics, fluid mechanics etc ignored anything to do with code. This was mainly because (as I learned later) the lecturers frequently couldn’t code themselves.
This was frustrating because coding is essential to engineering and efficient problem solving. Fast forward to today and I see the same problems. Students are terrified of coding. It’s complicated enough to have to learn all this new maths but also all this computer science stuff?!
So the notebooks often deal with fundamental stuff that don’t really need need code but then the code can be super simple and intuitive and hopefully inviting.
The topic is introductory fluid mechanics BTW.
In short, don’t mind a repo with half finished code :) send me a message at @grokkingStuff
Now, once you’re in blender if you import SVG art it’ll typically come in at a very small scale and each object will be separate, but it’ll also be selected. I usually scale it up shift select the first character of my equation and then ctrl j to join it.
Then it’ll just be a regular curve object in blender. You can add modifiers like solidify, bevel objects, convert to mesh etc.
There’s also a 2D/3D toggle in the curve properties.
Would you mind sharing your workflow? It might help me to have a mental model of the full process of a typical animation.
I saw in one of your other comments that you plan to put some of your other work on GitHub at some point. I'll make sure to check that out too.
There's a lot more you can do with Python scripting and addons. You can plot math functions as surfaces etc. There are probably a lot of possibilities with procedural textures and displacement maps.
I've been looking into the Python API and the animation nodes addon too, both seem pretty powerful.
The various Andrew Price videos were very helpful and once I had an idea of what feature I needed to use it made searching for tutorials easier.
For specific scientific applications, I can’t say. I’ve used various Adobe tools and CAD packages over the years for making artwork for papers and presentations as well as being inspired by animation from video games, documentaries, 3b1b etc.
One of my initial uses was rendering lambda_2 isosurfaces of turbulent structures from Direct Numerical Simulations.
I’ve used the Python API to script some topology generation for 3D printing which is great. I’ve yet to use animation nodes because for the current series I’m working on I want to give the students blend files of the animations in vanilla 2.8 should they want to explore behind the curtain.
Edit: Can someone explain to me why both the answer above this and mine were downvoted? The linked library has zero context on what 3Blue1Brown is, or even that it's a YouTube channel.
Changing the explanation on the library from
"Manim is an animation engine for explanatory math videos. It's used to create precise animations programmatically."
"Manim is an animation engine for explanatory math videos. It's used to create precise animations programmatically, as seen on <the 3Blue1Brown YouTube channel>."
would — in seven words — instantly improve this README. It would give visitors context, concrete examples, and a resource to dig in more.
If you've downvoted, please explain what drawbacks there are to that.
> Please don't comment about the voting on comments. It never does any good, and it makes boring reading.
In other news, my PR got merged into the README, so hopefully folks in the future won't have the same confusion that prompted this thread.
Downvoting exists to enhance the signal to noise ratio by discouraging response chains to comments which are not valuable to the discussion. Explaining downvotes is contrary to the purpose of downvotes.
It would be nice to be able to make it interactive, like slider bars and such. The ti Nspire had some cool apps for that.
Does that sort of animation really promote learning? How much ornamental dressing is needed to keep visual attention but not distract?
EDIT - I just watched it with sound. I suspect you didn't and misunderstood the subject matter.
Edit: yes I know this tool isn’t his secret sauce, I was being facetious. His excellent explanations are his secret sauce. I just wanted to know why he open sourced this after so long of saying it was made for his personal use and wasn’t designed for widespread use.
It's a lot harder to replicate that secret sauce, than it is to replicate some animation engine.
Math teachers are usually stuck using symbols to communicate because not many mathematicians have 3b1b's skill at animating and so can't use the high-bandwidth visual medium like he does. A blackboard can't compete with a 3b1b video; and it isn't just because he thinks clearly, it is because an animation can get more bits of information through in a short period of time and works better with a students short term memory. His custom animation tool is more important than it seems - he can explain more clearly because of a slight-of-hand where he has a much wider communication channel to get his message across.
That being said, the barrier to entry is still high. I suspect any topic he hasn't already covered is going to need specialist knowledge to extend this program.
Mathematicians have been using blackboards and symbols for thousands of years, and its never been a hindrance. While its not as good as video, its more than adequate to explain things and if you still have issues, you can use the many mathematical modeling tools that have existed for years.
Also, many of his topics require in-depth knowledge in the first place and gloss over significant portions of detail because the problems are often specialized. These details are obscured through the many drawings and it gives the viewer a false sense of understanding without actually being able to do the math.
So you're left with a largely conceptual understanding without any syntheses understanding, because, at the end of the day, you have to produce a line by line derivation in order to be considered having understanding.
Of all of the math teachers I've had, only one tried to explain things in an understandable way the 3b1b does.
Most math teachers just follow a curriculum and hope repetition drills facts into the students head. 3b1b makes the relationships between systems clear.
Did he only do it recently? It was on GitHub already when I watched his video first time.
I'm not sure why you don't trust his explanation? Polishing up personal/internal projects and making them releasable as open source can take a lot of time and effort.
1. The documentation is sorely lacking.
2. Which makes the inheritance hierarchy (which is already a little unintuitive) really hard to grok.
3. There's this weird home-rolled way of doing default property inheritance that took me a long time to wrap my head around.
In the end, I ended up coding a short interactive thing for my blog using Paper.js. It's a great idea, but could really use some love and maybe a stronger philosophy to guide development. Right now it feels more like a few hacks thrown together.
'A few hacks thrown together' seems awfully pejorative. It is a tool he has developed over the years to enable him to produce the high-quality videos he releases.
In general, you can't please all the people all the time.
GP isn't a complaint, but constructive criticism. When we lose the ability to tolerate criticism, we lose the capability of progress.
But like some of the other comments have mentioned, it's not a general purpose tool... it's more like he open-sourced his dot files.
You can certainly make a few things work, but it would be nice to see a community of interested individuals come together to flesh out the abstractions, make sure everything is documented and works as advertised. As it is now, the class hierarchy is a little... misshapen. It's not clear what classes are responsible for what functionality, and how everything fits together in a nice, orthogonal way.
Because that's what it is. It's a tool made over time by him for his videos. The only reason it's out there is because people keep asking to see the code. It was never meant to be a fully documented, easy to use public tool. It's a personal project that was shared for the sake of openness.
That being said, there aren't many tools like it out there, and I'd love to see someone take bits and piece from here, and create a proper tool from the ground up.
Although you can write your own 3D renderer inside Desmos...
Then think about what subdomain of mathematics you want to write software for. (9th grade polynomials, graphing, and algebra? Addition? Times tables?)
I'd also think about who you expect to use the software. (Just you? Teachers? Students?)
I was able to pick up that software and start making animations during a tour I got of the studio. The tools were designed to allow linking objects, paths, and animations in a very intuitive way.
See if you can find a demo of some of those weather animation user interfaces as there is probably good inspiration there.
"In the end, I ended up coding" — this is what open source does to your brain, I guess.
I think we have similar opinions about what the tool is, and what it's not. I just must have not expressed myself in a very clear way. I did spend about two days hacking on this, just to get a basic POC working. But in the end, I couldn't figure out how to put right angle markers on my vectors. I also submitted an issue about vectors getting smaller when the norm was less than 1.
I'm just saying, the title makes it seem like it's a general purpose tool, but it's not.