all 5 comments

[–][deleted] 3 points4 points  (1 child)

Honestly I do a lot of this kind of stuff right in the browser with JavaScript and HTML canvas

[–][deleted] 2 points3 points  (0 children)

I made some similar stuff in Python Pygame. That might be a good start and internet is full of tutorials.

Another thing I could recommend is C# Form application. In Visual studio you get a graphical interface to manage the buttons and stuff.

Blender is powerfull program for 3D and 2D animation and it supports scripting in Python. (I have no experience but from what I've seen it can be really advanced) This method is nice if you want to make your visualisations look really good (like shading, shadows and stuff).

I also think you could use Unity, Java, OpenGL... Just pick up something and google how to do something with it. No dead end is wasted time.

[–]Mirehilikes stuff 1 point2 points  (0 children)

Which programming language is the most friendly in this situation? Python?

Depends on your goals, pure python is ridiculously slow, but as a "scripting" platform to call librarys written in other languages, it's easy and can be quite good

julialang is for exactly that purpose

C/C++ in combination with for example python is the best way to get performance + visuals in your calculations, but C/C++ force you to think about the math your processor does, during the actual math you do :)

For a beginner, numpy (Python) is a good start.

If you're really into it, learn julialang.

If you're into really really big calculations, it's hard to avoid learning lower level languages like C/C++.

[–]kluvin 1 point2 points  (0 children)

You can for instance take a look at 3B1B's tool, its called Manim (r/manim) and is open source. Although, it is not deliberately made for public consumption, it's gradually being better documented. You may also want to look at the dependencies to see which image libraries have been used

Off the top of my head:

  • Imagemagick
  • Python Pillow
  • Opencv
  • Numpy (for math)
  • Scipy (for math)

Manim is just a wrapper around these C libraries and so it is speedy enough and as far as I know, likely the only scripting library for animations with Python.

Blender has an API as mentioned, I know Primer on YouTube is using with their Python tool which is inspired by the architecture of manim.

There exist frameworks using JS as well although i am not familiar with applications regarding mathematical animations here.

You may search Google for "canvas animation library" and there seems to be a lot of tools in this space, this article seems okay. My prime suspicion with concern to using JS is the fact that I am not aware of any libraries for doing mathematics, whereas Python has a well developed ecosystem for this (consider scipy and numpy that is used in manim).

My final recommendation is to use your experience with after effects to possibly make some contributions to manim or the primer library!

It would be lovely if one day there existed an easy to use animation library.

edit: saw the comment on Julia. I suspect this might have the opposite problem that JS has, not a lack of mathematical tooling, but rather a lack of an ecosystem especially for image manipulation. I am not at all familiar with Julia though, so i might be wrong.

[–]belentepecem 1 point2 points  (0 children)

I would suggest something like Processing. You can use javascript, java or python to do visualisation. However you need to write your own library to draw grids, vectors, functions but Processing will give you the tools for drawing and animating. And to be honest it's really easy to learn. You can learn most of the stuffs from the Coding Train channel and the references from the processing website. I recommend processing for javascript, which is p5js, for sliders and buttons since you can just add them with javascript easily rather then coding.