{
  "sources": [
    {
      "id": "S01",
      "author": "Art Blocks",
      "title": "little boxes on the hillsides, child by LIA, collection page",
      "url": "https://www.artblocks.io/collection/little-boxes-on-the-hillsides-child-by-lia",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Page rendered in the browser pane and its visible text extracted in full, including the embedded schema.org CollectionPage block and the artist panel. The PROJECT DETAILS and SALES NOTES accordions did not expand under programmatic activation and their contents were not read; this is recorded as a gap rather than as an absence.",
      "evidenceLocators": [
        "Header block: 'An Art Blocks 500 release, in the Factory category', 'Fixed edition of 777 unique artworks', 'Released on October 19, 2021'",
        "No animated badge and no interactive badge appears anywhere in the page chrome, although the description text documents an 'a' key control",
        "Artist panel: 'Since 1995, Austrian artist LIA has been engaged in a continuous exploration of software art', and 'Based in Vienna'",
        "Artist panel: 'LIA's primary working material is code. For her, the creative process is a dialogue'",
        "schema.org block: numberOfItems 777, primaryImageOfPage token 185000035",
        "Accordion headings present but not expanded: 'Project details', 'Sales notes', 'Collections featuring this project'",
        "Related-projects rail names Amoeba by last-even and Blockbob Rorschach by eBoy, two further projects in this batch"
      ]
    },
    {
      "id": "S02",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, projects_metadata for project 185",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation ProjectBySlug executed by HTTP POST with variables {\"slug\":\"little-boxes-on-the-hillsides-child-by-lia\"}. Full query text, variables and timings recorded in evidence.json. The complete returned program, 3,519 bytes, was read end to end.",
      "evidenceLocators": [
        "Response field projects_metadata[0].id = 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-185, corroborating contract and project identity",
        "Response fields license = 'CC BY-NC-SA 3.0' and link_to_license = null",
        "Response fields activated_at = 2021-10-15T23:38:20+00:00, start_datetime = 2021-10-19T16:00:00+00:00, completed_at = 2022-05-07T10:03:15+00:00, updated_at = 2021-10-12T14:38:32.088287",
        "Response fields invocations = 777, max_invocations = 777, script_count = 1, display_static = false, aspect_ratio = 1, vertical_name = 'factory'",
        "Response fields price_per_token_in_wei = 200000000000000000, artist_address = 0xf48e3a3bcca259005527f395c4080cd68a80a0fe, artist_interview = null, website = https://liaworks.com",
        "Response field description, bug clause: 'In this piece the “cheeky blue” and “cheeky red” features arise from a bug in calculating the colour spread, and have been retained for their aesthetic contribution to the images.'",
        "Response field description, control clause: 'whose ancestry can be activated on the Art Blocks website by pressing the ‘a’ key to reveal the animated process behind the production of the still image'",
        "Response field description, auction clause: 'Dutch auction starting at 5Ξ and decreasing every 5 minutes to 0.2Ξ (5→4→3→2→1.5→1.25→1→0.75→0.5→0.4→0.3→0.2), 25% of sales over 0.2 ETH will be donated to charity (5% to the Processing Foundation, 20% to COTAP)'",
        "Response field description, lineage clause: successor of 'little boxes on the hillsides, mother', exhibited in 'Synthetic Imagination' at bitforms gallery San Francisco, October 2 to November 15, 2021",
        "Program, function getSeedFromTokenHash: seed taken from hash.slice(2,12) parsed base 16, correctly skipping the 0x prefix",
        "Program, class Rnd.r01: three-shift xorshift, absolute value modulo 65536 divided by 65536, giving at most 65,536 distinct fractions",
        "Program, function unHash: ten consecutive six-hex-character slices of the hash after the prefix, each divided by 16777215",
        "Program, setup: the ten fractions assigned in order to central hue, saturation, brightness, hue spread, shape angle, row count, column count, stroke count, opacity and frame flag",
        "Program, class El.ini: the drawn hue is the random draw taken modulo 255 while the sketch's colour mode uses the p5 default hue maximum of 360; this is the colour-spread bug the description names",
        "Program, setup: the invert flag is computed from the invocation number, not from the hash, as invocation modulo 200 equals 3 plus 2 raised to the integer quotient of invocation and 200",
        "Program, setup: on inverted tokens saturation is floored at 40 and brightness capped at 70 after the feature values are derived",
        "Program, draw: the accumulation loop runs the full stroke count in a single frame and is skipped on every later frame unless the toggle is set",
        "Program, keyPressed: 'a' toggles the accumulation flag and 's' calls saveCanvas; no other handler exists",
        "Program: no audio call, no external fetch, and no asset beyond the declared p5 dependency"
      ]
    },
    {
      "id": "S03",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for all 777 tokens of project 185",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation TokensByProject executed by HTTP POST with variables {\"pid\":\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-185\"}, returning the complete edition with hash, owner, mint timestamp and published features for every token. An independent reimplementation of the trait derivation was run against all 777 returned hashes.",
      "evidenceLocators": [
        "features['central hue'] distribution across 777: green 281, red 126, yellow 117, teal 107, cheeky red 62, cheeky blue 45, blue 26, cheeky yellow 10, cheeky teal 3",
        "The predicate 'the interval from central hue minus spread to central hue plus spread contains 255' agrees with the cheeky prefix on 777 of 777 tokens: all 120 cheeky tokens satisfy it and none of the 657 others do",
        "Base colour name reproduced from central hue modulo 255 with non-overlapping bands: red 0.170 to 39.857, yellow 40.342 to 69.899, green 70.108 to 159.218, teal 161.018 to 208.125, blue 211.483 to 254.905",
        "features.invert is 'yes' on exactly four tokens, invocations 4, 205, 407 and 611, reproduced 777 of 777 from the invocation-number rule",
        "features.rows, features.columns, features.strokes, features.opacity, features.frame, features.saturation, features.brightness and features.shape each reproduced 777 of 777",
        "features.opacity values are 'high' for the internal value 1, 'low' for 0.15, and the literal string '0.30166 (tested in LIA lab)' for 0.30166",
        "features['hue deviation'] not reproduced: narrow spans spread 14 to 56, standard 14 to 70 and wide 28 to 70; an exhaustive two-threshold search on the spread mislabels 194 of 777, and on spread multiplied by saturation 163 of 777",
        "Seventy-five tokens have a sampling interval whose lower end falls below zero, where p5 clamps rather than wraps; none of them carries a cheeky label",
        "Mint timestamps: exactly one token, invocation 0, was minted before the public opening, at 2021-10-13T21:43:19+00:00, by the artist address",
        "Mint pace anchored on the 2021-10-19T16:00:00Z opening: 132 within one hour, 451 within six hours, 568 within one day, 688 within seven days, 722 within thirty days, 749 within ninety days, 776 in total; median mint 2021-10-19T18:23:18+00:00",
        "First public mint 2021-10-19T16:11:59+00:00, 11.98 minutes after the opening, which falls in the third five-minute window of the published schedule",
        "Rung assignment from the published schedule and indexed mint timestamps: 1 token in the 3 ETH window, 1 at 2, 2 at 1, 3 at 0.5, 3 at 0.4, 16 at 0.3 and 750 at the 0.2 resting price",
        "Ownership across the edition: 491 distinct owner addresses; the artist address holds invocations 0, 755 and 757",
        "Exactly one token, 185000064, is held by an address in the refreshed AB5D linked-wallet set"
      ]
    },
    {
      "id": "S04",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, tokens_metadata for the four example tokens of project 185",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Named operation TokensByIds executed by HTTP POST with the four exact composite token keys, issued so that every example token's hash, owner and mint timestamp is read from a response rather than from working memory.",
      "evidenceLocators": [
        "Token 185000064: hash 0xf3b0ec1b362ed431fc03a81080ff8def8ff405ee82234cd7f8df32643af1b5e9, owner 0xdd19308a9731cdecb67e0d80ca6823394208c045, minted_at 2021-10-19T16:56:34+00:00, invocation 64",
        "Token 185000004: hash 0xd3e8c7830de7d21345ecd5c0f72f86877e47956f9e9da88d24e3196cfcc6f023, owner 0x26d39fc7341567c8b0bb96382fc54f367f4298ea, minted_at 2021-10-19T16:34:49+00:00, invocation 4, features invert 'yes' and central hue 'cheeky yellow'",
        "Token 185000018: hash 0x92f7042cd8efbc77b0f021ae6e4e8d735fb4af05863d5a4b48d52d6a06125ae4, owner 0x0871e6872f0cdeb32eb013648a76575b4d2dba80, minted_at 2021-10-19T16:53:21+00:00, invocation 18, central hue 'cheeky teal'",
        "Token 185000000: hash 0x1249e90f644b306388bf3af38ae51c80637f656a5e2f58bbb3ac9edfaa714872, owner 0xf48e3a3bcca259005527f395c4080cd68a80a0fe which is the indexed artist address, minted_at 2021-10-13T21:43:19+00:00, invocation 0"
      ]
    },
    {
      "id": "S05",
      "author": "Art Blocks",
      "title": "Art Blocks public GraphQL index, user_profiles for the AB5D collection",
      "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Discovery query for the ab5d profile executed by HTTP POST with variables {}, returning the complete linked_accounts set. Refreshed once this session and reused across the batch; no wallet count was assumed in advance.",
      "evidenceLocators": [
        "Response user_profiles[0].linked_accounts returning the complete set of three addresses: 0xce6dc14c5494d8a4325a81d3b257d130fa2039d1, 0x2247247ee0eee59557e6cd14f7e047f6a9309b5c, 0xdd19308a9731cdecb67e0d80ca6823394208c045",
        "The third linked address is the indexed owner of token 185000064, the only match across all 777 tokens in this project"
      ]
    },
    {
      "id": "S06",
      "author": "Art Blocks",
      "title": "Art Blocks live renderer for project 185 tokens",
      "url": "https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/185000064",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Four tokens opened in the original renderer in the browser pane on the researcher's computer. Each canvas was copied to an offscreen 2D surface and sampled on a fixed 81-point grid plus a strided full-canvas census. The sketch's own global variables were read alongside each observation so that published traits could be checked against the parameters that produced them. Screenshots captured of all four. Canonical token page status checks were issued by fetch from the artblocks.io origin.",
      "evidenceLocators": [
        "Token 185000064 live globals: central hue 342.691, spread 14, shape angle 181.404, saturation 19, brightness 95, 12 rows by 2 columns, stroke count 600, opacity 0.30166, frame true, invert false; matching all eleven published traits except the unreproduced hue deviation",
        "Token 185000064: canvas 1324 by 1324; 81-point grid identical across a five-second interval while the frame counter advanced from 359 to 600",
        "Token 185000064 controls: a synthetic keydown for 'a' flipped the animation flag from false to true and the sampled grid then changed between every pair of samples; dispatching keyup then keydown flipped it back to false and the grid was identical across a further five seconds while the counter advanced by 300",
        "Method note: p5 suppresses a repeat keydown for a key it believes is still held, so a second keydown without an intervening keyup is silently ignored; both directions of the toggle were only obtained after adding the keyup",
        "Token 185000004 live globals: central hue 297.997, spread 62, interval 235.997 to 359.997 straddling 255, shape angle 347.605, saturation 56 and brightness 70 which are the post-clamp values for an inverted token, 5 rows by 6 columns, invert true",
        "Token 185000004: a single manual frame advanced the accumulation counter from 0 to its full 600 in 42 milliseconds",
        "Token 185000004: pixels crossing the inner frame boundary changed between frame 1 and frame 200 and were identical from frame 200 to frame 1,004, while the canvas interior was unchanged throughout",
        "Token 185000018 live globals: central hue 206.669, spread 64, interval 142.669 to 270.669 straddling 255, shape angle 155.119, saturation 25, brightness 92, 4 rows by 7 columns, frame true, invert false; controls test reproduced in both directions",
        "Token 185000000 live globals: central hue 25.719, spread 45, interval -19.281 to 70.719 crossing zero, shape angle 195.321, saturation 15, brightness 76, 5 rows by 3 columns, frame false",
        "p5 colour probe in the running instance: color(-45,60,90,1), color(-20,...) and color(-1,...) all returned the same RGB triple as color(0,...) and read back a hue of 0, establishing that negative hues are clamped rather than wrapped",
        "Audio status: document.querySelectorAll('audio,video') returned 0 and p5.SoundFile is undefined in the running instance",
        "Canonical token page checks by fetch from the artblocks.io origin: 185000064, 185000004, 185000018 and 185000000 each returned HTTP 200 with a final URL of the form https://www.artblocks.io/token/1/<contract>/<tokenId>",
        "Method limitation: while the browser pane was hidden the browser suspended animation frames and the frame counter stayed at 0; three of the four renders were advanced by calling p5's own redraw manually, and only token 185000064 was observed under the page's own frame loop"
      ]
    },
    {
      "id": "S07",
      "author": "LIA",
      "title": "little boxes on the hillsides, child, project page on the artist's site",
      "url": "https://liaworks.com/theprojects/little-boxes-on-the-hillsides/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "The artist's own project page, rendered in the browser pane and read in full, including the PROJECT DETAILS block at its foot. This is the website of record named in the index and it resolves to a specific project page rather than to a site root.",
      "evidenceLocators": [
        "Body text: 'The project is the direct successor to little boxes on the hillsides, mother, a generative work first exhibited at the prestigious bitforms gallery in San Francisco.'",
        "Body text: 'Each still image holds a hidden dynamism. On the Art Blocks platform, pressing the ‘a’ key reveals the artwork’s generative process in motion, a signature element of LIA’s practice.'",
        "Body text: 'A significant portion of the project’s primary sales was donated to the Processing Foundation and Carbon Offsets To Alleviate Poverty (COTAP).' No percentage and no threshold is stated here, unlike the Art Blocks description.",
        "PROJECT DETAILS block: Year 2021, Platform Art Blocks, Exhibition Context bitforms gallery San Francisco, Medium 'On-chain Generative Art', Edition Size '777, Sold Out'",
        "The page contains no mention of the colour-spread bug and no mention of the cheeky features, which appear only in the Art Blocks mint description",
        "Site tagline in the page title: 'LIA – A Continuous Practice in Generative Art Since 1995.'"
      ]
    },
    {
      "id": "S08",
      "author": "Processing Foundation",
      "title": "p5.js reference: colorMode",
      "url": "https://p5js.org/reference/p5/colorMode/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "Reference page for the p5 function that sets the colour model, rendered in the browser pane and read for the default ranges that the artwork relies on. Consulted to characterise the hue handling described in the construction section; the library's own licence terms were not established from this page.",
      "evidenceLocators": [
        "Reference text: 'Calling colorMode(HSB) or colorMode(HSL) changes to HSB or HSL systems instead of RGB. Pure red is color(0, 100, 100) in HSB'",
        "Reference text: 'By default, the Number parameters for fill(), stroke(), background(), and color() are defined by values between 0 and 255 using the RGB color model'",
        "The page documents the mode switch but not the clamping of out-of-range hue values, which was established instead by probing the running p5 instance"
      ]
    },
    {
      "id": "S09",
      "author": "Creative Commons",
      "title": "Deed: Attribution-NonCommercial-ShareAlike 3.0 Unported",
      "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/",
      "publicationDate": null,
      "accessedAt": "2026-09-18",
      "accessOutcome": "inspected",
      "inspectionScope": "The canonical deed for the licence identifier recorded against the project. Read in full in the browser pane. The full legal code behind the deed was not opened.",
      "evidenceLocators": [
        "Deed heading: 'Attribution-NonCommercial-ShareAlike 3.0 Unported', canonical URL https://creativecommons.org/licenses/by-nc-sa/3.0/",
        "You are free to: 'Share — copy and redistribute the material in any medium or format' and 'Adapt — remix, transform, and build upon the material'",
        "Under the following terms: Attribution, NonCommercial 'You may not use the material for commercial purposes', ShareAlike 'you must distribute your contributions under the same license as the original'",
        "Version notice on the deed: 'This is an older version of this license... we strongly recommend the use of the 4.0 license instead'",
        "Notices: 'No warranties are given. The license may not give you all of the permissions necessary for your intended use.'"
      ]
    }
  ]
}
