• Login
  • Register

Work for a Member company and need a Member Portal account? Register here with your company email address.

Project

Silverspot: exploring parameter space with sketches

Jessica Stringham 

With computation, it's easy to create systems that have a vast number of variations, but it's sometimes difficult to explore those systems. I built a suite of tools I call Silverspot to navigate the possibilities for both a broad view and refinement.

Silverspot

Infinite Scroll

The first view is an infinite scroll page through the parameter space. Inspired by  Max Bittker's river, this view one chooses a spot in latent space and jiggles around that spot to choose neighbors, then jumps to a new area. The result is an infinite scroll of variations that gives me a good idea of the variety of things the system can create.

Hex grid

After choosing a variation to start with, the hex grid presents variations. The variation you choose is placed in the center. You can adjust how different the variations are by "zooming" in and out with your scroll wheel.

Locking Parameter Groups

When working through a real-life sketch, I realized I worked by iterating on groups of parameters related to a visible attribute. Inspired by things like this color palette generator, I added a way to create these groups of parameters that you can "lock" to a selected variation while randomizing the other parameters.

This sketch was based on an assignment for Zach Lieberman's Recreating the Past class in which I tried to recreate Homage to Duchamp (Nude Ascending Staircase) by Lillian F. Schwartz And Robert  J. Tatem.

Copyright

Jessica Stringham

And some examples from the system discovered through the thumbnails.

Embeddings

Once we have a vector representation of something, we can try to find more useful embeddings of that vector. For example, maybe it can collapse down areas that are not interesting and space out areas that are different. I trained a neural network to map the vector to a 3D space based on some visual features of the outputs.  As you scroll through the infinite scroll page, new points appear that represent the variations you've seen.  You can also hover over the region of the points to see which variations are clustered nearby. 
In this example, you can also swap the tiles used, and see how these small changes to the piece affect its position in latent space.

Generalizing

Silverspot can work as long as you can take a vector of numbers between 0 and 1 and turn it into a graphic pretty quickly. It runs locally in the browser, so if you can create the graphic in the browser you can do that too.

Similar to Sketching Data Types, I made a Rust tool MurreletGen, a way to represent Rust data types as a vector. What's cool is that it can create a randomizer for all sorts of things, like grammar or mathematical expressions. Stay tuned!

If you are curious about the random association that resulted in the name Silverspot, the original system I worked with generated little trees, and "a field" would be a natural place to search through a lot of little trees, and a memorable field I've visited recently was the Nestucca Bay National Wildlife Refuge on the Oregon Coast, where they were releasing threatened Oregon silverspot butterfly.

Research Topics
#machine learning