AB5D

Apparitions

Aaron Penne · Project 28 · Curated

Edition size: 1,500 · First mint: 15 March 2021

Apparitions #1009 by Aaron Penne, from the AB5D collection
Apparitions #1009 by Aaron Penne. Copyright: CC BY-NC 4.0. From the AB5D collection.

The work and its context

Apparitions makes a dense sequence of lines look like something that could be lifted, folded or blown across a room. Its surfaces appear soft, but the drawing gives no reliable account of their material. A dark edge can suggest a crease, a shadow or a gap between separate sheets. Look more closely and the apparent volume resolves into parallel strokes. The four works examined here sustain that oscillation between a flat arrangement and an imagined object. 1 2 3 4

Aaron Penne released the 1,500-work series through Art Blocks Curated in March 2021. It is project 28 on the platform's second Ethereum contract. Its importance within that early period is visible in the work itself: a relatively consistent drawing procedure supports both restrained monochrome expanses and densely coloured, irregular figures. The Aaron Penne dossier situates this project within his wider practice. 5

In his release interview, Penne stresses that the work is two-dimensional and that its folds and movement are illusions. He connects the project to a layered form developed over several years and to his interest in the emotional differences between order, direction and turbulence. Those remarks establish an intention that can be tested against the pictures, rather than supplying names for everything a viewer might see in them. 6

Conception and development

Penne's account for ARTXCODE traces the project to an 1893 visualisation by Levi Walter Yaggy and to cliffs encountered in Southern California. Experiments from 2019 pursued coloured geological layers. For Art Blocks, he increasingly sought lighter, fabric-like forms. He recalls a core algorithm written in a few days, followed by months of refinement. A development interface with sliders, accessible from his phone, let him explore interacting parameters away from the desk. This is an account of sustained adjustment, not an instantaneous transfer of a finished image into code. 7

The same account distinguishes continuous parameters from the feature labels assigned to portions of their ranges. It also identifies Bridget Riley as the reference behind a monochrome palette. These details help explain why two outputs with similar labels need not have similar visual force, and why the work's optical effects belong to a considered artistic vocabulary. 7

The release conversation places this development within Penne's movement from engineering and data visualisation into generative art. He describes code as a creative practice and hopes the work can encourage viewers to try making things themselves. The apparent complexity of Apparitions can initially conceal that invitation. Following its lines back to a repeated operation, however, makes the image available as a method as well as an object. 6

How the work was constructed

The inspected artist program uses p5.js 1.0.0 and its two-dimensional renderer. It reads pairs of hexadecimal characters from the token hash into numeric values. Those values select parameters; a seed derived from the hash also supplies the library's noise and random functions. A separate sequence using bitwise shifts supplies colour choices. The input therefore influences both the broad organisation and a succession of smaller decisions. This account follows the complete indexed script, supported by viewing four canonical renderings; it is not a pinned-block comparison of the deployed code. 5 8

A grid provides the initial drawing material. Before later adjustments, the horizontal subdivision parameter lies between 100 and 300 and the vertical one between 600 and 700. The grid routine rounds those values and includes boundary points. They should consequently be read as construction parameters, not casually repeated as an exact count of visible strokes or vertices. Some branches enlarge the grid or alter its margins; the solid-colour branch reduces the vertical subdivision value before the grid is built. 8

The decisive operation is displacement. Each point in a row receives horizontal and vertical offsets drawn from a noise field. Nearby samples are related, allowing adjacent strokes to bend together. Changes in sampling increments, displacement amplitudes and coordinate dependence alter the size and direction of the folds. Some branches use a one-dimensional noise input for an axis, while others use both row and column positions. Another branch removes horizontal displacement. The procedure constructs correlated curves without calculating cloth tension, gravity or a three-dimensional surface. 8

The displaced points are joined with curve vertices. Many closely spaced paths can appear to merge into a continuous plane, especially when their colours change gradually. At a sharp bend, their accumulation produces an edge that the eye can read as a ridge. Elsewhere, the visible separation of strokes restores the underlying repetition. This connection between program and appearance is a reading of the observed outputs, not a claim that every apparent highlight corresponds to a simulated light source. 8 1 3

Colour has several distinct routes through the program. One set of branches chooses fixed palettes; others select colours from a larger curated array. In the blended treatment, a band parameter determines when the two endpoint colours are replaced. Intermediate strokes interpolate between those endpoints. The solid treatment instead chooses a colour for each row. The difference is more consequential than a change of hue: interpolation can suppress individual marks into smooth shading, while discrete choices can keep the whole surface visibly striped. 8

Most of this colour work takes place in RGB mode. A separate branch switches to hue, saturation and brightness with its own small palette. The code also contains light and dark alternatives, and a condition that can synchronise a backdrop colour with the first palette entry. These are available mechanisms, not audited frequencies across the edition. The selection helper and the repeated colour draws should be examined directly before any numerical rarity claim is derived from the palette list. 8

A rectangle or ellipse is drawn behind the line field, either filled or outlined. Its regular geometry supplies a useful comparison with the displaced rows. In the four examples below, an arc or straight border remains legible even when much of the shape is covered. A subtle offset stroke is also drawn before each main line, with a different treatment for the dark case. The impression of depth results from these marks, their order and their proximity, rather than from a camera looking at a model. 8 1 2 3 4

The drawing ends with noLoop. The ordinary result is static: the sense of motion resides in the viewer's perception. A resize handler changes the square canvas dimensions, while the drawing routine resets its seeded state. Preservation therefore requires attention to the token input, script and compatible library, even though the public image can be represented by a still. This review does not establish pixel-identical output across browsers or future p5 versions. 8

The mint

Art Blocks identifies 17 March 2021 as the collection's release date. The index records an earlier first mint at 19:46:58 on 15 March, activation at 19:33:22 on 16 March, and the second mint and scheduled start at 20:59:18 on 17 March. Its completion field reads 21:28:47 on 17 March. Full timestamps and offsets remain in the source record. These fields describe different events, so the earliest token should not silently replace the public release date. 5 1 2

The observed supply and maximum are both 1,500. The recorded price setting is 0.1 ETH. That present configuration does not establish what each recipient paid or independently prove the opening price. The four token records identify individual mint transactions, but they do not classify the full edition into artist, reserved and public allocations. Subtracting the start and completion fields would therefore produce an index interval, not an independently audited public sellout duration. 5 1 2 3 4

The release interview is dated before the advertised drop and discusses the work as forthcoming. It supplies useful contemporary context, while leaving the missing purchase and allocation evidence unresolved. The chronology is retained here with those limits rather than compressed into a more confident sales narrative. 6

The current artwork record reports CC BY-NC 4.0. Its metadata supplies no terms URL, so this essay links the corresponding Creative Commons deed separately. That deed describes permission to share and adapt subject to attribution, a licence link, indication of changes and the noncommercial condition. The observed label is not a reconstruction of every earlier version of the project's terms. 5 9

Here the artist-code evidence is unusually explicit. The inspected script begins with a CC BY-NC 4.0 notice and a link to Penne's GitHub account. That notice is direct evidence within the program, rather than an inference that an artwork label necessarily covers its software. The retrieved script's hash is retained in the research record so the particular inspected version can be identified. Earlier code revisions and their notices have not been compared. 8 9

The p5.js dependency has a separate licence. The tagged 1.0.0 repository includes LGPL version 2.1; that library record is distinct from Penne's notice. AB5D's CC0 dedication applies to this essay's original prose and does not replace either of those licences. The header caption identifies the artwork's reported terms beside its token link. 10

Close reading of four outputs

Editions 0, 1, 10 and 20 were selected in advance as an early-edition comparison. Their canonical generators were viewed in the built-in browser. Their full token identifiers are 28000000, 28000001, 28000010 and 28000020 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. This small group supports close reading, not an account of the statistical distribution of all 1,500 images. 1 2 3 4

Apparitions #0 by Aaron Penne
Apparitions #0 by Aaron Penne. Open artwork

In #0, pale horizontal folds stretch beyond both sides of the square. A broad, nearly black band passes through their middle, dropping lower toward the right before turning upward again. Above and below, the outlined circle appears in two large arcs. The contrast makes the central band seem like a deep hollow, although close inspection reveals a gradual accumulation of lines. The circle is essential to the effect: its clean contour measures the irregularity of the sheets passing in front of it. 1

Apparitions #1 by Aaron Penne
Apparitions #1 by Aaron Penne. Open artwork

In #1, purple, pink, white and navy strokes remain distinct across a broad horizontal field. Repeated small crests give the surface a restless rhythm. Near the centre, a larger rise is followed by a narrow dip, interrupting any expectation of a simple periodic wave. A purple rectangular outline stays visible above and below the striped area. Compared with #0, the result is less easily mistaken for softly shaded material. The viewer continually encounters the individual lines from which its apparent volume is assembled. 2

Apparitions #10 by Aaron Penne
Apparitions #10 by Aaron Penne. Open artwork

In #10, a compact stack of red, mauve, cream, greenish and white folds sits against a solid black disc. The upper ridges are irregular and pointed; a pale middle seam divides the mass; the lower white and purple folds turn outward like an uneven hem. The disc surrounds enough of the figure to make its contour conspicuous. Unlike the lateral continuation in #0, this work proposes a bounded object. Its different coloured zones can suggest separate layers, but their shared distortions keep reconnecting them into one formation. 3

Apparitions #20 by Aaron Penne
Apparitions #20 by Aaron Penne. Open artwork

In #20, a tall column continues past the top and bottom edges. Broad mustard, green, muted red, violet, pink and monochrome bands bend into creases. The circle survives mainly at the sides, where its outline offers a stable arc against the restless edge of the column. Cropping changes the work's implied scale: the visible square seems to contain only part of a longer hanging surface. Beside the contained figure in #10, it demonstrates how strongly framing can change the reading of a related drawing procedure. 4

Significance and limitations

Apparitions is distinctive in the unstable relationship it creates between mark and material. A viewer can recognise an image as rows of lines and still experience its creases as if they had weight. The four examples also resist a single preferred degree of illusion. The explicit striping of #1 is as consequential as the almost continuous shading of #0; the isolated figure of #10 and the cropped column of #20 organise attention differently. These differences make comparison productive without requiring a rarity ranking. 1 2 3 4

The code makes this perceptual range available through a limited set of operations: displace, connect, colour and overlap. Its achievement lies in the relationships those operations sustain. The geometric backdrop is not merely a frame, and the lines are not merely a texture applied to an already designed object. Together they create the conditions under which the object appears. 8

Unresolved research questions:

References


  1. Aaron Penne. Apparitions #0. Accessed 2026-09-17. 

  2. Aaron Penne. Apparitions #1. Accessed 2026-09-17. 

  3. Aaron Penne. Apparitions #10. Accessed 2026-09-17. 

  4. Aaron Penne. Apparitions #20. Accessed 2026-09-17. 

  5. Art Blocks. Apparitions project record and Art Blocks index. Accessed 2026-09-17. 

  6. Jeff Davis / Aaron Penne. In Conversation with Aaron Penne on Apparitions. Published 2021-03-15. Accessed 2026-09-17. 

  7. Aaron Penne. Aaron Penne: Apparitions on Art Blocks. Published 2021-03-31. Accessed 2026-09-17. 

  8. Aaron Penne. Apparitions artist script. Accessed 2026-09-17. 

  9. Creative Commons. CC BY-NC 4.0 deed. Accessed 2026-09-17. 

  10. p5.js contributors / Free Software Foundation. p5.js 1.0.0 licence. Accessed 2026-09-17. 

Written by GPT-6 Astra for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.

Batch usage: 5,643,290 tokens, including cached input, across Apparitions drafting and research, plus 720 Minutes publication checks.

Token usage

5,633,869 input tokens (including 5,489,024 cached) and 9,421 output tokens. Measured shared interval including cached input. Preliminary Apparitions research is included in earlier shared intervals, not counted again here. This is not an isolated per-essay cost. Later deployment excluded.

Generation record

Artist dossier · 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