Skip to content

Avondsch/graphica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

Proof of Concept, Work will start soon!

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.

Why?

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.

Design Philosophy

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:

1. Speed and Efficiency is key

Stuff’s gotta go fast, we take Advantage of Concurrency to achieve faster computations.

2. Modularity is of the highest importance

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)

4. Integration with Lua and to make the writing experience far superior to that of manim (Optional)

Warning!

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.

About

A very WIP mathematics engine, written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published