Subtle
willstall · Project 438 · Presents
Edition size: 256 · First mint: 17 May 2023

The work and its context
Subtle is project 438 on the Art Blocks V2 core contract 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, published under the canonical slug subtle-by-willstall and credited to willstall. The indexed project record reports a completed edition of 256 of 256 invocations, runtime js@na, and the official description: # sub·tle | so delicate or precise as to be difficult to analyze or describe. Perspective is everything. It is the lens through which our reality is formed. It’s the filter through which we interpret and make sense of our experiences. Perspective is what shapes our beliefs, influences our decisions, and determines our attitudes about the world around us. 'Subtle' explores the profound yet delicate role of perspective while offering a world in which scale is undefined, form is sleek, and luminescent rays rule all. Nuanced changes in vantage point and form reveal a fascinating interplay between light, complexity, and composition. Additionally, viewers can investigate these relationships interactively or turn on Gallery Mode for an ever-changing experience. This series is heavily inspired by Gall’s Law, which states that “all complex systems evolve from simpler ones,” and aspires to strike a balance between intricacy and simplicity, while retaining its core values of light, color, and tone. ‘Subtle’ is built on nearly 15 years of experimentation with luminescent beams, starting with the acclaimed web game Auditorium, as reimagined in the art show “We’ve Traveled so Far,” and fully realized here. Each unique creation is generated through a wholly bespoke WebGL implementation. At runtime, all attributes and features are combined to realize a completely distinctive GLSL Fragment Shader. Finally, the piece is rendered to your screen using a technique called Raymarching. All of this in just 12.2kb of Javascript. ## Controls: - [ spacebar ] Change Perspective - [ mouse/finger drag ] Interact - [ g ] Toggle Light Beams - [ h ] Toggle Hi-Res Interactivity Mode - [ enter ] Gallery Mode - changes perspective every 10s - [ 1-6 ] Change Antialiasing ( low-high ) ## Notes: - Requires a WebGL capable browser - Render resolution up scales with viewport dimensions. - A black and white low-res preview is used for interaction. Turn on high-res interactivity if you have a lovely GPU 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.777. Website https://willstall.com/projects/subtle.
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. # sub·tle | so delicate or precise as to be difficult to analyze or describe. Perspective is everything. It is the lens through which our reality is formed. It’s the filter through which we interpret and make sense of our experiences. Perspective is what shapes our beliefs, influences our decisions, and determines our attitudes about the world around us. 'Subtle' explores the profound yet
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 Subtle 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 subtle-by-willstall was retrieved from projects_metadata.script filtered by that exact slug. The UTF-8 payload is 12185 bytes with SHA-256 87e22ffc472243a94fbbfa91f569cdd439fbe76becc1b8ec0162179e30769c09. Runtime on the project record is js@na. The script was read in full; it was not executed in this research session. 6
The stored generator is 12185 bytes, SHA-256 87e22ffc472243a94fbbfa91f569cdd439fbe76becc1b8ec0162179e30769c09, runtime js@na. Detected source markers: draw, keydown, requestAnimationFrame, tokenData, hash. Named functions include c. tokenData.hash is read in source. Output then follows the drawing path those functions implement. Token 0 observation: Inspected media-proxy PNG is 2400x1351px, light and muted or near-neutral (mean RGB 210,206,195). File size 3072516 bytes. Indexed features: Lens None; Mood Bright; Beam Count 7; Path Count 4; Path Shell Faded Mesh; Path Style Reflect; Path Width Regular; Beam Blanket Normal
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: Source contains a continuing-draw or audio/WebGL constructor. The inspected PNG is one frame. Live timing and soundtrack were not captured this session. 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 438 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069 is as follows. First token minted_at is 2023-05-17T21:56:11+00:00. activated_at is 2023-06-06T17:35:23+00:00. start_datetime is 2023-08-09T17:00:00+00:00. completed_at is 2023-08-13T07:50:59+00:00. Invocations stand at 256 of a maximum 256, with complete=true on the retrieved row. 23
Calculated intervals from those timestamps: first mint to activation is 19.82 days; activation to start_datetime is 63.98 days; start_datetime to completion is 3.62 days; first mint to completion is 87.41 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-05-17T21:56:11+00:00, activated 2023-06-06T17:35:23+00:00, start 2023-08-09T17:00:00+00:00, completed 2023-08-13T07:50:59+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
Copyright and licensing
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 js@na 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

Subtle #0 is token 438000000 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-05-17T21:56:11+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, light and muted or near-neutral (mean RGB 210,206,195). File size 3072516 bytes. Indexed features: Lens None; Mood Bright; Beam Count 7; Path Count 4; Path Shell Faded Mesh; Path Style Reflect; Path Width Regular; Beam Blanket Normal Indexed features returned for this V2 token: Lens None; Mood Bright; Beam Count 7; Path Count 4; Path Shell Faded Mesh; Path Style Reflect; Path Width Regular; Beam Blanket Normal. 394

Subtle #1 is token 438000001 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-09T17:19:47+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, light and muted or near-neutral (mean RGB 213,176,197). File size 3009725 bytes. Indexed features: Lens Minor Bend; Mood Vivid; Beam Count 17; Path Count 4; Path Shell Faded Mesh; Path Style Mirror; Path Width Wide; Beam Blanket Mirrored Indexed features returned for this V2 token: Lens Minor Bend; Mood Vivid; Beam Count 17; Path Count 4; Path Shell Faded Mesh; Path Style Mirror; Path Width Wide; Beam Blanket Mirrored. 394

Subtle #10 is token 438000010 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-09T17:28:35+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, light and muted or near-neutral (mean RGB 205,209,220). File size 2953904 bytes. Indexed features: Lens None; Mood Bright; Beam Count 5; Path Count 4; Path Shell None; Path Style Translate; Path Width Regular; Beam Blanket None Indexed features returned for this V2 token: Lens None; Mood Bright; Beam Count 5; Path Count 4; Path Shell None; Path Style Translate; Path Width Regular; Beam Blanket None. 394

Subtle #20 is token 438000020 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-08-09T17: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 2400x1351px, mid-tone and muted or near-neutral (mean RGB 77,64,82). File size 3410712 bytes. Indexed features: Lens Minor Bend; Mood Dark; Beam Count 4; Path Count 4; Path Shell Mesh; Path Style Reflect; Path Width Wide; Beam Blanket None Indexed features returned for this V2 token: Lens Minor Bend; Mood Dark; Beam Count 4; Path Count 4; Path Shell Mesh; Path Style Reflect; Path Width Wide; Beam Blanket None. 394

The AB5D header candidate is token 438000045 (edition 45), 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 2400x1351px, light and muted or near-neutral (mean RGB 194,191,186). File size 2709401 bytes. Indexed features: Lens None; Mood Subtle; Beam Count 2; Path Count 7; Path Shell None; Path Style Reflect; Path Width Regular; Beam Blanket None 1034
Motion, interaction, and audio: Source contains a continuing-draw or audio/WebGL constructor. The inspected PNG is one frame. Live timing and soundtrack were not captured this session. 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
Subtle is project 438 by willstall 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
-
Art Blocks. Subtle by willstall collection page. Accessed 2026-09-19. ↩
-
Art Blocks Hasura index. projects_metadata record for subtle-by-willstall. Accessed 2026-09-19. ↩
-
Art Blocks Hasura index. tokens_metadata for sampled Subtle token IDs. Accessed 2026-09-19. ↩
-
Art Blocks media proxy. Static PNG renders of sampled Subtle tokens. Accessed 2026-09-19. ↩
-
willstall. Subtle official description. Accessed 2026-09-19. ↩
-
willstall. Subtle on-chain artist program. Accessed 2026-09-19. ↩
-
Art Blocks. Live generator renderer for Subtle. Accessed 2026-09-19. ↩
-
Creative Commons. Reported artwork licence label CC BY-NC 4.0. Accessed 2026-09-19. ↩
-
Art Blocks. Canonical token pages for sampled Subtle outputs. Accessed 2026-09-19. ↩
-
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.
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.
