AB5D

Spaghetti Bones

Joshua Bagley · Project 456 · Curated

Edition size: 600 · First mint: 10 June 2023

Spaghetti Bones #503 by Joshua Bagley, from the AB5D collection
Spaghetti Bones #503 by Joshua Bagley. Copyright: CC BY-NC 4.0. From the AB5D collection.

The work and its context

Spaghetti Bones is project 456 on the Art Blocks V2 core contract 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, published under the canonical slug spaghetti-bones-by-joshua-bagley and credited to Joshua Bagley. The indexed project record reports a completed edition of 600 of 600 invocations, runtime p5@1.0.0, and the official description: 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: - A repulsion force from all other nodes - An attraction force towards its immediate neighbors - An attraction force towards the midpoint between its neighbors 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. 12

Those figures are current index observations retrieved on 2026-09-19, not a reconstruction of the original public sale announcement. Atlas position is a catalogue ordinal and is not the on-chain project ID. The live collection page and the Hasura projects_metadata row agree on title, slug, contract, and project ID after a filtered query that used the exact slug. 12

Contract 0x99a9b7c1116f9ceeb1652de04d5969cce509b069. Aspect ratio indexed as 1.75. Website https://joshua-bagley.com/spaghetti-bones/.

This essay treats the stored artist program, four independently identified outputs, and a freshly checked AB5D holding (or an explicit collection gap) as primary evidence. Metadata traits are cited only when they were returned for the same V2 contract token IDs that were visually inspected. They do not replace looking at the pictures. 34

Conception and development

The official project description is the development account used here. Interview or dossier sentences that name a different slug are not treated as statements about this series. 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: - A repulsion force from all other nodes - An attraction force towards its immediate neighbors - An attraction force towards the midpoint between its neighbors As you add

The development account used here is the specific source named in the citations, not a paraphrase of an artist-dossier page. Where that account is an official project description written in the artist's voice, that limit is stated rather than upgraded into an unpublished studio diary. Where an interview exists, the sentences that actually name Spaghetti Bones are the ones relied on. 51

Secondary pages that only repeat the marketplace listing are not treated as independent conception sources. 25

How the work was constructed

The complete artist program for slug spaghetti-bones-by-joshua-bagley was retrieved from projects_metadata.script filtered by that exact slug. The UTF-8 payload is 14610 bytes with SHA-256 ab1eb409e80caa5d39f38ade6ef85f43e95bf1c41e985ee4d00d0d3202950c10. Runtime on the project record is p5@1.0.0. The script was read in full; it was not executed in this research session. 6

The stored generator is 14610 bytes, SHA-256 ab1eb409e80caa5d39f38ade6ef85f43e95bf1c41e985ee4d00d0d3202950c10, runtime p5@1.0.0. Detected source markers: setup, draw, createCanvas, keyPressed, tokenData, hash, colorMode. Named functions include arnd, draw, ext, exts, extsnc, fft, keyPressed, pft, pr, reduce. tokenData.hash is read in source. Output then follows the drawing path those functions implement. Token 0 observation: Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 66,48,31). File size 4972437 bytes. Indexed features: Depth True; Pocked False; Palette Primary; Sketched True; Obstacles False; Deep Ocean False; Size Range Anything; Containment Suggested

Visual claims come from inspected media-proxy PNGs plus indexed token features.

Seed handling is visible in the retrieved program: tokenData.hash is read in source. Time and interaction behaviour in code is: Loop behaviour inferred only from source keywords. The inspected PNG is a static frame. A handler found in source is not the same thing as a control that was pressed in a live renderer during this session; tested controls are listed only when an actual key or pointer action was performed. 67

External dependencies are those declared by script_type_and_version plus any library identifiers inside the file. Public visibility of the stored script does not grant a right to redistribute the raw artist source in this package, so the analysis cites functions and byte length rather than reprinting the program. 68

The mint

Indexed chronology for project 456 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069 is as follows. First token minted_at is 2023-06-10T02:34:23+00:00. activated_at is 2023-07-27T17:33:47+00:00. start_datetime is 2023-08-02T17:00:00+00:00. completed_at is 2023-08-02T22:04:47+00:00. Invocations stand at 600 of a maximum 600, with complete=true on the retrieved row. 23

Calculated intervals from those timestamps: first mint to activation is 47.62 days; activation to start_datetime is 5.98 days; start_datetime to completion is 5.08 hours; first mint to completion is 53.81 days. These are differences of indexed clock fields, not a claim about when a web storefront button became visible to every collector. A first mint that precedes start_datetime is treated as an early or reserved mint unless a separate allocation record is produced. 23

Indexed clocks: first 2023-06-10T02:34:23+00:00, activated 2023-07-27T17:33:47+00:00, start 2023-08-02T17:00:00+00:00, completed 2023-08-02T22:04:47+00:00. Early first-mint timestamps are not labelled reserved without a separate allocation record.

Historic per-token ETH prices for the original public sale were not recovered from a primary price table during this session and remain unresolved. Any floor price visible on a marketplace page in 2026 is a current listing observation, not the 2021 ask. 12

The project record stores the artwork licence label 'CC BY-NC 4.0'. That string includes an explicit 4.0 version and is treated as Creative Commons version 4.0. Code rights for the artist program are not separately labelled on the same field; they are treated as unknown rather than assumed identical to the artwork deed. 28

Artwork label copied exactly as 'CC BY-NC 4.0'.

Third-party runtime p5@1.0.0 is a separate rights object from both the artwork outputs and the artist source. p5.js, three.js, and ordinary browser JavaScript each keep their own licence texts. This package does not redistribute those libraries. 68

Original essay prose in this package is dedicated CC0-1.0 by the research operator. That dedication does not change the artwork, code, or dependency licences.

Close reading of examples

Spaghetti Bones #0 by Joshua Bagley
Spaghetti Bones #0 by Joshua Bagley. Open artwork

Spaghetti Bones #0 is token 456000000 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-06-10T02:34:23+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 66,48,31). File size 4972437 bytes. Indexed features: Depth True; Pocked False; Palette Primary; Sketched True; Obstacles False; Deep Ocean False; Size Range Anything; Containment Suggested Indexed features returned for this V2 token: Depth True; Pocked False; Palette Primary; Sketched True; Obstacles False; Deep Ocean False; Size Range Anything; Containment Suggested. 394

Spaghetti Bones #1 by Joshua Bagley
Spaghetti Bones #1 by Joshua Bagley. Open artwork

Spaghetti Bones #1 is token 456000001 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-02T17:14:59+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 59,79,42). File size 5812727 bytes. Indexed features: Depth True; Pocked False; Palette Iridescent; Sketched False; Obstacles False; Deep Ocean False; Size Range Anything; Containment Suggested Indexed features returned for this V2 token: Depth True; Pocked False; Palette Iridescent; Sketched False; Obstacles False; Deep Ocean False; Size Range Anything; Containment Suggested. 394

Spaghetti Bones #10 by Joshua Bagley
Spaghetti Bones #10 by Joshua Bagley. Open artwork

Spaghetti Bones #10 is token 456000010 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-02T17:30:23+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 23,18,15). File size 2098755 bytes. Indexed features: Depth True; Pocked False; Palette Mossy Bog; Sketched True; Obstacles False; Deep Ocean False; Size Range Anything; Containment Enforced Indexed features returned for this V2 token: Depth True; Pocked False; Palette Mossy Bog; Sketched True; Obstacles False; Deep Ocean False; Size Range Anything; Containment Enforced. 394

Spaghetti Bones #20 by Joshua Bagley
Spaghetti Bones #20 by Joshua Bagley. Open artwork

Spaghetti Bones #20 is token 456000020 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-02T17:38:59+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 47,41,48). File size 3687707 bytes. Indexed features: Depth True; Pocked False; Palette Rust; Sketched True; Obstacles False; Deep Ocean False; Size Range Medium; Containment Enforced Indexed features returned for this V2 token: Depth True; Pocked False; Palette Rust; Sketched True; Obstacles False; Deep Ocean False; Size Range Medium; Containment Enforced. 394

Spaghetti Bones #503 by Joshua Bagley
Spaghetti Bones #503 by Joshua Bagley. Open artwork

The AB5D header candidate is token 456000503 (edition 503), currently indexed to 0xdd19308a9731cdecb67e0d80ca6823394208c045, which is one of the three linked addresses returned for username ab5d on 2026-09-19. That ownership match is a present-tense index observation, not proof of continuous custody since mint. Inspected media-proxy PNG is 2400x1372px, dark and muted or near-neutral (mean RGB 12,21,16). File size 2518635 bytes. Indexed features: Depth True; Pocked False; Palette Mossy Bog; Sketched True; Obstacles False; Deep Ocean False; Size Range Large; Containment Enforced 1034

Motion, interaction, and audio: Loop behaviour inferred only from source keywords. The inspected PNG is a static frame. The static PNGs document halt or preview states. They are not by themselves proof that a live loop is still running, nor proof that a work is silent. No soundtrack was heard from these pages during this session. 476

Significance and limitations

Spaghetti Bones is project 456 by Joshua Bagley on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069. The close readings above are the evidence for what the stored program outputs.

Unresolved research questions that remain after this pass: (1) What was the exact public-sale unit price in ETH at start_datetime, supported by a contemporaneous primary source rather than a later floor? (2) For tokens whose live renderer was not stopwatch-timed, what is the measured wall-clock period of one full cycle or one completed progressive draw? (3) What contemporaneous primary source records the original public unit price in ETH? (4) Incomplete Control aside, do any of the three current AB5D wallets later acquire or dispose of the header token used above after 2026-09-19? 2107

This package is a draft for human review. Structural validation tests file shape, not the truth of seeing or of licence interpretation.

References


  1. Art Blocks. Spaghetti Bones by Joshua Bagley collection page. Accessed 2026-09-19. 

  2. Art Blocks Hasura index. projects_metadata record for spaghetti-bones-by-joshua-bagley. Accessed 2026-09-19. 

  3. Art Blocks Hasura index. tokens_metadata for sampled Spaghetti Bones token IDs. Accessed 2026-09-19. 

  4. Art Blocks media proxy. Static PNG renders of sampled Spaghetti Bones tokens. Accessed 2026-09-19. 

  5. Joshua Bagley. Spaghetti Bones official description. Accessed 2026-09-19. 

  6. Joshua Bagley. Spaghetti Bones on-chain artist program. Accessed 2026-09-19. 

  7. Art Blocks. Live generator renderer for Spaghetti Bones. Accessed 2026-09-19. 

  8. Creative Commons. Reported artwork licence label CC BY-NC 4.0. Accessed 2026-09-19. 

  9. Art Blocks. Canonical token pages for sampled Spaghetti Bones outputs. Accessed 2026-09-19. 

  10. Art Blocks. AB5D linked wallet set and profile index. Accessed 2026-09-19. 

Written by Grok 4.6 for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.

Token usage unavailable for the complete essay.

Token usage

Model name is the actual operator. Version string, token counts, and timezone-aware start/cutoff telemetry were not supplied by the host; values left null rather than estimated.

Generation record

· Source record · Essay data

Research record

The indexed project script was inspected. Runtime observations and limits are documented in the research record. Historical price, allocation and licensing questions remain as identified in the essay. Publication does not resolve those evidence gaps.

Retrieval evidence · Research notes · Manuscript