Chaotic Mario was a project I completed for the Chaotic Dynamics class at CU Boulder. This project explored using Chaotic Variations, a mathematical technique for creating variations of a symbol sequence, as a method for procedural content generation in games.
This technique exploits the nature of chaotic attractors in dynamical systems, where trajectories move around the attractor without repeating their path, and trajectories are extremely sensitive to initial conditions. This means that two trajectories with different initial conditions will end up near each other at some points around the attractor, but other times will be in completely different parts of the attractor. To create variations of a symbol sequence, symbols are first placed along a trajectory around the attractor. Next, a new trajectory with a different initial condition is generated. Each time that trajectory gets close to one of the symbols on the attractor, that symbol is added to the new sequence. This results in a new symbol sequence which can be very similar, or very different to the original sequence.
An example trajectory around the Lorenz attractor can be seen below.

I applied this technique to World 1-1 from Super Mario Bros to try and create similar levels which are different enough to feel like a new experience for players. To do this, I converted the level into a symbol sequence, where each column of tiles was represented by one symbol. I then generated two new levels and implemented them in Super Mario Bros.
Below is a chart showing the tile layout of the original level and the variants which were created.

Overall, this technique ended up being very successful. It was able to create new levels with obstacles very different from the original level (Like the trap shown in the picture below!), but also maintain a similarity to the original level. Players rated the experience similarly to the original level, showing a similar level of engagement in the game. The technique is limited in applications though. It doesn’t scale well to more than one dimension, so it can only be used on content which can be represented as a one dimensional symbol sequence.
If you’d like to learn more about this project, feel free to read the full paper below.
