Turing Machine Generative Art

From UBC Wiki

Authors: Elizabeth, Sophie, Disha

What is the problem?

We want to investigate whether Haskell can implement generative art using a randomly generated Turing Machine algorithm. We will be basing our project off of Maxime Chevalier-Boisvert's Turing Machine art project made with JavaScript and HTML/CSS (code) and attempt to integrate this project into the functional programming environment of Haskell.

We will be using Haskell libraries for random number generation and image generation.

What is the something extra?

As an extra addition, we will generate animations using the Haskell library Reanimate.

What did we learn from doing this?

We found functional programming to be effective for the Turing machine portion of this task. Because Turing machine behavior is based on the state of the machine and the current input read from the tape, it works very well in functional programming.

However, with the library we chose to use, reanimate, we encountered significant issues because of dependencies. While this may be more of an issue with Reanimate, it still shows how Haskell puts more of the package management responsibility when using external packages on the user than other languages.

In an attempt to fix the errors that Reanimate was producing due to dependencies, we also attempted to utilize the package Gloss as an alternative rendering tool.

Links to code etc

Github

Github for Gloss alternative code