Software rasterization, N-Body simulation and Game of Life in Rust + Haskell
This project contains a number of experiments in the simulation / graphics category. I frequently write Haskell projects where I delegate the performance critical, numerical code to C/C++ or offload it to the GPU. I wanted to try using Rust as a safer and more functional alternative. The application itself is written in Haskell, doing the display, user interaction and non-inner-loop parts with the actual computations done in a Rust library.
Experiments include...
If you want to read actual algorithm descriptions and references for these experiments, including more, higher quality images visit the following link to my website
Rust projects on Blitzcode.net
The Haskell application itself might also be of interests. It features a pluggable experiment framework, modern OpenGL 3/4.x style rendering, text, quad rendering, screenshots, framebuffer system, FPS counter, GLSL, logging etc. A good starting point for your own Haskell + OpenGL adventures. Also see my other Haskell and GLSL program containing my distance field / ray marching related experiments.
This project uses the Stack / Cabal tools (stack build
) for building the Haskell code and Cargo (cargo build --release
) for building the Rust code. There's a top-level Makefile invoking both, simply do
make
once you have Stack and Cargo / Rust installed.
This program is published under the MIT License.
Developed by Tim C. Schroeder, visit my website to learn more.