Probably Art

Making Art with Probability Distributions

After my first experience with writing software in the summer of 2013, I wanted to learn how to write software that was usable by other people1.

I thought that learning how graphical user interfaces work would be a good place to start. Since I already knew Matlab, I chose that for my programming language.

I performed the project under the direction of use of Dr. Yusuf Bilgic, who generally gave me free rein to pursue the project in any direction. I used the “excuse” of visualizing probability distributions as a means to an end to write a software that allowed me to generate “random artwork” (that is, generated procedurally using pseudo-random numbers).

Tiling has a neat effect.

Tiling has a neat effect.

In a way, this _is_ visualizing (snapshot of) a high dimensional probability distribution, and I made sure to build explicit demonstrations thereof during my directed study. I developed a Graphical User Interface (GUI) using [Matlab's built-in tools](https://www.mathworks.com/help/matlab/creating_guis/about-the-simple-guide-gui-example.html)^[Although it now appears they have an [App Designer](https://www.mathworks.com/discovery/matlab-gui.html) that drastically streamlines the process. I wrote my application using their GUIDE framework, and it does look like there are migration options to the new App Designer.], which incorporated several styles of artwork. This project evolved into a library that I wrote in Python and now use to generate artwork for my [other website](https://www.mathematicalmichael.com). Many more styles of artwork have been developed since the initial application was written, but for posterity's sake, you can find images of the original application below. I [presented this work](/talk/upstat14-art) only once.
I did attempt to hand-make some of the pieces I generated on the computer, but found it took a lot of time. Here are the only two surviving images I can find of these early works, which were unfortunately lost in a tragic incident.
Hand-tracing against a computer screen. Only did this once.

Hand-tracing against a computer screen. Only did this once.

Using a utility knife to cut out uniformly-sized vectors. I liked the way this caught the light and cast shadows.

Using a utility knife to cut out uniformly-sized vectors. I liked the way this caught the light and cast shadows.

This project evolved into Random | Not Random, which is hosted on my other website. In short, I re-wrote the program (sans GUI) in Python, expanded the types of artwork it could generate, and used it to create content for my website.

I also used some of this project as inspiration for one of the stations at the Math || Art event that I organized in spring 2017.


  1. This would become a common theme in my post-baccalaureate education, as I would come to realize when writing this summary. ^
Avatar
Michael Pilosov
(applied) math nerd on a mission.

Talks

This talk was the result of a directed study in which I first began to explore procedurally generated art as a means of …
see all
Next
Previous