Math Inspector: A Visual Programming Environment for Scientific Computing
mathinspector.com
mathinspector.com
Feel free to ask me any questions or request new features.
Everything is still very much in active development and it would be amazing if anyone is interested in contributing the source code[1]. I just took a few days of rest and am gearing up to begin posting a bunch of math education video's on my youtube channel using all the new features which I built just for that purpose. I will be adding new features as I need them during the video creation process. Most importantly, coming soon there is going to be a feature to export animations to mp4.
I looked into implementing visual programming for my work a few years back but figured it'd be an unrealistic amount of work given the state of visual programming libraries in Python (I'd looked at PyFlow back then but it wasn't quite mature enough). I'm definitely interested in contributing. I have experience in both numpy and pygame and I do scientific computing for a living.
Since you accept feature requests, one tool I've been looking for is something to implement and visualize partial differential equation systems easily. It's basically impossible to program cleanly in Python. There are systems built from dozens of equations that each are expressed by something like 200 characters per line of code that look something like:
x1 ** 3.4 + (PA / P**(3x2 + z0)) * V**t - y + (z + (7 - De/4) * 5) * DVe - ...
It's basically unreadable, un-debuggable, it's a pain to implement, a pain to iterate over and good luck to whoever comes after to try and understand what it does. And you might try to use the Object-Oriented paradigm to make it more modular and understandable with verbose functions and variables but in the end it still doesn't work. Matlab's got it working somewhat with simulink & Cie but who wants to use matlab these days. Your work already goes a long way with regards to this problem but what would bring it over the top for me would be the ability to render a block system into a latex equation so I can compare my implementation directly with the paper it came from. The second would be to have aliases for functions, some sort of metadata, so that functions can have verbose names and their associated mathematical symbol (velocity -> v).I'd really like to support LaTeX in multiple ways throughout the app, and have plans to build a feature to automate the animation of equations. There is also another planned feature to try and create an integration with sympy[1], and it's likely there will be some overlap between the sympy and latex stuff. I don't think there is a good way to automate exporting functions to LaTeX, even using sympy, because its not 1-1 (not sure though).
I think having the kind of visual environment math inspector offers has a lot of potential when it comes to computational PDE's. At some point I want to draw the Lorenz attractor, which is something that probably won't work very nicely with the current plotting system in the app. It would also be amazing to do fluid dynamics simulations, but that is a really huge job for sure.
The documentation integration is nice.
Great work!
At the end of wrapping up the beta version, I was using math inspector to create math inspector, this is how I wrote the TextParser[1] class, and there is a certain beauty to the way the files were synchronized, but since everything was still in development I finished up by running a test file from the command line instead, and have not had a chance to keep working on that aspect.
I think the more the app gets dog-fooded in this way, the more clear it will become what the optimal UI/UX is. Math Inspector is not an IDE, but it does create an additional visual layer that is kind of helpful during development, especially for quickly testing/iterating any changes
[1] https://github.com/MathInspector/MathInspector/blob/master/m...
The systems that I've seen handle large-scale titles usually had a mechanism to define a "function"/"inner-block" with inputs/outputs and visually show values at the "edges".
I haven't seen a system handle refactoring/large scale changes but I saw some pretty impressive things put together by our art/animation/design part of the studio in it.
I hope the rebrand and rewrite fix those issues because it seems awesome