‘10,000 Bowls of Oatmeal Problem’ is when a generator fails to produce visually unique outputs to a human eye, even if each output is unique in its computation. It draws its metaphors from bowls of oatmeals, as looking at 10,000 different versions of oatmeals does not intrigue the viewer to look at the granular details of each bowl of oatmeal.

I think this scenario can become a problem when you know that each output needs to be distinct from every other output. For example, if a generator produces game characters in a multiplayer game, each one has to be perceptually different from each other. Without the difference, players will become confused and frustrated, perhaps killing a player on the team by accident.

On the other hand, this problem can actually benefit scenarios when you want an output that changes over time. Procedural landscapes are a good example. When watching a procedurally generated landscape in continuum, you don’t want the user to be startled by starkly different images produced every 2 seconds. Instead, you want enough similarities between each image to maintain the identity of the place you produce.

Artistically, this problem can be solved by identifying the exact attribute you want to be different in each output. After narrowing down your goal, then you can go into the codebase to tweak the problem at hand technically.



Project link

This map preserves the past and the present. By generating seeds of fire before their eruption in a never-ending forest, the map reflects how memories overlap and intertwine to create new versions of ‘places’ in our head.

Technical Process:

From the start, I knew that I wanted to create a level of depth in my map through overlay of elements. After scouring through some videos online, I decided to manipulate and repeat variations of recursive circles. By randomizing the distribution, color, size and other elements, I was able to convey a sense of dreamy haze that come with remembering an event and the place.




This is a terrain generator which generates random terrains with different levels of heights. It also generates two types of trees of various sizes with random positions on the terrain.


I was inspired by this dynamic webgl example and decided to create a static version. I first created the terrain using PlaneBufferGeometry and displace the vertices of the plane randomly when generating different results.

Then I used the positions of the vertices of the plane to place the trees onto the terrain. I decided to use a set number of trees but tweak the sizes and dimensions of the results. Each type of trees has its own set of positions and is regenerated when space bar is pressed.





Cirlrea is a uniquely shaped world where important landmarks are marked by filled in circles and the surrounding circles represent the elevation. Unlike Earth, Cirlrea was once a planet covered in moss-green water. The landmarks are all manmade and they house what is thought to be the last pockets of humanity. 

Initially, I wanted to create a map that could mimic the look of train maps typically seen in brochures and underground train stations. However, I quickly realized I had to add a lot of constraints so the look of the train lines would be aesthetically pleasing. The final product was inspired by contour maps. I liked the look of rings around a filled center and while I tried with other shapes, I ended up liking the look of circles the best. I didn’t want the map to represent earth, but I did want the overlapping contours to create the feeling of land masses. I used a nested for loop to determine how many circles I wanted and another to determine how many rings would be around the respective circle. The rest was just choosing colors and numbers to increase the diversity of circles. 



Generative Map


I tried to represent an abstraction of motion and forces as the territory of my map. I wanted to explore how motion and forces could be depicted through the overlapping and overlaying of circles. I found that overlaying and creating circles within circles could generate a ripple effect, seen in how earthquake magnitudes are represented on maps and diagrams. My focus was on generating ripples, where ripples could be generated in a way that will still read as a map of motion and.

Technical Process:

One of my inspirations for creating the large circular discs were earthquake maps, where multiple circles are used as ripples to simulate the earthquake magnitude. Using circles, I created a map where the overlaying of vibrant circles creates an abstract sense of motion through ripples, along with a sense of sound due to the composition of the ripples.



Compton gives good advice to making generators: specific and concrete “artifacts”. Get expertise from someone who makes or knows those artifacts to form a list of characteristics to generate. Create a structure of rules that govern the limits of the generator’s variability and creation guidelines. The usage of Perlin noise and other randomness can be used to introduce parametric change with user input.

It is hard to answer Compton’s question of how to “debug” a generator which isn’t producing the creatures as predicted . To me, it requires technical knowledge of coding and a well made architecture so that it is easy to locate sources of variation in the generator. However, perceptual uniqueness is even harder to identify. This isn’t computer defined and is purely determined by the artist eyeballing the work to see if a human can feel interested in the different productions. For me, a periodic break so I can come back and look at the generated work with a fresh set of eyes helps me determine the perceptual differences in the artifacts produced.





About the Territory

People living and traveling across the outer space might not just a fictional story. If traveling to space becomes just as easy and fast as traveling to another country around the Earth now, what would the map of the universe look like? There would be more things to keep track of to locate oneself, potentially much more than our current 3 dimensional location and time.

Technical Process

From selecting colors, location, and shapes to selecting names for each planets, I used randomization to almost every element in this project. I had three different for loops generating planets of different sizes to create well-spread depth of 3 dimensional space, yet one thing I wish I could do was creating the planets closer to the window(i.e. bigger) to be 3D, not flat like in the current state of the project. Perhaps the mixture of 2D and 3D looking planets could have contribute more to creating an experience of looking at an unknown, abnormal map of an unfamiliar space. In terms of time dimension, I came up with a fake time counting system All Universe Time (AUT) and randomized a number, as well as the +/- symbol, to mimic our current time counting system(GMT+/-, UTF+/-,etc.).


Generator Gif

Generator Screen shots



Territory description

This is a nebula generator.  It generates a random number for the nebula name and the celestial bodies populating it: planets in the foreground, stars in the background.

Creation Process

To make this generator I looked through the p5.js documentation pretty carefully.

First I made the background of stars:

then I added some random colors for the stars:

then I added the planets as ellipses and the rings

then I added the color randomization  for the planets, and converted them to spheres.

finally, I added the randomization of the rotation, converted the ellipses to spheres, and added the text.



Map to Happy Time with Friends Again :~)

gif of generated maps

It’s better to have loved and lost than never to have loved at all—isn’t it better to have searched for paradise and failed than never to have searched at all? I miss my friends & their friends & having fun with all of them :~(

The destination is placed randomly and the rocks and bushes and trees and whatnot are generated around it with bezier curves. The path then curves from some random direction at the edge of the map to where all of your friends are, with some variability along the way so you can enjoy your journey <3. The land’s features are vague enough to correspond to some actual place, if you look hard enough ;~)


~Sweet Corn