{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
    "projectId": 383,
    "slug": "pre-process-by-casey-reas",
    "title": "Pre-Process",
    "artistCredit": "Casey REAS",
    "artistDossierUrls": []
  },
  "revision": 2,
  "researchCutoff": "2026-09-20",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 120,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current index invocations, equal to maximum on this completed project."
    },
    {
      "id": "max-invocations",
      "topic": "mint",
      "value": 120,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported"
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2022-11-18T19:02:47+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "previousRevisionSourceIds": [
        "S02",
        "S04"
      ]
    },
    {
      "id": "activated-at",
      "topic": "mint",
      "value": "2022-11-23T23:51:47+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported"
    },
    {
      "id": "start-datetime",
      "topic": "mint",
      "value": "2022-11-30T18:00:00+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported"
    },
    {
      "id": "completed-at",
      "topic": "mint",
      "value": "2022-11-30T18:25:35+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": null
    },
    {
      "id": "license-label",
      "topic": "rights",
      "value": "CC BY-NC 4.0",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "previousRevisionSourceIds": [
        "S02",
        "S06"
      ]
    },
    {
      "id": "script-type",
      "topic": "construction",
      "value": "p5@1.0.0",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "verified",
      "previousRevisionSourceIds": [
        "S02",
        "S03"
      ]
    },
    {
      "id": "historic-unit-price-eth",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "status": "unknown",
      "note": "No contemporaneous primary price table recovered this session.",
      "previousRevisionSourceIds": [
        "S01",
        "S02"
      ]
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-20",
      "sourceIds": [
        "S01"
      ],
      "note": "Label copied from projects_metadata.license. Unversioned CC strings are not inferred as 4.0.",
      "unresolvedConflicts": [],
      "previousRevisionSourceIds": [
        "S02",
        "S06"
      ]
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01"
      ],
      "note": "No separate artist-code licence field was present on the project record.",
      "unresolvedConflicts": [],
      "previousRevisionSourceIds": [
        "S02",
        "S03"
      ]
    },
    "thirdParty": [
      {
        "name": "p5.js 1.0.0",
        "reportedLabel": "LGPL-2.1 (p5.js project license; confirm version-specific notice)",
        "category": "custom",
        "termsUrl": "https://github.com/processing/p5.js/blob/main/license.txt",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S01"
        ],
        "note": "Runtime declared script_type_and_version p5@1.0.0. p5.js is third-party; the artist program is a separate rights object.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "the-work-and-its-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Pre-Process is Art Blocks project 383 on the contract `0x99a9b7c1116f9ceeb1652de04d5969cce509b069`. The index records 120 invocations against a maximum of 120, the runtime `p5@1.0.0`, an aspect ratio of 1.78 and the licence `CC BY-NC 4.0`, linked to the Creative Commons deed [^S01]. The index's price field reads 0 and does not say what collectors paid at the mint [^S01]. The project record also states that 25 per cent of proceeds would go to the UCLA DMA Root Fund, to support Black and Indigenous students [^S01].\n\nEvery output is a live animation, not a still. One hundred circles enter a black, grey or white field one at a time. They drift, collide, turn and push each other apart, and the program draws their centres, their headings and the lines between those that touch [^S01]. Reas's mint text calls the project \"a Rosetta Stone for my practice\" [^S01]. It returns to the first Element of his Process series, the body of work he developed from 2004, and puts it on chain [^S01][^S02].\n\nReas co-created the Processing programming language with Ben Fry in 2001 and has taught in UCLA's Design Media Arts department since 2003 [^S03]. Pre-Process was his fourth Art Blocks release, after CENTURY, Phototaxis and CENTURY 2052 [^S04]. It stands apart from them as a retrospective work: a new program built around a sketch made nearly twenty years earlier."
    },
    {
      "id": "conception-and-development",
      "heading": "Conception and development",
      "bodyMarkdown": "The mint text dates the origin precisely: \"a Saturday afternoon in 2003 when I was sketching, first on paper, and then with code\" [^S01]. Reas describes drawing circles, connecting their centre points and then setting the circles in motion. At the time, he writes, he was \"focused on *ideas* and not *images*\" [^S01].\n\nThat session became the core of the Process series. The series is built from short texts that define Forms and Behaviors and combine them into Elements [^S02][^S05]. Element 1, as the mint text sets it out, is a circle that moves in a straight line, is constrained to the surface, changes direction while touching another Element, and moves away from an overlapping Element [^S01]. Reas's published text for Process 4 already contains the network that Pre-Process draws: a surface of Element 1s, with a line drawn between the centres of Elements that touch [^S05].\n\nThe Process texts were meant to be interpreted, not only executed. Reas's project page says the artwork \"resides in the rules themselves\" (automated extraction), and the Process Compendium of 2010 printed two images for each text to make the point [^S02]. The idea has an older source. Reas's Whitney Artport commission Software Structures (2004, restored 2016) names \"the work of Sol LeWitt, specifically his wall drawings\" as its catalyst [^S06].\n\nPre-Process also had an earlier public life. In the interview Art Blocks published before the release, Reas told Jordan Kantor that an early version of the software was in his 2005 bitforms show, but \"NFS (not for sale) because it wasn't a finished artwork\" [^S04]. His exhibition record lists two derived works, *Pre-process Hex* and *Pre-process Execution*, shown in Chattanooga in 2009 and at Gallery 400 in Chicago in 2010 [^S07]. The bitforms solo show of 2005 was titled Process/Drawing [^S08]. In the interview Reas says it was only when Art Blocks \"invented a new way of releasing software art\" that he saw a way to finish the project [^S04].\n\nThe mint text frames the work as a question about where a generative system's aesthetic lives: \"Is it deep within the code or within the picture the system creates?\" [^S01]. Reas's answer is to hold both. He calls himself a \"conceptual artist\" with a small \"c\" and says the work exists \"*between* the instructions, the performance and interpretation of the instructions, and the resulting images\" [^S01]."
    },
    {
      "id": "how-the-work-was-constructed",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The program is a single script of 11,256 bytes, SHA-256 `205c3bc9cd5a019cb94cb797755538446cddd564ca69ea4f55b6d57e97568369`. It was retrieved from the Art Blocks index on 20 September 2026 and read in full. No code is reproduced here [^S01].\n\n**Traits come from the mint number, not the hash.** The three published traits are computed from the token's position in the edition. Adding one to the invocation number, the program takes its remainder after division by 8 for Surface, by 3 for Origin and by 5 for Growth [^S01]. Because 8, 3 and 5 share no factors, the 120 invocations run through every one of the 8 × 3 × 5 = 120 combinations exactly once. A check against all 120 token records found no exceptions: every combination occurs once, every Surface 15 times, every Origin 40 times and every Growth 24 times (own computation from [^S01]). Reas gives the same arithmetic in the interview: \"8 × 3 × 5 = 120. This is why the edition is limited to 120 permutations\" [^S04].\n\nThe hash does not choose any trait. It seeds a pair of sfc32 generators, which place the Elements and set their starting headings [^S01].\n\n| Trait | Values in the code | Reas's description [^S04] | Count |\n| --- | --- | --- | --- |\n| Origin 1 | every Element starts at the centre | \"the center\" | 40 |\n| Origin 2 | random x on the horizontal midline | \"a horizontal line\" | 40 |\n| Origin 3 | random x and y inside a margin | \"random locations\" | 40 |\n| Growth 1 | radius rises linearly with birth order | \"small to large\" | 24 |\n| Growth 2 | radius falls linearly | \"large to small\" | 24 |\n| Growth 3 | all equal, 3.2% of the canvas diagonal | \"all the same size and small\" | 24 |\n| Growth 4 | all equal, 4.8% of the diagonal | \"all the same size and large\" | 24 |\n| Growth 5 | fifth-power curve up to about 11% of the diagonal | \"nonlinear small to large\" | 24 |\n| Surface 1 to 8 | eight rendering schemes, below | \"eight different surfaces\" | 15 each |\n\nThe sizes are radii, as code readings for a non-square canvas [^S01].\n\n**The simulation.** One Element appears at the start, and another is added every ten frames at 30 frames per second, so all 100 are present after 33 seconds (code reading) [^S01]. Each Element steps one pixel per frame along its heading and is clamped inside a margin of one-fortieth of the diagonal. When two overlap, both are pushed apart along the line between them, and both headings turn by 0.0125 radians. Those two responses are Behaviors 4 and 3 of Element 1 [^S01]. Because every Element keeps moving forever, the system has no resting state. That is the code's version of a system that \"seeks, but never finds, equilibrium\" [^S01].\n\n**The eight Surfaces.** Each Surface switches layers on or off and sets their greys (code reading) [^S01]:\n\n1. Black ground; grey outlines, white centres, a grey heading dot inside each circle, white lines between touching Elements.\n2. Light ground; translucent grey discs, dark heading dots, black network lines.\n3. Black ground; no circles. Each Element's birth number is printed at its centre, and network lines fade in and out.\n4. Black ground; no circles; grey centres and fading near-white network lines.\n5. Mid-grey ground; solid black discs with heading dots and white network lines.\n6. Black ground, never cleared; translucent black outlines and lines, translucent white centres.\n7. Light ground, never cleared; translucent grey outlines, white centres, black lines.\n8. Light ground, never cleared; translucent near-white outlines and black lines.\n\nIn Surfaces 3 and 4 a line brightens while two Elements stay in contact and fades once they part. The network there records the duration of contact, not just its presence (code reading) [^S01]."
    },
    {
      "id": "quirks-in-the-algorithm",
      "heading": "Quirks in the algorithm",
      "bodyMarkdown": "A full read of the program, checked against the 120 token records, found the following. Code-only points are marked.\n\n1. **No rarity at all.** Because the traits are remainders of the mint number, each combination exists once and each trait value is exactly equally common [^S01]. The token number alone predicts the traits: #0 is 1/1/1, and #119 is Surface 8, Origin 3, Growth 5 (own computation from [^S01]). Tokens eight apart always share a Surface.\n2. **A drawn random number that is thrown away.** Each Element receives two random angles. The first is stored as a movement angle and then immediately overwritten with zero, and the variable is never used again (code reading) [^S01]. A 64-bit seed read from the hash and the project number are likewise computed and never used [^S01].\n3. **A speed setting that does nothing, with a unit mismatch.** Each Element computes a speed by mapping the canvas diagonal against a range written in pixel areas (400 × 400 to 1920 × 1080). For a 1920 × 1080 window this gives about 0.46 instead of the evident intent of 1.0. The value is never used: Elements always move one pixel per frame (code reading) [^S01].\n4. **Three Surfaces draw layers that cannot be seen.** In Surface 6 the outlines and network lines are translucent black on a black ground, so the picture consists only of the trails left by the white centres. In Surface 8 the outlines are near-white on a near-white ground and show only where they cross the dark accumulated lines. Surface 4 sets a colour for outlines it never draws, and Surface 5 sets a text colour with text switched off (code reading) [^S01]. #5 and #7 below show the effect.\n5. **Pictures that depend on time.** Surfaces 6, 7 and 8 never repaint the background, so every frame is layered onto the last [^S01]. A still of one of these 45 tokens depends on how long the program had run when it was captured. The media-proxy renders of #5, #6 and #7 show dense accumulations that the other Surfaces never produce.\n6. **The screen sets the scale.** The canvas fills the viewer's window, so the 1.78 aspect ratio in the index describes the reference render, not the work (code reading) [^S01]. Element sizes are fractions of the window diagonal, square windows get slightly smaller Elements, and line weight thickens only on screens larger than about 1920 × 1080. Motion is fixed at one pixel per frame, so on a large screen the same system moves more slowly relative to its size. There is no handler for resizing the window (code reading) [^S01].\n7. **Viewer controls.** A click or the space bar restarts the system. Keys 1 to 8 switch to any of the eight Surfaces, and P pauses (code reading) [^S01]. A restart re-seeds from the hash, so it replays the same opening rather than a new one. The pause flag starts in the \"paused\" state while the animation is running, so the first press of P does nothing visible and the second pauses (code reading) [^S01]. Changing Surface by key leaves the token's Origin and Growth, and its published traits, unchanged.\n8. **Birth order made visible.** Surface 3 prints each Element's index, 0 to 99, at its centre. In the Growth 1, 2 and 5 settings, that index also sets the Element's size [^S01]."
    },
    {
      "id": "the-combinations-and-the-pictures-they-make",
      "heading": "The combinations and the pictures they make",
      "bodyMarkdown": "With no rare traits, the natural \"set\" in Pre-Process is structural rather than statistical. A collector might hold one of each Surface, one of each Origin, or the whole run for a given Growth. No source inspected describes collectors pursuing such sets, and none names grails [^S01]. What differs sharply between tokens is the picture, and some combinations produce strongly characteristic images.\n\n![Pre-Process #2: a field of white numbers joined by faint lines on black](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000002.png)\n*Pre-Process #2, Surface 3, Origin 3, Growth 3: the numbered Surface, with equal small Elements scattered at random. Render: Art Blocks media proxy.*\n\n**Equal sizes from the centre.** When every Element is the same size and all start at the centre, the pushing settles into something close to a triangular lattice. #3 (Surface 4, Origin 1, Growth 4) shows almost regular triangles of network lines across the whole field [^S01]. It is the nearest the system comes to the equilibrium Reas says it never reaches.\n\n![Pre-Process #3: a near-regular triangular lattice of thin white lines on black](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000003.png)\n*Pre-Process #3, Surface 4, Origin 1, Growth 4. Render: Art Blocks media proxy.*\n\n**The nonlinear Growth.** Growth 5 makes most Elements tiny and a handful very large. On Surface 5 the result is a mass of black discs on grey, crowded by small satellites, as in #4 [^S01].\n\n![Pre-Process #4: large and small black discs on a grey ground with thin white lines](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000004.png)\n*Pre-Process #4, Surface 5, Origin 2, Growth 5. Render: Art Blocks media proxy.*\n\n**The accumulating Surfaces.** Surfaces 6 to 8 turn the animation into a drawing. #5 is made only of the looping white paths of the centres. #7 builds dark stars of network lines on a pale ground, cut through by the pale arcs of the outlines [^S01].\n\n![Pre-Process #5: small white looping trails scattered on black](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000005.png)\n*Pre-Process #5, Surface 6, Origin 3, Growth 1: only the centres' trails remain visible. Render: Art Blocks media proxy.*\n\n![Pre-Process #7: dark star shapes of overlapping lines on a white ground](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000007.png)\n*Pre-Process #7, Surface 8, Origin 2, Growth 3. Render: Art Blocks media proxy.*\n\n**The first and last.** #0 is the 1/1/1 combination: centre origin, small to large, and the Surface that shows every layer. It is also the only token minted before the public sale [^S01]. #119, the last, is the 5/3/8 combination [^S01].\n\n**Market.** At retrieval the index gave a lowest listing of 4 ETH [^S01]. VERSE's series page, read through an automated extraction, reported 84 owners, total volume of about $1.37 million and a highest sale of about $15,400 [^S09]. OpenSea's page, read the same way, gave figures that do not match these [^S10]. No auction-house sale of a Pre-Process token was found. At retrieval 80 addresses held the 120 tokens. Two held 8 each and three held 5 [^S01]. No source inspected ties these wallets to named collectors, and the artist's address held none [^S01]."
    },
    {
      "id": "pre-process-in-exhibition",
      "heading": "Pre-Process in exhibition",
      "bodyMarkdown": "Reas's exhibition record lists *Pre-Process* in \"Art Blocks Curated\" at the MIX Center of Arizona State University's Herberger Institute, Phoenix, on 23 May 2024 [^S07]. No print programme, physical edition or museum acquisition of the 2022 work was found. The Process series around it is widely held. The V&A's *Process 18 (Software 3)* (2010, E.297:1-2011) is one example, and Reas's CV lists the Whitney's Artport, the Centre Pompidou and the Block Museum among other collections [^S11][^S08]."
    },
    {
      "id": "the-mint",
      "heading": "The mint",
      "bodyMarkdown": "Invocation 0 was minted on 18 November 2022 at 19:02:47 UTC [^S01]. The index records activation on 23 November and a public start at 18:00:00 UTC on 30 November [^S01]. The first public mint did not come until 18:24:23. The remaining 119 were all minted within the next 72 seconds, and 108 of them fell in two blocks at 18:25:23 and 18:25:35 UTC [^S01]. The edition was complete 25 minutes and 35 seconds after the scheduled start, as the earlier AB5D essay also recorded [^S12].\n\nA 24-minute wait followed by a rush is the pattern a descending-price auction would produce, but the index's price field is 0 and no source inspected gives the sale mechanism or price [^S01]. That remains open. All 120 tokens were minted in November 2022 [^S01]."
    },
    {
      "id": "copyright-and-licensing",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The index records `CC BY-NC 4.0` with a link to the Creative Commons deed [^S01]. On that licence the images and animations may be shared and adapted for non-commercial purposes with attribution. Commercial use needs the artist's permission. The program carries no separate code licence; p5.js is loaded by the platform at view time [^S01]. The Process texts on which the work rests are published by Reas in his public studio repository [^S05]."
    },
    {
      "id": "significance-and-limitations",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Pre-Process is a rare case of an artist using a long-form platform to publish an origin rather than a new idea. Its 2003 sketch fed a decade of Process works now held by museums, and the 2022 program makes that sketch permanent and runnable [^S01][^S02][^S11]. Its design is unusually strict. The edition is exactly the set of permutations, so there is no rarity to chase, and the differences between tokens are differences of seeing, as Reas says [^S04]. The code shows signs of its age and of its revision: unused speed and angle values, invisible layers and a pause key that needs two presses. None of these harms the work, but they show a sketch carried forward rather than rewritten.\n\nThe record has clear gaps. There is no sourced sale history, no named collector and no physical form.\n\nUnresolved research questions:\n\n1. What was the sale mechanism and price on 30 November 2022, and does the 24-minute delay reflect a Dutch auction?\n2. Several quotations from the Art Blocks interview and from reas.com were taken from automated page extractions. They should be checked against the pages, and the interview's publication date confirmed.\n3. What were *Pre-process Hex* and *Pre-process Execution* (2009 to 2010), and do they survive?\n4. Which Pre-Process token, and in what form, was shown at the ASU MIX Center in May 2024?\n5. Are the unused speed and movement-angle values leftovers from the 2003 code? A comparison with Reas's earlier Process sources could settle it. Reas's own posts on X about the release could not be fetched and remain leads."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "383000000",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000",
      "sourceIds": [
        "S01"
      ],
      "selectionNote": "Specified candidate invocation 0.",
      "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 6,6,6). File size 829827 bytes. Indexed features: Growth 1; Origin 1; Surface 1",
      "previousRevisionSourceIds": [
        "S04",
        "S05",
        "S09"
      ]
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "383000001",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000001",
      "sourceIds": [
        "S01"
      ],
      "selectionNote": "Specified candidate invocation 1.",
      "observationNote": "Inspected media-proxy PNG is 2400x1349px, light and muted or near-neutral (mean RGB 183,183,183). File size 539848 bytes. Indexed features: Growth 2; Origin 2; Surface 2",
      "previousRevisionSourceIds": [
        "S04",
        "S05",
        "S09"
      ]
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "383000010",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000010",
      "sourceIds": [
        "S01"
      ],
      "selectionNote": "Specified candidate invocation 10.",
      "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 3,3,3). File size 535437 bytes. Indexed features: Growth 1; Origin 2; Surface 3",
      "previousRevisionSourceIds": [
        "S04",
        "S05",
        "S09"
      ]
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "383000020",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000020",
      "sourceIds": [
        "S01"
      ],
      "selectionNote": "Specified candidate invocation 20.",
      "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 41,41,41). File size 474712 bytes. Indexed features: Growth 1; Origin 3; Surface 5",
      "previousRevisionSourceIds": [
        "S04",
        "S05",
        "S09"
      ]
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Grok research session for coordinator handoff",
    "agent": "OpenAI Codex (editorial synthesis)",
    "model": null,
    "modelVersion": null,
    "tools": [
      "Hasura GraphQL",
      "media-proxy PNG retrieval",
      "canonical token HEAD checks",
      "full script read"
    ],
    "humanEditorialInvolvement": "Editorial synthesis of the earlier essay and supplied revision, published at Phil’s request. Research limitations retained.",
    "originalProseLicense": "CC0-1.0",
    "revisionAttribution": "AB5D editorial synthesis of the supplied revision and earlier essay. Supplied-revision author and model were not specified. Earlier research provenance is retained in previousRevisionResearch.",
    "revisionUsage": null,
    "generation": null
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "projects_metadata.script where slug=_eq pre-process-by-casey-reas",
    "sha256": "205c3bc9cd5a019cb94cb797755538446cddd564ca69ea4f55b6d57e97568369",
    "retrievedAt": "2026-09-19T00:00:00+00:00",
    "method": "graphql-post-full-script-read",
    "executed": false,
    "chainBlock": null
  },
  "editorialExceptions": [],
  "manuscriptFormat": "supplied-markdown",
  "manuscriptPreamble": "# Pre-Process by Casey REAS\n\n*Art Blocks Curated, project 383 · 120 outputs · minted 30 November 2022 · CC BY-NC 4.0*\n\n![Pre-Process #0: white-centred grey circles joined by white lines on a black ground](https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000.png)\n*Pre-Process #0, Surface 1, Origin 1, Growth 1: the first of the 120 combinations. Render: Art Blocks media proxy.*\n\n",
  "bibliographyMarkdown": "\n### Primary\n\n[^S01]: Art Blocks public GraphQL index, `projects_metadata` for project 383 (including the full program, mint text and charitable-giving note) and `tokens_metadata` for all 120 tokens. Retrieved 20 September 2026 via https://artblocks-mainnet.hasura.app/v1/graphql. Collection page: https://www.artblocks.io/collection/pre-process-by-casey-reas\n[^S02]: Casey REAS, \"Process\", REAS.com. https://reas.com/process ; and \"Pre-Process\", REAS.com. https://reas.com/pre_process/\n[^S04]: Jordan Kantor, \"In Conversation with Casey REAS on Pre-Process\", Art Blocks, 2022 (before release; exact date not shown). https://www.artblocks.io/articles/in-conversation-with-casey-reas-on-pre-process\n[^S05]: Casey REAS, \"ProcessCompendium.md\", REAS/studio repository, GitHub. https://github.com/REAS/studio/blob/master/ProcessCompendium.md\n[^S06]: Casey Reas, \"Software Structures\", Whitney Museum of American Art, Artport, 2004, restored 2016. https://whitney.org/exhibitions/software-structures\n[^S07]: Casey REAS, \"Exhibitions\", REAS.com (entries E-09-07, E-11-01 and E-24-03). https://reas.com/exhibitions\n[^S08]: bitforms gallery, \"Casey Reas\" CV, 2024. https://www.bitforms.art/wp-content/uploads/2024/07/reas_bio.pdf\n[^S03]: Wikipedia, \"Casey Reas\". https://en.wikipedia.org/wiki/Casey_Reas\n\n### Video and audio\n\n- \"Casey Reas, 'Process Compendium (Introduction),' 2004-2010\", bitforms, Vimeo, 11 min 5 s. https://vimeopro.com/bitforms/reas/video/39078622\n- \"Casey Reas: Interview Excerpts from CLOUDS (2014)\", The Frank-Ratchye STUDIO for Creative Inquiry, YouTube (title and channel confirmed via oEmbed, 20 September 2026; not watched). https://www.youtube.com/watch?v=VwxOMvzxgpU\n- \"UNIT-ON-CHAIN: Casey Reas and Douglas Dodds on Historical Narratives of Generative Art\", Unit London podcast, 3 October 2022. https://unitlondon.com/2022-10-03/unit-on-chain-casey-reas-and-douglas-dodds-on-historical-narratives-of-generative-art/\n\n### Criticism, collecting and market\n\n[^S09]: VERSE, \"Pre-Process by Casey Reas\", series page. Read 20 September 2026. https://verse.works/series/pre-process-by-casey-reas\n[^S10]: OpenSea, \"Pre-Process by Casey REAS\" collection page. Read 20 September 2026. https://opensea.io/collection/pre-process-by-casey-reas\n[^S11]: Victoria and Albert Museum, Casey Reas, *Process 18 (Software 3)*, 2010, E.297:1-2011. https://collections.vam.ac.uk/item/O1225404\n[^S12]: AB5D, \"Pre-Process by Casey REAS\", earlier series essay. https://ab5d.xyz/series/pre-process-by-casey-reas/\n\n### Further reading\n\n- Britt Salvesen and Staci Steinberger, \"'Digital art is a kind of performance': Q&A with Casey Reas\", LACMA Unframed, 13 November 2024. https://unframed.lacma.org/2024/11/13/digital-art-kind-performance-qa-casey-reas\n- Casey REAS, \"NFTs\", REAS.com (project list). https://reas.com/nfts\n- DAM Museum, \"Process Compendium\". https://dam.org/museum/artists_ui/artists/reas-casey/process-compendium/\n- VERSE, \"Process Compendium by Casey Reas\". https://verse.works/series/process-compendium-by-casey-reas\n- UCLA, \"DMA Root Fund\" scholarship listing. https://ucla.academicworks.com/opportunities/118192\n",
  "referenceOrder": [
    "S01",
    "S02",
    "S03",
    "S04",
    "S05",
    "S06",
    "S07",
    "S08",
    "S09",
    "S10",
    "S11",
    "S12"
  ],
  "previousRevisionResearch": {
    "facts": [
      {
        "id": "minted-count",
        "topic": "mint",
        "value": 120,
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02"
        ],
        "status": "reported",
        "note": "Current index invocations, equal to maximum on this completed project."
      },
      {
        "id": "max-invocations",
        "topic": "mint",
        "value": 120,
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02"
        ],
        "status": "reported"
      },
      {
        "id": "first-mint",
        "topic": "mint",
        "value": "2022-11-18T19:02:47+00:00",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02",
          "S04"
        ],
        "status": "reported"
      },
      {
        "id": "activated-at",
        "topic": "mint",
        "value": "2022-11-23T23:51:47+00:00",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02"
        ],
        "status": "reported"
      },
      {
        "id": "start-datetime",
        "topic": "mint",
        "value": "2022-11-30T18:00:00+00:00",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02"
        ],
        "status": "reported"
      },
      {
        "id": "completed-at",
        "topic": "mint",
        "value": "2022-11-30T18:25:35+00:00",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02"
        ],
        "status": "reported",
        "note": null
      },
      {
        "id": "license-label",
        "topic": "rights",
        "value": "CC BY-NC 4.0",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02",
          "S06"
        ],
        "status": "reported"
      },
      {
        "id": "script-type",
        "topic": "construction",
        "value": "p5@1.0.0",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02",
          "S03"
        ],
        "status": "verified"
      },
      {
        "id": "historic-unit-price-eth",
        "topic": "mint",
        "value": null,
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S01",
          "S02"
        ],
        "status": "unknown",
        "note": "No contemporaneous primary price table recovered this session."
      }
    ],
    "rights": {
      "artwork": {
        "reportedLabel": "CC BY-NC 4.0",
        "category": "creative-commons",
        "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02",
          "S06"
        ],
        "note": "Label copied from projects_metadata.license. Unversioned CC strings are not inferred as 4.0.",
        "unresolvedConflicts": []
      },
      "code": {
        "reportedLabel": null,
        "category": "unknown",
        "termsUrl": null,
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S02",
          "S03"
        ],
        "note": "No separate artist-code licence field was present on the project record.",
        "unresolvedConflicts": []
      },
      "thirdParty": [
        {
          "name": "p5.js 1.0.0",
          "reportedLabel": "LGPL-2.1 (p5.js project license; confirm version-specific notice)",
          "category": "custom",
          "termsUrl": "https://github.com/processing/p5.js/blob/main/license.txt",
          "observedAt": "2026-09-19",
          "sourceIds": [
            "S03"
          ],
          "note": "Runtime declared script_type_and_version p5@1.0.0. p5.js is third-party; the artist program is a separate rights object.",
          "unresolvedConflicts": []
        }
      ]
    },
    "examples": [
      {
        "id": "E01",
        "chainId": 1,
        "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
        "tokenId": "383000000",
        "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000",
        "sourceIds": [
          "S04",
          "S05",
          "S09"
        ],
        "selectionNote": "Specified candidate invocation 0.",
        "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 6,6,6). File size 829827 bytes. Indexed features: Growth 1; Origin 1; Surface 1"
      },
      {
        "id": "E02",
        "chainId": 1,
        "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
        "tokenId": "383000001",
        "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000001",
        "sourceIds": [
          "S04",
          "S05",
          "S09"
        ],
        "selectionNote": "Specified candidate invocation 1.",
        "observationNote": "Inspected media-proxy PNG is 2400x1349px, light and muted or near-neutral (mean RGB 183,183,183). File size 539848 bytes. Indexed features: Growth 2; Origin 2; Surface 2"
      },
      {
        "id": "E03",
        "chainId": 1,
        "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
        "tokenId": "383000010",
        "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000010",
        "sourceIds": [
          "S04",
          "S05",
          "S09"
        ],
        "selectionNote": "Specified candidate invocation 10.",
        "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 3,3,3). File size 535437 bytes. Indexed features: Growth 1; Origin 2; Surface 3"
      },
      {
        "id": "E04",
        "chainId": 1,
        "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
        "tokenId": "383000020",
        "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000020",
        "sourceIds": [
          "S04",
          "S05",
          "S09"
        ],
        "selectionNote": "Specified candidate invocation 20.",
        "observationNote": "Inspected media-proxy PNG is 2400x1349px, dark and muted or near-neutral (mean RGB 41,41,41). File size 474712 bytes. Indexed features: Growth 1; Origin 3; Surface 5"
      }
    ],
    "provenance": {
      "operator": "Grok research session for coordinator handoff",
      "agent": "Grok",
      "model": "Grok 4.6",
      "modelVersion": null,
      "tools": [
        "Hasura GraphQL",
        "media-proxy PNG retrieval",
        "canonical token HEAD checks",
        "full script read"
      ],
      "humanEditorialInvolvement": "none in this draft",
      "originalProseLicense": "CC0-1.0"
    },
    "codeInspection": {
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "locator": "projects_metadata.script where slug=_eq pre-process-by-casey-reas",
      "sha256": "205c3bc9cd5a019cb94cb797755538446cddd564ca69ea4f55b6d57e97568369",
      "retrievedAt": "2026-09-19T00:00:00+00:00",
      "method": "graphql-post-full-script-read",
      "executed": false,
      "chainBlock": null
    },
    "sources": [
      {
        "id": "S01",
        "author": "Art Blocks",
        "title": "Pre-Process by Casey REAS collection page",
        "url": "https://www.artblocks.io/collection/pre-process-by-casey-reas",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "collection header and description for slug pre-process-by-casey-reas",
          "edition size and project identity projectId 383"
        ]
      },
      {
        "id": "S02",
        "author": "Art Blocks Hasura index",
        "title": "projects_metadata record for pre-process-by-casey-reas",
        "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "graphql-post",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "query projects_metadata where slug=_eq pre-process-by-casey-reas; fields project_id,license,invocations,max_invocations,first_token_minted_at,activated_at,start_datetime,completed_at,script_type_and_version,description,website",
          "returned project_id 383 contract_address 0x99a9b7c1116f9ceeb1652de04d5969cce509b069"
        ]
      },
      {
        "id": "S03",
        "author": "Casey REAS",
        "title": "Pre-Process on-chain artist program",
        "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "graphql-post",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "projects_metadata.script for slug pre-process-by-casey-reas; SHA-256 205c3bc9cd5a019cb94cb797755538446cddd564ca69ea4f55b6d57e97568369; 11256 UTF-8 bytes",
          "full script 11256 bytes SHA-256 205c3bc9cd5a019cb94cb797755538446cddd564ca69ea4f55b6d57e97568369"
        ]
      },
      {
        "id": "S04",
        "author": "Art Blocks Hasura index",
        "title": "tokens_metadata for sampled Pre-Process token IDs",
        "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "graphql-post",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "tokens_metadata where token_id in sampled set and contract_address = 0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
          "returned token_id, invocation, minted_at, owner_address, hash, features"
        ]
      },
      {
        "id": "S05",
        "author": "Art Blocks",
        "title": "Canonical token pages for sampled Pre-Process outputs",
        "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-head",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "HEAD https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000 status 200",
          "matching HEAD 200 on the other three sampled canonical token URLs"
        ]
      },
      {
        "id": "S06",
        "author": "Creative Commons",
        "title": "Reported artwork licence label CC BY-NC 4.0",
        "url": "https://creativecommons.org/licenses/by-nc/4.0/",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "project license field exactly 'CC BY-NC 4.0'",
          "deed or project page text as cited; unversioned labels are not rewritten as 4.0"
        ]
      },
      {
        "id": "S07",
        "author": "Casey REAS",
        "title": "Pre-Process official description",
        "url": "https://info.artblocks.io/spectrum/in-conversation-with-casey-reas-on-pre-process",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "official indexed description used as the development account"
        ]
      },
      {
        "id": "S08",
        "author": "Art Blocks",
        "title": "AB5D linked wallet set and profile index",
        "url": "https://www.artblocks.io/profile/ab5d",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get-and-graphql",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "GraphQL user_profiles where username=_eq ab5d; linked_accounts.public_address returned three addresses",
          "profile page HTTP 200 also listing 0xdd19308a9731cdecb67e0d80ca6823394208c045"
        ]
      },
      {
        "id": "S09",
        "author": "Art Blocks media proxy",
        "title": "Static PNG renders of sampled Pre-Process tokens",
        "url": "https://media-proxy.artblocks.io/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000.png",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "downloaded PNG https://media-proxy.artblocks.io/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000.png",
          "same proxy pattern for the other sampled token IDs used in visualObservations"
        ]
      },
      {
        "id": "S10",
        "author": "Art Blocks",
        "title": "Live generator renderer for Pre-Process",
        "url": "https://generator.artblocks.io/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/383000000",
        "publicationDate": null,
        "accessedAt": "2026-09-19",
        "accessMethod": "https-get",
        "accessOutcome": "inspected",
        "evidenceLocators": [
          "generator.artblocks.io live document for token 383000000",
          "used to distinguish preview PNG halt-state from the original renderer"
        ]
      }
    ]
  },
  "suppliedRevision": {
    "batch": "ab500-essays-batch-01",
    "date": "2026-09-20",
    "sourceFile": "pre-process-by-casey-reas.md",
    "sourceSha256": "c053338172653e3e02830e573a8e3bdcc5799dddf1740f02e6a865ac7741525b",
    "sourceCount": 12,
    "imageCount": 6,
    "headerLine": "Art Blocks Curated, project 383 · 120 outputs · minted 30 November 2022 · CC BY-NC 4.0",
    "author": null,
    "usage": null,
    "draftNoticeRemoved": true,
    "editorialSynthesis": "Compared the supplied revision with the earlier essay. Retained the fuller technical and historical account, integrated useful visual interpretation where it added substance, and preserved unresolved research questions. Generic prior boilerplate was not retained."
  },
  "presentation": {
    "editionSize": 120,
    "maximumEdition": 120,
    "mintDate": "2022-11-18T19:02:47+00:00",
    "mintDateMeaning": "first indexed mint",
    "mintDateLabel": "First mint",
    "artwork": null
  },
  "observationImages": [],
  "publication": {
    "date": "2026-09-20",
    "url": "https://ab5d.xyz/series/pre-process-by-casey-reas/",
    "authorization": "Phil requested live publication of the supplied revision on 2026-09-20.",
    "reviewSnapshot": "/docs/series-essays/production/pre-process-by-casey-reas/record.json",
    "unresolvedResearchQuestionsRetained": true,
    "revisionDate": "2026-09-20"
  }
}
