AB5D

Petri

Fabin Rasheed · Project 67 · Factory

Edition size: 200 · First mint: 14 May 2021

Petri #15 by Fabin Rasheed. Copyright: GNU LGPL (unversioned). From the AB5D collection.

Animation starts automatically. Open artwork

The work and its context

Petri is a 200-edition Art Blocks Factory series by Fabin Rasheed, publicly dated 15 May 2021. Its project ID is 67 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270; Atlas position 66 is a separate catalogue number.12 Each inspected original presents a luminous, changing figure inside a dark circular field. A thin colored circumference and a central dot remain stable landmarks while mirrored ribbons spread, fold, and accumulate around them.34

The artist introduces Petri as a home for an evolving organism and describes its movement as indefinitely continuing without repetition.5 The biological language invites patient observation: the circle resembles a vessel in which something is developing. In the actual script, that development comes from correlated noise samples, reflected line segments, and retained drawing history.6 It is a visual organism, described through the behavior of marks rather than a documented model of cells.

Rasheed's Art Blocks profile situates him across art, design, and technology.7 His own current biography emphasizes wave shapes, geometry, recurrences, and the relationship between contemplative experience and technological media.8 Petri gives those concerns a compact form. The viewer does not navigate a scene or select a branch. Watching the same edition at different moments is already enough to encounter a substantially altered image.

Conception and development

The artist's project page supplies a concise development sequence. In its Process section, Rasheed traces Petri to experiments with a thread moving through Perlin noise, followed by an Abstraction series of motion, then the circular Petri works.5 The sequence is artist testimony about development, but the page does not date each stage. Its illustrations should not be mistaken for verified Art Blocks token editions.

A thread is an apt starting point for the final mechanism. One succession of sampled positions produces a line; reflecting that line produces coordinated partners; retaining earlier positions gives the partners apparent breadth.6 That interpretation connects the artist's account with the shipped code without assuming that every intermediate experiment used the final algorithm.

In a November 2021 NFT Malayali interview, Rasheed describes trial and error as central to learning creative technologies and recommends Processing or p5.js as an entry point.9 This later testimony supports an experimental approach to practice. It does not identify a particular tutorial as Petri's source or supply missing dates for its development. Likewise, his current writing about recurring geometries and contemplative experience is a retrospective context, not a contemporaneous launch statement.8

The project's promise of infinite, non-repeating motion should remain attributed to the artist.5 The complete code and observed originals establish ongoing change over the inspection period. Neither a short viewing nor the presence of a noise function proves mathematical non-repetition for unbounded time.6

How the work was constructed

Petri's complete artist program is unusually compact: 3,328 UTF-8 bytes, retrieved through the official index with SHA-256 a455821709efe0cb1d791f44111f0d07bc22312e48076e19ca73d852d4dc19dc. Its declared dependency is p5@1.0.0. The retrieval was indexed, with no independently pinned Ethereum block; the full query and returned identity are retained in the evidence record.26

setup() makes a square canvas from the shorter window dimension. A prefix of tokenData.hash becomes the initial state of a small shift-and-exclusive-or random generator. One result, scaled between zero and 200, becomes the seed for p5 noise and the starting hue. The program therefore compresses the hash into a relatively small numerical starting state. It does not consult a catalogue of named palettes or assign biological species to tokens.6

In draw(), two offsets advance and a loop samples noise repeatedly across the canvas. The two noise calls exchange their coordinate arguments. Their results supply a new position, while pNV and pNV2 retain the preceding one. Four line calls join those positions in reflected forms: the original, its horizontal reflection, its vertical reflection, and the reflection across both axes. This produces the persistent left-right and top-bottom correspondences visible in every sampled edition.6

These segments are drawn repeatedly while a very faint dark background is applied. Earlier marks persist long enough for successive thin lines to appear as folded ribbons or shaded membranes. The apparent surfaces need not be filled polygons: they emerge from accumulated strokes and changing color. A small center ellipse and a fine circular rim provide fixed reference points. A much thicker black circumference covers the exterior region, reinforcing the impression of a contained dish.6

Color changes operate alongside movement. The hue variable count advances by 0.2 per frame and reverses direction around a range of 55 above its starting value. The moving strokes use a hue derived from that changing count; the center and rim use the seed-derived hue. Saturation also depends on the previous noise value. This explains why a comparatively stable rim can surround a changing field of related colors without requiring a separate palette for every visible fold.6

Timing is frame-based. One noise offset advances once per draw, while another advances inside the loop that steps across the width in increments of five. The script does not establish a fixed duration in seconds for a transformation. A further detail matters for reproduction: setup() declares a local M from viewport size, used for the initial noise scale, but the stroke-weight expression in draw() reads the separate global M, which remains one. It is inaccurate to describe all geometry as uniformly scaled.6

A windowResized() handler resizes and clears the canvas, but does not rerun the whole seed setup. No click, keyboard, or audio handler appears in the artist program. The five hosted originals visibly changed between two inspection batches; this establishes actual animation, not just the possibility inferred from draw(). Resize behavior was read from code rather than tested, and sound was not auditioned.631011124

The mint

The earliest indexed mint, edition 0, occurred on 14 May 2021 at 23:41:41 UTC. Activation followed at 00:02:29 UTC on 15 May. Edition 1 was minted at 06:24:45 UTC that day, matching the indexed start time and the official release date.21 The first token therefore predates activation by 20 minutes and 48 seconds. Its timing alone does not establish whether it was an artist reservation or another administrative allocation.

The sample spans the subsequent mint history: edition 10 was minted on 6 June, edition 15 on 3 July, and edition 20 on 7 July. Edition 199, the final token in the current 200-edition count, was minted on 26 July 2021 at 17:36:12 UTC, matching indexed completion.2 The interval from recorded start to completion is 72 days, 11 hours, 11 minutes, and 27 seconds. This is a calculation between indexed events, not proof of an uninterrupted public sale.

The current price field is 300,000,000,000,000,000 wei, or 0.3 ETH. No contemporaneous receipt or historical minter configuration was recovered to establish the opening price.2 Current supply and price must not be projected backward as an original announcement.

The artist's project page separately pledges Petri proceeds and royalties from January 2022 onward to the Processing Foundation.5 That is a documented commitment, not a verified accounting of transfers or a statement about the May 2021 mint proceeds.

The exact project license label is GNU LGPL, with no linked text or version.2 GNU LGPL is a software-license family. Its version 3 defines covered libraries, applications, combined works, and distribution conditions; section 6 also addresses version selection where a covered library omits a number.13 Those clauses cannot resolve, by themselves, which Petri materials the project field was intended to cover. The inspected record does not distinguish output images, the artist program, and dependency code within that label.

The artist's Petri page also carries an all-rights-reserved footer.5 This is a broader website notice, not an explicitly identified replacement for the project's LGPL field. Both statements are preserved, with their scope unresolved. The absence of a version is not an invitation to silently choose whichever terms seem most permissive, nor is it sufficient reason to relabel the project as definitively all rights reserved.

The complete artist script has no separate license header clarifying the grant.6 The p5.js 1.0.0 package independently declares LGPL-2.1, and its tagged license text supplies that library's terms.1415 The dependency's version does not automatically become the version of Petri's artwork label.

Token ownership does not transfer copyright. This essay's original prose is offered under CC0-1.0; that dedication excludes the artist's images, program, and third-party library.

Close reading of examples

Five actual original renderers were inspected: editions 0, 1, 10, 20, and 15, corresponding to tokens 67000000, 67000001, 67000010, 67000020, and 67000015 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. Token records and canonical pages verify the identities.2 Edition 15 is the header selection; its indexed owner matches the complete current wallet set linked to the AB5D profile.16 The sample combines early chronology with the holding, not a claim about rare traits. The retrieved feature objects were empty.2

Petri #0 by Fabin Rasheed
Petri #0 by Fabin Rasheed. Open artwork

Edition 0 initially presented four long blue and turquoise forms approaching the diagonals of a green-rimmed circle. Their inner ends curled toward the bright green central dot, leaving a black horizontal separation. In the later observation, the arms extended toward the rim and a more elaborate blue-green structure occupied the center. New folds partly connected areas that had previously read as separated pairs.3

Its apparent growth depends on the difference between stable references and changing surfaces. The dot and circular boundary let the viewer register an expanding or thickening interior without the entire composition seeming to drift. The mirrored arrangement can suggest wings or limbs, but none of those readings stays secure as the folds change. Following one side also predicts the other side's response, creating order within a constantly revised silhouette. This is a temporal reading of one edition, not a comparison of two supposedly different organisms.3

Petri #1 by Fabin Rasheed
Petri #1 by Fabin Rasheed. Open artwork

Edition 1 occupied a warmer register, with a fine orange rim and center around magenta and violet forms. The first observation showed broad paired lobes above and below an open central interval. Later, additional pink material and crossing violet contours formed a compact diamond-like structure around the center. The original outer lobes remained recognizable, so the new state looked like an elaboration rather than a hard replacement.10

Petri #10 by Fabin Rasheed
Petri #10 by Fabin Rasheed. Open artwork

Edition 10 used a blue rim and center against an intense green-yellow interior. Its initial figure was broad and roughly diamond-shaped, with pointed extensions and a bright vertical middle. The second state added smaller curled loops across its center and lateral edges while retaining the earlier outer points. Yellow highlights made the folded contours particularly legible against the green field.11

Petri #20 by Fabin Rasheed
Petri #20 by Fabin Rasheed. Open artwork

Edition 20 showed the most conspicuous opening in the first batch: a cyan and green ring-like figure surrounded a large dark center. Small protrusions punctuated its top and bottom. In the later batch, broad cyan-green forms occupied much of that former opening, leaving dark curved gaps at the sides. The central dot had not moved; the impression of the interior closing came from the changing traces around it.12

Petri #15 by Fabin Rasheed
Petri #15 by Fabin Rasheed. Open artwork

Edition 15 began as a magenta and blue X inside a yellow circumference. Its narrow arms crossed at the yellow central dot, widening into folded tips toward the four diagonals. Later, a dense purple-blue structure filled the space between the arms. Rounded magenta folds crossed a more angular blue interior, with small dark openings preventing it from becoming one uninterrupted mass.4

The held edition makes the importance of duration especially clear. Its first observed state offered a quick, legible gesture; the next required the eye to work through overlapping folds. Neither state is a final composition. The symmetry remained readable while the amount and distribution of visible material changed. A single preview could document one silhouette, but would omit the relation between those silhouettes, which is central to experiencing this work.4

Significance and limitations

Petri builds a changing figure from a small set of coordinated operations: seeded noise, mirrored segments, color oscillation, and persistent traces. Its circular boundary and center turn those operations into something that can be watched as a contained organism.634 The artist's documented progression from a moving thread to the Petri series gives that mechanism a concrete development context.5

The five originals establish motion through observed changes rather than thumbnails alone. They also show the limits of comparison: the tabs were not synchronized to an identical frame, so a broader silhouette cannot be assigned solely to a seed difference rather than elapsed execution. The observations support accounts of particular changing states, not a ranked taxonomy of tokens or proof of eternal non-repetition.

Open research questions remain:

References


  1. Art Blocks. Petri by Fabin Rasheed. Accessed 2026-09-18. 

  2. Art Blocks. Petri indexed project and token records. Accessed 2026-09-18. 

  3. Fabin Rasheed / Art Blocks. Petri #0 original renderer. Accessed 2026-09-18. 

  4. Fabin Rasheed / Art Blocks. Petri #15 original renderer. Accessed 2026-09-18. 

  5. Fabin Rasheed. Petri: process and donation statement. Accessed 2026-09-18. 

  6. Fabin Rasheed / Art Blocks. Petri complete artist script and token records. Accessed 2026-09-18. 

  7. Art Blocks. Fabin Rasheed artist profile. Accessed 2026-09-18. 

  8. Fabin Rasheed. About. Accessed 2026-09-18. 

  9. Mahesh Krishnan / NFT Malayali. Artist Spotlight: Fabin Rasheed. Published 2021-11-07. Accessed 2026-09-18. 

  10. Fabin Rasheed / Art Blocks. Petri #1 original renderer. Accessed 2026-09-18. 

  11. Fabin Rasheed / Art Blocks. Petri #10 original renderer. Accessed 2026-09-18. 

  12. Fabin Rasheed / Art Blocks. Petri #20 original renderer. Accessed 2026-09-18. 

  13. Free Software Foundation. GNU Lesser General Public License version 3. Published 2007-06-29. Accessed 2026-09-18. 

  14. p5.js contributors. p5.js1.0.0 package manifest. Accessed 2026-09-18. 

  15. p5.js contributors / Free Software Foundation. p5.js1.0.0 license. Accessed 2026-09-18. 

  16. Art Blocks. AB5D linked-wallet profile. Accessed 2026-09-18. 

Written by Grok (reported as Grok 4.6), independently revised by GPT-6 Astra for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.

Token usage unavailable for the complete essay.

Token usage

Grok did not supply token telemetry. Complete essay token usage is unavailable. Original model/version is contributor-reported. GPT-6 Astra independently rechecked sources, script and the original outputs and revised the text; revision provenance is preserved in the essay data.

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