Graphica is a mathematics engine, which is inspired by manim. It is purely an engine for achieving the visualisation of mathematical problems and to achieve a simple interface to conduct mathematical calculations In a fast, modular and secure manner.
Graphica is a manim alternative with more extended functionality. It is designed for everyone, from programmers who need an efficient way to crunch matrices with support for concurrent calculations, to scientists who need to compute fractals, run simulations, etc. to Highschool students such as myself, who need a fancy way to look at our 3-dimensional graphs (which was how I actually got this Idea).
The implementation actually takes inspiration from Roblox and its take on user-creatable games with lua. Graphica operates almost as if it’s a game engine, with there being a well defined api to interact with. There is a large amount of abstraction (if you need it) such that you, the math-nerd-programmer-abomination, has it easy to visualise or crunch math. Which is not a luxury enjoyed by manim users such as myself, who have been using it more as a traditional python library than a mathematics engine.
Python is still considered to be the most sane choice for scientific programming / computing because of its simple syntax and easy learning curve which is very much a joy to work with, and it usually serves well. However, Rust is actively proving itself to be better for such complex calculations because now you have low-level speed, but with none of the memory safety hassles you would have with C or C++, and it honestly makes python a little bit redundant. Rust has got great support for scientific computing with many crates out there catering to your linear-algebra or differential equations needs, and it’s honestly a shame that it has not been adopted for scientific computing whereas something like julia has.
The culprit is obviously its syntax, which, Graphica aims to solve by using a layer for lua / fennel bindings to all of graphica’s functions. But, you can still use Graphica without it, maybe for your custom fancy calculator for which you have an interface for.
Most of graphica’s design and implementation is inspired by manim, but it differs in a lot of aspects.
Generally the project follows these motos:
Stuff’s gotta go fast, we take Advantage of Concurrency to achieve faster computations.
Graphica should be able to be used in any scenario involving scientific calculations. The User has all liberty to how much they would like to use of graphica.
3. Make smooth, robust animations using wgpu with Vulkan (Sorry OpenGL)
This is a purely hobbyist project which is by no means meant to be used for serious work in any form, this is not even alpha stage software at its best. And work can truly only be expected to start from my side in a year or two. Hence why the repository is empty until I am comfortable that it’s stable.