{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 33,
    "slug": "empyrean-by-generative-artworks",
    "title": "Empyrean",
    "artistCredit": "Generative Artworks",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/generative-artworks/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-17",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "invocations",
      "topic": "mint",
      "value": 500,
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "max_invocations",
      "topic": "mint",
      "value": 500,
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "first_token_minted_at",
      "topic": "mint",
      "value": "2021-03-21T16:25:47+00:00",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "second_token_minted_at",
      "topic": "mint",
      "value": "2021-03-22T04:06:27+00:00",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "activated_at",
      "topic": "mint",
      "value": "2021-03-22T02:11:41+00:00",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "completed_at",
      "topic": "mint",
      "value": "2021-04-24T16:31:19+00:00",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "start_datetime",
      "topic": "mint",
      "value": "2021-03-22T04:06:27+00:00",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "price_per_token_in_wei",
      "topic": "mint",
      "value": "60000000000000000",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "opening-price",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-17",
      "sourceIds": [],
      "status": "unknown",
      "note": "Current price setting is not historical launch-price evidence."
    },
    {
      "id": "original-maximum",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-17",
      "sourceIds": [],
      "status": "unknown",
      "note": "Current maximum is not launch-era announcement evidence."
    },
    {
      "id": "mint-allocations",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-17",
      "sourceIds": [],
      "status": "unknown",
      "note": "Public, reserved and administrative mints not independently separated."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S01",
        "S09"
      ],
      "note": "Current reported artwork label; full historical terms not reconstructed.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-17",
      "sourceIds": [
        "S02"
      ],
      "note": "No separate artist-code reuse grant identified.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "LGPL-2.1",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt",
        "observedAt": "2026-09-17",
        "sourceIds": [
          "S04"
        ],
        "note": "Tagged p5.js 1.0.0 dependency licence, separate from artist code.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Empyrean makes a circle into a field of possible connections. In some outputs, a dense accumulation of pale straight lines almost fills that field; in others, a few curves and coloured nodes leave much of it empty. The dark ground gives each stroke a distinct presence, but the picture is not simply a diagram of its ingredients. Crossings accumulate into areas of brightness, while gaps make the same circular territory feel open or congested. The four works examined here range from tightly woven monochrome structures to a sparse magenta constellation.[^S05][^S06][^S07][^S08]\n\nGenerative Artworks released the 500-work project through Art Blocks Factory in March 2021. The platform describes an exploration of a highest heaven associated with a fifth element and identifies the series as interactive and animated. Those terms establish a conceptual premise and available behaviours, not a claim that every output continuously changes on its own. The inspected early examples have different visual structures but no indexed automatic colour animation or noise motion. Their live programs still accept interactions.[^S01][^S02]\n\nThe distinction matters aesthetically. A drawing that remains still can invite prolonged inspection of its internal relationships, while the executable work allows the viewer to alter its presentation. Neither encounter exhausts the series. The [Generative Artworks dossier](https://ab5d.xyz/artists/generative-artworks/) provides a wider account of the duo's practice; this essay concentrates on the particular rules and visible results of Empyrean.[^S02][^S05][^S06]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "In an interview published by Rantum in July 2021, the artists say the project originally had the working name CircleWeb. They encountered the name Empyrean while reading Greek philosophy and felt it suited an already developed image of fluid, amorphous forms. The account places the visual experiment before the final title. It does not describe a program mechanically translating a philosophical text.[^S03]\n\nAlex and Stephen describe beginning their collaboration as college roommates studying computer science. Their generative-art activity began in June 2020 with an ambition for individually different printed shirts. Instagram posting and a later encounter with Art Blocks followed. They developed projects by exchanging ideas, discussing revisions and refining features together.[^S03]\n\nTheir discussion of the subsequent Enchiridion distinguishes its more rigid architectural forms from Empyrean. This is useful evidence of how the artists framed the earlier project, but it should not flatten its actual variety: the straight-line outputs examined here can be emphatically angular. The contrast operates at the level of their stated direction, not as a rule that every Empyrean must look soft.[^S03][^S05][^S06]\n\nThe working title remains a productive way to approach the drawings. The circle supplies a shared limit, and the web is a set of relationships within it. Yet the four examples show how readily that limit can recede. A visible border makes containment explicit; without it, the accumulated endpoints may imply a boundary, or a sparse arrangement may barely suggest one. The title names a field that the individual picture can reveal or conceal.[^S02][^S05][^S06][^S07][^S08]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The complete 6,143-character indexed script was inspected. It uses p5.js 1.0.0 and creates a square canvas from the smaller viewport dimension. Thirty-two pairs of hexadecimal characters are extracted from the token hash and converted into parameter values. A seed derived from an initial portion of that hash drives the program's bitwise pseudorandom sequence and seeds the library's noise function. These are repeatable inputs to the initial construction, rather than fresh external choices made for each line.[^S01][^S02]\n\nA parameter chooses a line count within a range bounded by twenty and two hundred. Another supplies a set of candidate positions around a circle. Those positions are calculated with sine and cosine, providing a common perimeter even where no outline is drawn. The program can start successive lines on that perimeter, at points sampled within the circular region, or at the preceding line's endpoint. In the chained mode, the final connection returns to the first starting point.[^S02]\n\nEndpoints can likewise come from the ring or from sampled interior positions. The difference changes more than density. Connections between perimeter points repeatedly cross the interior and make the enclosing circle legible. Interior points can leave isolated ends distributed through the field, allowing the result to feel scattered. The script does not need a different basic canvas to produce these different spatial readings.[^S02]\n\nThree drawing modes use straight lines or cubic Bézier curves. For a curve, two intermediate control points are generated along and around the span between its endpoints. Rejection conditions keep those controls within the permitted square or circular region, depending on the mode. The controls govern the bend without necessarily appearing as marks. A curve can therefore bow away from a direct connection while its visible endpoints remain tied to the same underlying selection procedure.[^S02]\n\nThe endpoint vocabulary includes circles, squares, triangles, crosses and asterisk-like marks, as well as no node. Size is affected by noise sampled at the point, and some configurations rotate nodes through another noise mapping. Fill can be enabled for these shapes. A node is consequently not a generic dot added after the composition: its shape, scale and placement can compete with the connecting stroke, as the squares in #10 and discs in #20 demonstrate.[^S02][^S07][^S08]\n\nColour can be greyscale, restricted to a hue range or drawn from a wider range. Values are stored alongside the generated lines. Optional temporal modes rotate the colour assignments, replace colours at intervals or vary hue through an oscillating calculation. Noise motion is a separate option that changes coordinates over time and gradually increases its displacement. These mechanisms explain why colour animation, geometric movement and interaction should be documented separately.[^S02]\n\nThe draw loop clears the background and redraws the composition at a requested thirty frames per second. A running loop does not by itself guarantee visible change: an output without the relevant temporal options can redraw the same image. In the four early-edition records, the motion flag is false and colour animation is absent. Their observed stillness is consistent with those records, rather than evidence that the renderer failed to start.[^S02][^S05][^S06][^S07][^S08]\n\nThe keyboard introduces another layer of state. Delete removes lines into a temporary stack, and Space restores them. Left and right arrows adjust rotational velocity; W, A, S and D move the composition. N toggles the progression of noise and colour behaviour. R resets several presentation values, including rotation, offsets and stored colours, but its handler does not restore removed lines. These descriptions come from code inspection; this review does not claim to have validated every keyboard behaviour on every device.[^S02]\n\nOne implementation detail warns against reading names as guarantees. The width used to perturb curve controls is chosen before the line-style variable receives its selected value, so an apparent style-specific condition at that point does not operate as its name might suggest. The essay follows execution order rather than treating variable names as documentation. No full rarity calculation or cross-browser equivalence test has been performed.[^S02]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "Art Blocks gives 22 March 2021 as the release date. The index records a first token on 21 March at 16:25:47, followed by a second token and scheduled start on 22 March at 04:06:27. Its activation value is earlier that day, at 02:11:41. Completion is recorded on 24 April at 16:31:19. The source record retains the full timestamps and offsets. These fields describe distinct events and should not be collapsed into one supposedly exact launch moment.[^S01]\n\nThe current record reports 500 invocations against a maximum of 500 and a price setting of 0.06 ETH. The price setting has not been independently established here as the original public price. Nor does the current maximum prove the complete history of announced edition limits. Artist allocations, reserved mints, ordinary purchases and any configuration changes require additional historical evidence.[^S01]\n\nThe interval between release and completion spans several weeks. It is not presented as an audited public sellout duration, because the underlying transactions have not been classified. The July interview records the artists' recollection of a positive response to their first release, but that testimony cannot substitute for transaction-level evidence about who minted, when they paid or which sale conditions applied.[^S01][^S03]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The project record currently labels the artwork CC BY-NC 4.0. It contains no terms URL, so the corresponding Creative Commons deed is supplied separately. The deed permits sharing and adaptation under attribution, change-notice and noncommercial conditions. This is the observed label, not a reconstructed history of every earlier licence statement.[^S01][^S09]\n\nThe p5.js 1.0.0 repository includes LGPL version 2.1 for the library. That record is separate from a reuse grant for the artists' own program, which was not found in the inspected material. The indexed script was analysed but is not republished here. AB5D's CC0 dedication applies to the original essay prose; artwork, artist code and dependency rights retain their separate identities.[^S02][^S04]"
    },
    {
      "id": "examples",
      "heading": "Close reading of four outputs",
      "bodyMarkdown": "Editions 0, 1, 10 and 20 were selected in advance as a small early-edition comparison. Their full identifiers are 33000000, 33000001, 33000010 and 33000020 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. All four canonical renderers were inspected. This sample supports comparison of particular works, not claims about how frequently their properties occur across the edition.[^S05][^S06][^S07][^S08]\n\nIn #0, a fine circular outline contains many grey and white straight connections. The near-charcoal ground remains visible through a network of differently sized polygonal openings. Some long diagonals seem to cut across the whole field; shorter chords crowd the perimeter. The border gives the accumulation a definite edge, so the eye can alternate between following an individual line and seeing one rounded object. Brightness comes from both the assigned greys and the local concentration of crossings.[^S05]\n\nIn #1, the blacker ground and dense network make the image more insistent. There is no separate border in the indexed features, yet the endpoints collectively establish a rounded limit. Small angular projections around that limit give it a rougher edge than #0. The interior contains both crowded knots and surprisingly open dark pockets. Its coherence depends on the distribution of connections rather than on an enclosing contour drawn independently of them.[^S06]\n\nIn #10, the web thins dramatically. A clearly drawn circle is crossed by comparatively few long strokes, while outlined squares gather around its perimeter. Several overlap at upper left and lower right, forming local clusters that interrupt the circle's continuity. These squares change the balance between line and endpoint: the places from which connections begin become substantial shapes. The dark middle can now feel like an open space between peripheral events rather than the principal site of accumulation.[^S07]\n\nIn #20, magenta curves and filled discs replace the pale straight-line mesh. A large disc near the top and another near the bottom establish a loose vertical emphasis; smaller circles gather at lower right, while curved strands cross the centre. The absent border allows this arrangement to read as suspended marks rather than a sealed circular object. Its sparseness makes differences of node size and curvature more conspicuous. It shares the system's constraints while withholding the dense web that #0 initially makes seem definitive.[^S08]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Empyrean's achievement lies in the range of spatial readings produced by a common field of connections. A circle can become an enclosing object, an implied perimeter, a scaffold for nodes or an almost invisible constraint. The four examples make those differences available without requiring a rarity ranking. Looking across them reveals how boundary, density and endpoint treatment cooperate to give each drawing its particular balance.[^S02][^S05][^S06][^S07][^S08]\n\nThe executable form adds a further question: how much of a composition belongs to its initial state, and how much to the viewer's encounter with its controls? Preserving both the opening image and the program keeps that question available. The title supplies an imaginative frame, but the work remains assessable through specific lines, curves, gaps and changes of state.[^S02]\n\nUnresolved research questions:\n\n- Recover launch-era pricing and edition-limit announcements and classify mint transactions.\n- Locate dated prototypes and fuller project-specific development records.\n- Establish any separate artist-code grant and historical artwork terms.\n- Compare the indexed script with a pinned chain retrieval and verify all controls across supported environments.\n- Expand live inspection to automatically moving and colour-changing outputs beyond this early sample."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000000",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Bordered grey-white chord mesh on charcoal, polygonal gaps and dense perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000000.mp4",
      "indexedFeatures": {
        "Size": "Normal",
        "Moves": "False",
        "Border": "True",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Normal",
        "Line amount": "Normal",
        "Color scheme": "Grayscale",
        "Nodes filled": "N/A",
        "Point amount": "High",
        "Node rotation": "N/A",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "Use previous endpoint",
        "Possible node size": "N/A",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "N/A"
      },
      "mintedAt": "2021-03-21T16:25:47+00:00",
      "mintTransactionHash": "0xca00a95d4bf1b2bde5c2ed24a912cc66ec535ba6edc49cf9aada6501f0f4c5b7"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000001",
      "sourceIds": [
        "S06"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Denser pale mesh on black, no independent border, rough implied round perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000001.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "False",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Normal",
        "Line amount": "High",
        "Color scheme": "Grayscale",
        "Nodes filled": "N/A",
        "Point amount": "Normal",
        "Node rotation": "N/A",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "N/A",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "N/A"
      },
      "mintedAt": "2021-03-22T04:06:27+00:00",
      "mintTransactionHash": "0xdc61000856e92ff41872945acb6479d180b37ffcfda0675eff6de4490feca246"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000010",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Sparse straight chords with circle border and overlapping outlined squares around perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000010.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "True",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Just start point",
        "Line amount": "Low",
        "Color scheme": "Grayscale",
        "Nodes filled": "False",
        "Point amount": "Normal",
        "Node rotation": "False",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "Large",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "Square"
      },
      "mintedAt": "2021-03-22T18:02:50+00:00",
      "mintTransactionHash": "0xbeda43acbce839a59bfad2c00bdec7b080ccede56d0472e6afc5cd6a41c65437"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000020",
      "sourceIds": [
        "S08"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Magenta curves and filled discs, sparse open field, no enclosing border.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000020.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "False",
        "Filled": "False",
        "Line style": "Neat loopy",
        "Node style": "Just start point",
        "Line amount": "Low",
        "Color scheme": "Monochromatic",
        "Nodes filled": "True",
        "Point amount": "Normal",
        "Node rotation": "False",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "True",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "Medium",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "Circle"
      },
      "mintedAt": "2021-03-22T18:06:14+00:00",
      "mintTransactionHash": "0x07701312ecf2cc5c6b39dde695b5c93e4b4f468570b92d83435415a3ccc1c330"
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (@maxand98), commissioning user",
    "agent": "OpenAI Codex",
    "model": "gpt-6-astra",
    "modelVersion": null,
    "tools": [
      "Art Blocks Hasura GraphQL",
      "Web source reading",
      "Static original-script inspection",
      "Canonical live-renderer visual inspection"
    ],
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking.",
    "originalProseLicense": "CC0-1.0",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "gpt-6-astra",
      "displayName": "GPT-6 Astra",
      "scope": "Empyrean research, manuscript and source package, plus Galaxiss presentation and production verification.",
      "essayCount": 1,
      "perEssayUsage": null,
      "usage": {
        "inputTokens": 5644996,
        "cachedInputTokens": 5593984,
        "outputTokens": 8682,
        "reasoningOutputTokens": 469,
        "totalTokens": 5653678
      },
      "usageSummary": "across Empyrean research and drafting, plus Galaxiss presentation and publication checks.",
      "usageDetail": "Measured shared interval including cached input. Preliminary Empyrean research may be included in preceding shared intervals and is not counted again here. This is not an isolated per-essay cost. Later deployment excluded.",
      "accounting": "Cached input is included in input tokens; reasoning output is included in output tokens. Total is input plus output.",
      "source": "Local Codex session cumulative telemetry difference between recorded boundaries",
      "baselineAt": "2026-09-17T12:40:20.584Z",
      "recordedAt": "2026-09-17T13:01:40.274Z"
    }
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "projects_metadata.script filtered by slug empyrean-by-generative-artworks",
    "sha256": "1f51945725d2e205ead013f37787e710907fec69c4e55ea865d0ab11bd0fbd08",
    "retrievedAt": "2026-09-17",
    "method": "Indexed script static inspection",
    "executed": false,
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "historical-evidence",
      "status": "pending",
      "reviewer": "Phil",
      "reason": "Historical price, allocation and rights gaps explicitly qualified; indexed script not pinned to chain block."
    }
  ],
  "presentation": {
    "editionSize": 500,
    "maximumEdition": 500,
    "mintDate": "2021-03-21T16:25:47+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "token_id": "33000419",
      "invocation": 419,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000419.mp4",
      "live_view_url": "/series/empyrean-by-generative-artworks/artwork.html",
      "features": {
        "Size": "Normal",
        "Moves": "False",
        "Border": "False",
        "Filled": "True",
        "Line style": "Straight",
        "Node style": "Normal",
        "Line amount": "Normal",
        "Color scheme": "Grayscale",
        "Nodes filled": "N/A",
        "Point amount": "Low",
        "Node rotation": "N/A",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "True",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "Random",
        "Possible node size": "N/A",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "N/A"
      },
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "chainId": 1,
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000419",
      "mode": "live",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "displayBasis": "Canonical held edition 419 inspected. No automatic motion or colour animation indexed; original interactive renderer loads automatically.",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000419",
      "interactionNote": "This edition is still at rest. Focus the artwork to use its original keyboard controls."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000000",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Bordered grey-white chord mesh on charcoal, polygonal gaps and dense perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000000.mp4",
      "indexedFeatures": {
        "Size": "Normal",
        "Moves": "False",
        "Border": "True",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Normal",
        "Line amount": "Normal",
        "Color scheme": "Grayscale",
        "Nodes filled": "N/A",
        "Point amount": "High",
        "Node rotation": "N/A",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "Use previous endpoint",
        "Possible node size": "N/A",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "N/A"
      },
      "mintedAt": "2021-03-21T16:25:47+00:00",
      "mintTransactionHash": "0xca00a95d4bf1b2bde5c2ed24a912cc66ec535ba6edc49cf9aada6501f0f4c5b7",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000001",
      "sourceIds": [
        "S06"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Denser pale mesh on black, no independent border, rough implied round perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000001.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "False",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Normal",
        "Line amount": "High",
        "Color scheme": "Grayscale",
        "Nodes filled": "N/A",
        "Point amount": "Normal",
        "Node rotation": "N/A",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "N/A",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "N/A"
      },
      "mintedAt": "2021-03-22T04:06:27+00:00",
      "mintTransactionHash": "0xdc61000856e92ff41872945acb6479d180b37ffcfda0675eff6de4490feca246",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000010",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Sparse straight chords with circle border and overlapping outlined squares around perimeter.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000010.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "True",
        "Filled": "False",
        "Line style": "Straight",
        "Node style": "Just start point",
        "Line amount": "Low",
        "Color scheme": "Grayscale",
        "Nodes filled": "False",
        "Point amount": "Normal",
        "Node rotation": "False",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "False",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "Large",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "Square"
      },
      "mintedAt": "2021-03-22T18:02:50+00:00",
      "mintTransactionHash": "0xbeda43acbce839a59bfad2c00bdec7b080ccede56d0472e6afc5cd6a41c65437",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "33000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000020",
      "sourceIds": [
        "S08"
      ],
      "selectionNote": "Preselected editions 0, 1, 10 and 20; small early-edition comparison, not representative sampling.",
      "observationNote": "Magenta curves and filled discs, sparse open field, no enclosing border.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000020.mp4",
      "indexedFeatures": {
        "Size": "Small",
        "Moves": "False",
        "Border": "False",
        "Filled": "False",
        "Line style": "Neat loopy",
        "Node style": "Just start point",
        "Line amount": "Low",
        "Color scheme": "Monochromatic",
        "Nodes filled": "True",
        "Point amount": "Normal",
        "Node rotation": "False",
        "Color Animation": "N/A",
        "Noise magnitude": "N/A",
        "Random endpoint": "True",
        "Noise resolution": "N/A",
        "Max node rotation": "N/A",
        "Start point style": "On circle edge",
        "Possible node size": "Medium",
        "Endpoint node style": "N/A",
        "Color animation speed": "N/A",
        "Start point node style": "Circle"
      },
      "mintedAt": "2021-03-22T18:06:14+00:00",
      "mintTransactionHash": "0x07701312ecf2cc5c6b39dde695b5c93e4b4f468570b92d83435415a3ccc1c330",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/33000020"
    }
  ],
  "publication": {
    "date": "2026-09-17",
    "url": "https://ab5d.xyz/series/empyrean-by-generative-artworks/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/empyrean-by-generative-artworks/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
