Spaghetti Bones is a celebration of my adaptation and exploration of the differential growth technique. The idea is simple. You start with a string of nodes connected to one another to form a shape. Each node feels 3 forces:
As you add more nodes into the shape, these 3 rules cause the shape to curve into itself, growing into a complex form of layered undulating lines. The goal is to create a shape that fills as much space as possible while maintaining a rigid form and avoiding overlapping itself. By focusing specifically on where and when you add more nodes, and how you interpret those nodes into a shape, there is much variety to be found in this simple algorithm.
Since I first learned about this technique, and wrote my own version based off these rules, I have been continuing to iterate, evolve, and optimize my code. It's an algorithm I always find myself coming back to, and has become my most researched topic and longest running experiment. I love its use of real life physics, and I find its outputs aesthetically pleasing on a deeper, almost instinctual level.
Each output of 'Spaghetti Bones' starts with a simple shape as a seed for the differential growth algorithm. Throughout the rendering process, the shape is fed more nodes, and grows until it cannot find any empty space to fill. As it grows, a form is interpreted from the nodes of the growth and drawn onto the screen, creating a snapshot of the growth at that particular moment. There are many rules that govern how the shape grows, and how its form is interpreted, and these rules often evolve throughout the rendering process. When the render is complete, the resulting image is a full catalog of the history of the shape's life.
The name of this project was created by Nicole, my girlfriend and an art wizard. Early on in the development of this project, I asked her to name an output I was sharing, and she chose to call it ‘Spaghetti Bones’ because that’s what it looked like. Since then, the name has stuck with me. I decided to keep the name for the final project in order to highlight the playfulness of each output, to encourage imagination when viewing this abstract art, and to thank Nicole for being tremendously supportive and helpful throughout my exploration of the art world.
Library
p5@1.0.0
Display Notes
This artwork is best viewed live in Chrome, at the highest resolution possible. While an output renders, the ‘Speed’ and ‘fps’ is written on the windows tab. ‘Speed’ shows the current speed setting, while ‘fps’ shows the current average framerate. By default, Speed will automatically adjust to keep the render running as fast as possible, while maintaining a reasonable framerate. This project is resource intensive, and may run slow on phones and older devices. When the render is complete, the tab will read 'Spaghetti Bones'
Pressing any number key between 1 and 9 will force the project to run at that speed (1 being the slowest, and 9 being the fastest). Pressing ‘a’ returns the speed control back to the computer to automatically adjust itself. Note that running the project on higher speed settings may actually result in slower rendering times if the framerate cannot keep up.
To see the differential growth in its pure form, press 'o', once to view it on top of the render, twice to view it on its own, and a third time to hide it.
Creative Credits
Nicole Downing for helping me create the 'Coral Reef' and 'Mossy Bog' palettes and the title of the project, and for many hours spent reviewing outputs with me and sharing critiques. Daniel Shiffman for teaching me how to create a quadtree (on his website https://thecodingtrain.com/). Piter Pasma for his pseudo random generator.
Charitable Giving
10% of primary sales will be donated Oceana and Ocean Conservancy.
Artist Website
https://joshua-bagley.com/spaghetti-bones/
Project ID
0x99a9b7c1116f9ceeb1652de04d5969cce509b069-456
License
0
Items
0
Owners
--
Total Volume
--
Floor Price
--
Listed
- Items
Last checked: 0s ago
Loading Assets...