2.1 KiB
Manigraph
Manigraph is a cutting-edge tool for multidimentional surface visualization, capable of handling over a hundred dimensions. It allows users to interactively explore each dimension in an intuitive and dynamic way. Import your .klein files, which represents multidimentional surface.
Building
Manigraph is written in C99, and uses OpenGL 2.0 for the rendering. So you just need a C compiler to build this project.
Source code
git clone https://gitea.axiolutions.top/software/manigraph.git
cd manigraph
git submodule update --init --recursive
Dependecies
You may need system specific dependecies to build Manigraph. Reference
Linux
x11: libXcursor-devel libXi-devel libXinerama-devel libXrandr-develwayland: libwayland-dev libxkbcommon-dev wayland-protocols
Commands
A C compiler is needed for building Manigraph. and any of those commands
make windows
./compile.bat
make linux-x11
make linux-wayland
make cocoa
make CC=emcc wasm
Flow of Manigraph
Design
Manigraph is a program designed with sustainability in mind. It is built to be portable, resource-efficient, and easy to maintain and scale. The program follows a Data-Oriented Programming (DOP) paradigm, where each file is responsible for a specific data type and manages its own dependencies. Each function is named after the file it resides in, ensuring a clear organization and structure.
The independence of data types allows for efficient scaling and maintenance. The main file is a special case in this design: it is responsible for combining all the data types in a comprehensive manner, actng as the workflow of the program.
Contributing
Before commiting use clang-format, for coding style consistency. Your
contribution must be whitin the design principles and the concept of Manigraph.
The following diagram illustrates the relationships between files, showing how they are connected through dependencies. It also highlights the scenarios where files are not independent of one another,