{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 83,
    "slug": "panelscape-by-paolo-tonon",
    "title": "Panelscape 🅰🅱",
    "artistCredit": "Paolo Tonon",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/paolo-tonon/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "edition-size",
      "topic": "work-context",
      "value": 525,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified",
      "note": "Indexed invocations 525 against max_invocations 525; page states a fixed edition of 525."
    },
    {
      "id": "project-id",
      "topic": "work-context",
      "value": 83,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "On-chain project id. The AB5D atlas position 85 is a catalogue index, not this."
    },
    {
      "id": "title-characters",
      "topic": "work-context",
      "value": "Panelscape 🅰🅱",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": "The enclosed A and B are part of the canonical title in both the index and the page heading. Preserve rather than transliterate."
    },
    {
      "id": "script-bytes",
      "topic": "construction",
      "value": 2615,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Single script fragment. The smallest artist script in this batch."
    },
    {
      "id": "panel-count-range",
      "topic": "construction",
      "value": "400 to 599",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S05"
      ],
      "status": "verified",
      "note": "Integer truncation of the half-open random range 400 to 600. Count is token-dependent and viewport-independent."
    },
    {
      "id": "shape-vocabulary",
      "topic": "construction",
      "value": "three quadrilateral drawing branches; two reachable size multipliers",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Base and doubled dimensions are reachable; the tripling branch requires an unreachable selector greater than 6. Exact shape boundaries 1 and 2 are excluded by comparisons and are not produced by the generator’s thousandth-step outputs multiplied by three."
    },
    {
      "id": "animation-mechanism",
      "topic": "construction",
      "value": "alpha accumulator changes by 15 each frame; requested rate 5 fps",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S05"
      ],
      "status": "verified",
      "note": "Direction reverses after exceeding ceiling or falling below zero. Overshoot is permitted. Background is not cleared in draw."
    },
    {
      "id": "steady-state",
      "topic": "examples",
      "value": "Submitted short-window luminance measurement only",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S05"
      ],
      "status": "reported",
      "note": "Claude reported luminance between 135.6 and 138.9 over 10.5 seconds. Not independently reproduced and does not establish long-term equilibrium. Lower alpha does not erase previous marks."
    },
    {
      "id": "viewport-dependence",
      "topic": "examples",
      "value": "composition is recomputed from the live viewport dimensions",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S06",
        "S02"
      ],
      "status": "verified",
      "note": "Verified from complete code inspection. Claude’s precise viewport measurements remain submitted evidence, not independently repeated measurements."
    },
    {
      "id": "colour-names-are-platform-artefact",
      "topic": "examples",
      "value": "333 distinct background and 326 distinct stroke colour names across 525 tokens",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S04",
        "S02"
      ],
      "status": "reported",
      "note": "Submitted edition counts. Inspected artist code contains RGB values but no colour names. The naming procedure has not been inspected; its provenance is not established."
    },
    {
      "id": "page-omits-animated-badge",
      "topic": "work-context",
      "value": "project page shows no animated label",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02",
        "S05"
      ],
      "status": "verified",
      "note": "The work is animated and display_static is correctly false in the index, but the badge shown on other animated projects in this batch is absent from this page."
    },
    {
      "id": "trait-indexing-gap",
      "topic": "examples",
      "value": "three tokens carry empty trait objects",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S04"
      ],
      "status": "reported",
      "note": "Submitted sweep identifies tokens 83000135, 83000163 and 83000337 with empty traits. No independent claim about their runtime success."
    },
    {
      "id": "first-token-minted",
      "topic": "mint",
      "value": "2021-06-07T06:17:10+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified",
      "note": "About thirty-two hours before activation, consistent with a proof. Calendar date 7 June 2021 in UTC."
    },
    {
      "id": "activated",
      "topic": "mint",
      "value": "2021-06-08T14:42:18+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Distinct from first mint and from any public opening."
    },
    {
      "id": "second-token-minted",
      "topic": "mint",
      "value": "2021-06-08T18:33:18+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "start_datetime carries the same value. This timestamp is what the project page renders as 9 June 2021 in a UTC+10 browser; in UTC it is 8 June."
    },
    {
      "id": "completed",
      "topic": "mint",
      "value": "2021-07-23T03:30:27+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Calendar date 23 July 2021 in UTC."
    },
    {
      "id": "second-to-complete-interval",
      "topic": "mint",
      "value": "44 days 8 hours 57 minutes 9 seconds",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "inferred",
      "note": "Arithmetic between named index fields. Does not establish the public opening or classify intervening mints."
    },
    {
      "id": "current-price",
      "topic": "mint",
      "value": "100000000000000000 wei (0.1 ETH)",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Currently configured price on a completed project. Not proof of the price paid at mint."
    },
    {
      "id": "ab5d-holdings",
      "topic": "work-context",
      "value": "five tokens",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03",
        "S09"
      ],
      "status": "verified",
      "note": "Invocations 103, 142, 255, 281 and 301, all held by 0xdd19308a9731cdecb67e0d80ca6823394208c045. The largest AB5D holding of any project in this batch."
    },
    {
      "id": "audio",
      "topic": "examples",
      "value": "No audio mechanism found in inspected artist script",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S05",
        "S02"
      ],
      "status": "verified",
      "note": "Coordinator did not audition sound. Absence of audio/video DOM elements alone is not proof of silence."
    },
    {
      "id": "interaction",
      "topic": "examples",
      "value": "none",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "status": "verified",
      "note": "The script registers no event listeners and the page documents no controls."
    },
    {
      "id": "artist-record-gap",
      "topic": "conception",
      "value": "Artist portfolio page located; separate development history not verified",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S12"
      ],
      "status": "unknown",
      "note": "Dedicated Panelscape page repeats project statement and links examples. Original claim of no website project material was incorrect."
    },
    {
      "id": "title-meaning-unresolved",
      "topic": "conception",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S11"
      ],
      "status": "unknown",
      "note": "Nothing located explains what the enclosed A and B in the title denote. Not guessed at."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "NFT License",
      "category": "custom",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01",
        "S08"
      ],
      "note": "Index reports NFT License with no terms link. Inspected project and artist portfolio material did not identify an operative versioned licence document. Preserved as a reported label, not an independently verified permission grant.",
      "unresolvedConflicts": [
        "The same contract carries 'NFT License', ' NFT License' with a leading space, 'NFT License 2.0' and 'NFT 2.0' as separate strings, and another project in this same batch, Orthogone, carries 'NFT License 2.0' where this one carries 'NFT License'. Whether the version difference is a deliberate choice or a typing difference is not determinable from the field.",
        "The artist's website carries the line 'Paolo Tonon © 2017-2026'. That is a website copyright assertion, not a statement about this artwork's licensing, and is recorded only so a later reviewer does not mistake it for one."
      ]
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02",
        "S01"
      ],
      "note": "No licence statement accompanies the artist script. Fully on-chain storage establishes readability, not redistribution rights.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "component": "p5.js",
        "reportedLabel": "LGPL-2.1",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S02",
          "S13"
        ],
        "note": "Versioned p5.js 1.0.0 repository licence independently inspected. Separate from artist-code and artwork permissions. Schema category custom includes standard software licences."
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Panelscape 🅰🅱 is Art Blocks project 83 on the contract at `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`, on Ethereum mainnet, credited to Paolo Tonon by both the index and the live project page. The indexed record returns 525 invocations against a maximum of 525, a declared dependency of `p5@1.0.0`, an aspect ratio of 1.1, a curation status of factory, and a static display flag of false [^S02]. The AB5D atlas position 85 is a catalogue index and is not the project ID.\n\nTwo of the title's characters are enclosed alphanumerics, the enclosed letters A and B, and they are part of the canonical name in both the index and the page heading [^S01][^S02]. They should be preserved rather than transliterated.\n\nThe platform records a Factory edition of 525. Tonon’s accompanying statement links an imagined space beyond ordinary reality with the variability of lived experience, and identifies changing panel opacity as the work’s mechanism. [^S01][^S02]\n\nTwo platform metadata problems attach to this project and are worth stating at the top because they affect anyone reading the page rather than the index.\n\nThe first is that the page does not label the work as animated. It is animated: the sketch runs at five frames per second and every panel's opacity oscillates continuously, with visible changes independently observed in the original renderer; five frames per second is the requested rate in code [^S05]. The indexed `display_static` flag is correctly false [^S02], but the badge that the platform shows on other animated projects in this same batch is absent here [^S01]. The original renderer is a more useful guide to its temporal behaviour than a badge alone.\n\nThe second is the release date, which is a timezone artefact. Read from a machine in UTC+10 the page says \"Released on 9 June 2021\" [^S01]. The underlying second-mint timestamp is 2021-06-08T18:33:18Z, which is 8 June in UTC, and activation was earlier the same UTC day [^S02]."
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "Tonon frames Panelscape as an imagined space beyond ordinary reality, relating its changes to the variability of human experience. The statement appears on both Art Blocks and his own portfolio page. Those are two locations for the same text, not independent accounts of development. Its explicit reference to changing panel alpha connects the metaphor to an inspectable operation in the program. [^S01][^S12]\n\nThe artist’s website has a portfolio index and a dedicated Panelscape page linking to the collection and examples numbered 0 through 3. The portfolio supplies an additional primary location for the work, but its repeated statement does not establish a sequence of prototypes or a development timeline. [^S11][^S12]\n\nNo dated development repository or account of earlier experiments has yet been verified for this essay. The meaning of the enclosed A and B in the title also remains unexplained in the inspected statement. These are limits of the research, not proof that no such documentation exists. [^S01][^S12]\n\nThe program establishes a fixed geometric vocabulary and a continuing change in the opacity used to repaint it. Interpreting this as a tension between stable structure and shifting perception is a reading of the work, rather than an additional statement of the artist’s intention. The distinction matters because the physical analogy of cube faces is supplied by their arrangement; the code does not model a three-dimensional object. [^S02]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The artist script was retrieved from the indexed project record by an HTTP POST to the public GraphQL endpoint, filtered on the exact slug and corroborated against the contract address and project ID returned in the same response [^S02]. It is 2,615 bytes and hashes to SHA-256 `09ac817c226d888a0b4f1b5a9f91a884fae811bf01094bc336cd589770c9a1ae`. The record reports a script count of 1 and the single `scripts` row reproduces the `script` field exactly. This was an index retrieval, not a direct read of contract storage, and no block reference was pinned. The whole program was read; what follows describes it without reproducing it.\n\nThis is the smallest script in the batch so far and it does one thing. Randomness comes from a compact xorshift generator seeded by parsing the first sixteen characters of `tokenData.hash`, including its `0x` prefix (fourteen hexadecimal digits), with decimals produced by taking the state modulo one thousand and dividing by one thousand. That generator is byte for byte identical to the ones in Breathe You and PrimiDance, two other projects in this batch by two other artists, which across three independent releases is strong support for a shared community template circulating in 2021. That the code is shared is a direct observation; that it came from a template is an inference and is flagged as one.\n\nSetup runs once. It creates a canvas at the browser window's own width and height, computes a panel edge length as the larger viewport dimension divided by a draw between 10 and 20, draws an integer panel count from 400 through 599, and derives the isometric height as the edge length times the square root of three over two. It then draws six numbers between 0 and 250, three for the background colour and three for the stroke, sets the stroke weight to an eightieth of the edge length, translates the origin up and left by one isometric step, and requests a frame rate of five.\n\nThe population loop runs once per panel and draws eight values for each: an x and a y, which are immediately snapped down to the nearest multiple of the isometric height and the edge length respectively, so every panel lands on a lattice; three colour channels between 0 and 255; an alpha ceiling between 0 and 255; a size selector between 0 and 7; and a shape selector between 0 and 3. The integer size selector can be 0 through 6. Values 4 and 5 double the panel dimensions; the others keep the base size. A branch for values greater than 6 would triple them, but this selector cannot reach it. The presence of a tripling branch in the source is therefore not evidence of triple-sized panels in the outputs. The shape selector chooses between three quadrilaterals: two are the left and right vertical faces of an isometric cube, and the third is the top face, a rhombus spanning two isometric steps. The comparisons exclude exact values 1 and 2, but neither boundary is produced by multiplying this generator’s thousandth-step outputs by three. There is no rotation branch. The entire visual vocabulary of the work is those three shapes on a fixed lattice.\n\nThe draw loop does nothing but repaint every panel, and it never clears the background. Each panel carries an alpha accumulator that changes by fifteen per frame. Direction reverses after the value exceeds its selected ceiling, and reverses again after it falls below zero. The accumulator can overshoot both thresholds; it is not clamped by this code. All panels begin with the same accumulator and direction. They initially rise together; different thresholds can later produce different reversal times. Panels with different ceilings can nevertheless share a cadence because the accumulator moves in fixed increments. Independent selection does not mean every panel has a distinct phase. Since the background is never repainted, each frame lays translucent quadrilaterals over the accumulated result of every previous frame.\n\nOne consequence of the setup deserves emphasis because it affects how the work should be displayed. Every panel position is drawn against the live viewport dimensions, and the panel size is derived from the larger viewport dimension. The same token therefore composes itself differently in differently shaped windows. This is not a matter of cropping or scaling a fixed image; the lattice spacing and every panel's coordinates genuinely differ. Claude reports a viewport comparison in the submitted observations. Independent runtime verification remains pending; the viewport dependence described here is established by code inspection.\n\nThese findings come from independent reading of the complete indexed program, not from a statistical survey of the edition. [^S02]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The indexed record separates four events [^S02]. The first token was minted at 2021-06-07T06:17:10Z. The project was activated at 2021-06-08T14:42:18Z. The second token was minted at 2021-06-08T18:33:18Z, and `start_datetime` carries that same value. The project completed at 2021-07-23T03:30:27Z. In UTC those are 7 June, 8 June, 8 June and 23 July 2021.\n\nThe roughly thirty-two hour gap between the first mint and activation is consistent with a proof minted ahead of the sale, and the token record for invocation 0 confirms the timestamp [^S03]. The current owner of that token is not the artist address on the project, so present ownership establishes nothing about the original recipient. No source located here establishes how the 525 invocations were divided between proofs, any presale and public minting.\n\nThe interval from the second indexed mint to completion is 44 days, 8 hours, 57 minutes and 9 seconds, computed from the two indexed timestamps and covering invocations 1 through 524. It is not presented as a public sale duration, because the index does not establish when minting opened to the public and because `start_datetime` duplicates `second_token_minted_at` rather than marking an opening independently.\n\nThe record reports a price of 100000000000000000 wei, that is 0.1 ETH [^S02], recorded as the currently configured value rather than as the price paid at mint; no primary announcement of an original price was located.\n\nThe five AB5D holdings discussed below were minted between 2021-07-16 and 2021-07-22 [^S03], that is in the final week of a mint that ran for six weeks."
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The indexed record reports a licence label of \"NFT License\" for the artwork, with a null link to the licence [^S02]. The live project page publishes no licence statement at all; its expanded details panel lists edition size, artist website, library, aspect ratio, blockchain, token standard, contract type and attribute names, and nothing about copyright [^S01].\n\nThe label is not a document, and on this contract it is not even a stable name. A census of the `license` field across all 359 projects returns 34 distinct strings [^S08]. Within the NFT License family alone the contract carries \"NFT License\", \" NFT License\" with a leading space, \"NFT License 2.0\" and \"NFT 2.0\". Another project in this very batch, Orthogone, carries \"NFT License 2.0\" where this one carries \"NFT License\" [^S08]. Whether that difference records a deliberate choice of a different version or is simply how two artists typed into an unvalidated text box is not determinable from the field. Only 87 of the 359 projects carry any licence link at all.\n\nThe finding is therefore that the artwork's rights are reported under a bare, version-ambiguous label with no operative terms document published by either the platform or the artist, and that the version question is live rather than academic, since the NFT License has more than one version in circulation on this same contract. The label is preserved exactly as reported, recorded as reported rather than verified, categorised as custom, and the missing terms are raised as an editorial exception.\n\nOne further observation belongs here and is deliberately kept narrow. The artist's website carries the line \"Paolo Tonon © 2017-2026\" [^S11]. That is a copyright assertion covering the website, made by the artist, in the present. It is not a statement about the licensing of this artwork, it does not conflict with the indexed label, and it is recorded only so that a later reviewer who finds it does not mistake it for one.\n\nCode rights are unknown and kept separate. No licence statement accompanies the script, and the page's description of the contract as fully on-chain establishes readability, not permission. The p5.js 1.0.0 repository includes the GNU Lesser General Public License, version 2.1. This dependency record does not establish a reuse grant for Tonon’s artist script. [^S13] Ownership of a token is not an artwork licence. No conflicting rights statement was found, so no conflict is recorded; what is recorded is an absence."
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "The comparison uses previews of editions 0, 10, 20 and 103, together with an original rendering of #103, whose canonical token page provides its public identifier. [^S10] The coordinator viewed the four previews fitted to the browser viewport and observed #103 changing over successive views. The submitted viewport experiment is distinguished below from those independent observations. [^S03][^S07][^S05]\n\nThe previews share a dense isometric vocabulary: small diamonds and parallelograms repeatedly suggest the faces of cubes. Overlapping translucent faces complicate that suggestion, since one apparent solid can be read as several flat pieces. The doubled panels cross the finer divisions instead of replacing the underlying grid. This gives the eye two scales to move between, local face-to-face relationships and larger colour groupings. The code establishes shared orientation and snapped positions; it does not guarantee that every part of every canvas is covered. [^S02][^S07]\n\nThe indexed traits for #103 name its background Royal Heath and its stroke Regent St Blue. The inspected artist script supplies RGB numbers and contains neither of those names. The names therefore describe the indexed colours without establishing that Tonon selected a named palette. The naming procedure itself has not been inspected. Colour in the visible work is further altered by repeated translucent overpainting, so a trait label cannot replace looking at the running image. [^S03][^S02][^S07]\n\nThe sustained analysis was done on invocation 103, held by `0xdd19308a9731cdecb67e0d80ca6823394208c045`, one of the three addresses currently linked to the AB5D profile [^S03][^S09].\n\nThe coordinator opened the original renderer for #103. An initial plum field developed into a dense lattice of coloured faces. Two later observations showed the geometry holding its positions while colour balances changed: violet, cyan, green and muted tan areas became lighter or darker against their neighbours. This verifies visible change during the observed interval, without claiming an exact measured frame rate or an indefinitely stable state. [^S05]\n\nThe code explains why fading is not erasure. Reducing a panel’s alpha changes the strength of its next overpaint; it does not remove colours already deposited on the canvas. Other panels continue to repaint shared areas in the fixed drawing order. A short interval of fairly stable average brightness therefore cannot prove that the composition has reached a permanent steady state. The observed effect is a changing surface held within fixed geometry. [^S02][^S05]\n\nThe submitted viewport experiment reports reloading #103 at 1200 by 700 and retaining 544 panels while changing the edge length from 73 to 96. Those measurements have not been independently repeated. They are consistent with the inspected setup: the panel count is independent of viewport dimensions, while edge length and position ranges use them. The distinction is consequential even without accepting the submitted measurements as verified. A change in window proportions changes the conditions under which the same seeded sequence is laid out. [^S06][^S02]\n\nThe inspected previews measure 2400 by 2180, close to the declared 1.1 ratio. The coordinator’s live view was a landscape window and showed a different arrangement. That comparison supports the code-derived account of viewport dependence, although differences in elapsed rendering time also affect colour and prevent a still-to-live comparison from isolating dimensions alone. [^S07][^S05][^S02]\n\nNo audio generation or input handlers occur in the inspected artist script. This is a finding about the program, not a claim that sound was independently monitored or that browser autoplay policy was tested. The work’s continuing change arises without a viewer action. [^S02]\n\nThe submitted edition sweep reports empty indexed trait objects for tokens 83000135, 83000163 and 83000337. That is a metadata observation, not proof that their artworks fail or succeed in the original renderer. No independent runtime claim is made for those three tokens. A catalogue should retain their identities when traits are missing rather than silently treating absence of metadata as absence of an artwork. [^S04]\n\nIn the stored preview of #0, pale yellow-green areas interrupt a comparatively muted field of mauve, dusty blue and brown. The finer divisions are easy to follow where a bright face meets a subdued neighbour, then harder to retain where several translucent colours approach the same value. Tall groupings suggest columns, but diagonal intersections repeatedly undo that architectural reading. The picture offers fragments of apparent depth without settling into a single coherent building. This describes the preview’s particular captured state, not a palette that remains unchanged throughout the animation. [^S07]\n\nThe #103 preview is more sharply punctuated. A yellow grouping near the upper centre and a broad pink form below the middle interrupt cooler turquoise and violet areas. Fine pale outlines persist across the larger colour masses, keeping their component faces legible. Compared with #0, those concentrated bright patches make the eye jump between several local centres rather than drift evenly through the field. In the live landscape rendering, the arrangement differs while the same type of face-to-face ambiguity remains. Both observations make the viewing frame part of the comparison. [^S07][^S05]\n\nIn #10, yellow, orange and pink patches are distributed among muted green and blue faces, with the small diagonal units producing a relatively fine texture. The #20 preview is darker overall: slate, olive and violet regions make the outlined lattice more conspicuous, while bright cyan and magenta fragments appear as interruptions. These differences should not become rankings of saturation or density across the edition. Four still captures support a local comparison; the running programs add a temporal dimension that those captures cannot contain. [^S07]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Panelscape is a small program that commits hard to one idea. Three quadrilaterals, one lattice, two reachable size multipliers, and after the first frame nothing changes except opacity. The artist's statement claims exactly this and no more: \"a composition that changes in the alpha values of the panels\" [^S01]. The phrase connects its imaginative premise to a specific operation visible in the program.\n\nIn the independently observed #103, the lattice remained fixed while neighbouring faces changed their colour balance. Repainting connects one moment to the accumulated surface of earlier moments. The short observation establishes visible change, but not permanent equilibrium or a measured long-term period. The interest is the contrast between stable geometry and variable appearance. [^S02][^S05]\n\nThe finding that matters most for the archive is the viewport dependence. The same token composes itself differently in differently shaped windows, not by cropping but by recomputing every panel position against the live viewport [^S06]. The consequence is practical: there is no single canonical image of a Panelscape token. The stored 1.1 preview, a portrait browser window and a landscape one each give a genuinely different arrangement of the same panels, and early frames can look different again from later accumulated states. Anyone cataloguing, exhibiting or valuing these works by their thumbnails is comparing captures rather than comparing artworks.\n\nThe limitations are heavy on the documentary side. The artist portfolio repeats the project statement, but a separate development interview or essay has not been verified. [^S12] Everything about intent comes from one paragraph written to accompany a mint. The meaning of the enclosed A and B in the title is unresolved and has not been guessed at. The original mint price is not established. The rights position is a gap rather than a finding, and it is aggravated here by a bare \"NFT License\" label on a contract that also carries \"NFT License 2.0\" on another project in the same batch, with no way to tell a deliberate version choice from a typing difference [^S08].\n\nUnresolved research questions:\n\n- Locate a dated development account and an explanation of the title’s enclosed letters.\n- Establish the original public mint price and allocation history.\n- Identify the operative artwork licence document and any separate artist-code grant.\n- Repeat the submitted viewport measurements and inspect the three tokens with missing traits."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000000",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 0, minted about thirty-two hours before activation and consistent with a proof. From the assignment's suggested sample, confirmed to exist before adoption.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Pale yellow-green patches among muted mauve, blue and brown; fine lattice and larger vertical groupings."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000010",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 10, from the suggested sample, retained as a mid-range density case with a Many panel quantity.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Fine multicolour lattice; yellow/orange patches among muted greens and blues."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000020",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 20, from the suggested sample, retained because its Panel quantity reads Many more and Panel dimension Big, the densest and largest combination in the sampled range.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Darker slate, olive and violet field with cyan and magenta fragments; visible outlines."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000103",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103",
      "sourceIds": [
        "S03",
        "S05",
        "S06",
        "S07",
        "S09"
      ],
      "selectionNote": "The lowest-numbered of five AB5D holdings, verified against the current linked wallet set. Selected for the sustained motion and viewport analysis and as the recommended header work.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Bright yellow near upper centre, pink below middle; cyan/violet areas and fine pale outlines. Original renderer separately observed changing colour within fixed geometry. Exact elapsed time and frame rate were not measured."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (AB5D coordinator), via the Claude desktop application",
    "agent": "Claude in Cowork mode, Claude Agent SDK session",
    "model": "Claude (submitted claude-opus-5), reviewed by OpenAI Codex",
    "modelVersion": "claude-opus-5 (session-reported exact model id; the routing label on this batch was 'claude', which is not a model identifier)",
    "tools": [
      "Art Blocks public GraphQL index over HTTP POST",
      "browser pane on the operator's computer for page rendering, text extraction, image inspection, live renderer execution, viewport emulation and canvas sampling",
      "SHA-256 over the retrieved script bytes computed in the browser using the Web Crypto API",
      "local shell and file tools for package assembly and validation"
    ],
    "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",
    "review": "OpenAI Codex independently checked indexed identity, complete script, current ownership, four previews, original #103 motion, artist portfolio and upstream dependency licence. Submitted numerical viewport and luminance measurements are attributed and not independently reproduced.",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "Claude (submitted claude-opus-5), reviewed by OpenAI Codex",
      "displayName": "Claude (submitted model: claude-opus-5), reviewed and revised by OpenAI Codex",
      "scope": "One submitted Claude essay with independent source, script, visual, chronology and rights review",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Claude supplied no token telemetry. Review usage is not separately measured. Submitted model identifier is retained without independent runtime verification.",
      "contributors": {
        "operator": "Phil (AB5D coordinator), via the Claude desktop application",
        "agent": "Claude in Cowork mode, Claude Agent SDK session",
        "model": "claude-opus-5",
        "modelVersion": "claude-opus-5 (session-reported exact model id; the routing label on this batch was 'claude', which is not a model identifier)",
        "tools": [
          "Art Blocks public GraphQL index over HTTP POST",
          "browser pane on the operator's computer for page rendering, text extraction, image inspection, live renderer execution, viewport emulation and canvas sampling",
          "SHA-256 over the retrieved script bytes computed in the browser using the Web Crypto API",
          "local shell and file tools for package assembly and validation"
        ],
        "humanEditorialInvolvement": "None. No human reviewed, edited or fact-checked the prose before submission. Status is draft-for-human-review.",
        "originalProseLicense": "CC0-1.0",
        "review": "OpenAI Codex independently checked indexed identity, complete script, current ownership, four previews, original #103 motion, artist portfolio and upstream dependency licence. Submitted numerical viewport and luminance measurements are attributed and not independently reproduced."
      }
    }
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "POST projects_metadata where slug _eq panelscape-by-paolo-tonon, selecting script and scripts{index script}; identity corroborated by contract_address 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270 and project_id 83",
    "sha256": "09ac817c226d888a0b4f1b5a9f91a884fae811bf01094bc336cd589770c9a1ae",
    "retrievedAt": "2026-09-17T23:50:00+00:00",
    "method": "Index retrieval over HTTPS, not a direct read of contract storage. SHA-256 computed over the UTF-8 bytes of the returned script field. The single indexed script fragment reproduces the script field exactly.",
    "executed": true,
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "rights-terms-missing",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "A bare 'NFT License' label is reported with link_to_license null and no terms document published anywhere located. The version is ambiguous because the same contract carries NFT License 2.0 on another project in this batch. Must be confirmed or presented as unverified before publication."
    },
    {
      "id": "code-rights-unknown",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "No licence statement was located for the artist script."
    },
    {
      "id": "no-canonical-image",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Because the composition is recomputed from the live viewport, no single image is canonical for a token. Any still published must be identified by the viewport it was captured at, and the dossier should not imply the stored 1.1 preview is the artwork."
    },
    {
      "id": "artist-record-gap",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Dedicated artist portfolio page located. Separate development chronology remains unverified; repeated statement is not independent testimony."
    },
    {
      "id": "title-meaning-unresolved",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Nothing located explains the enclosed A and B in the canonical title. Left unresolved rather than guessed. If the coordinator can source an explanation it should be added."
    },
    {
      "id": "original-price-unverified",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The 0.1 ETH figure is the currently configured project price, not a verified original mint price."
    },
    {
      "id": "platform-page-omits-animated-badge",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "The project page does not label this animated work as animated, though the index flag is correct. Reported for the coordinator's awareness."
    },
    {
      "id": "platform-trait-gap",
      "status": "pending",
      "reviewer": "publication coordinator",
      "reason": "Tokens 83000135, 83000163 and 83000337 have empty trait objects in the index. Any feature-based filtering of this edition will silently drop them."
    }
  ],
  "presentation": {
    "editionSize": 525,
    "maximumEdition": 525,
    "mintDate": "2021-06-07T06:17:10+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "token_id": "83000103",
      "invocation": 103,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103.png",
      "live_view_url": "/series/panelscape-by-paolo-tonon/artwork.html",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103",
      "mode": "live",
      "copyrightStatus": "NFT License (reported label; specific terms unverified)",
      "copyrightUrl": null,
      "displayBasis": "Remote official Art Blocks renderer for a freshly verified AB5D-held token, with artist/title credit and the reported rights label. No claim that remote embedding establishes a general reuse licence."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000000",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 0, minted about thirty-two hours before activation and consistent with a proof. From the assignment's suggested sample, confirmed to exist before adoption.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Pale yellow-green patches among muted mauve, blue and brown; fine lattice and larger vertical groupings.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000010",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 10, from the suggested sample, retained as a mid-range density case with a Many panel quantity.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Fine multicolour lattice; yellow/orange patches among muted greens and blues.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000010"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000020",
      "sourceIds": [
        "S03",
        "S07",
        "S10"
      ],
      "selectionNote": "Invocation 20, from the suggested sample, retained because its Panel quantity reads Many more and Panel dimension Big, the densest and largest combination in the sampled range.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Darker slate, olive and violet field with cyan and magenta fragments; visible outlines.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000020"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "83000103",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103",
      "sourceIds": [
        "S03",
        "S05",
        "S06",
        "S07",
        "S09"
      ],
      "selectionNote": "The lowest-numbered of five AB5D holdings, verified against the current linked wallet set. Selected for the sustained motion and viewport analysis and as the recommended header work.",
      "observationNote": "Coordinator inspected the 2400 by 2180 preview fitted to the browser viewport. Bright yellow near upper centre, pink below middle; cyan/violet areas and fine pale outlines. Original renderer separately observed changing colour within fixed geometry. Exact elapsed time and frame rate were not measured.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/83000103"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/panelscape-by-paolo-tonon/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/panelscape-by-paolo-tonon/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
