AB5D

little boxes on the hillsides, child

LIA · Project 185 · Factory

Edition size: 777 · Mint date: 19 October 2021

little boxes on the hillsides, child #64 by LIA. Copyright: CC BY-NC-SA 3.0. From the AB5D collection.

Open artwork

The work and its context

little boxes on the hillsides, child is Art Blocks project 185 on the contract at 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, on Ethereum mainnet, credited to LIA. The public index returns 777 invocations against a maximum of 777, a declared dependency of p5@1.0.0, an aspect ratio of 1, a licence string of CC BY-NC-SA 3.0 with a null licence link, and a display_static value of false 1. The collection page describes it as an Art Blocks 500 release in the Factory category, a fixed edition of 777 unique artworks, released on October 19, 2021 2.

The image is a grid. Rectangular cells of uneven width and height are stacked edge to edge across a square canvas, and inside each cell a pair of bezier arcs is drawn from corner to corner, repeatedly, at low opacity, so that the accumulated passes build up soft triangular and gable shapes. Read quickly, the result is a row of roofs against a night sky. Read slowly, it is a lattice of overlapping translucent curves whose intersections are darker than their spans. The palettes are narrow and often desaturated, and about three quarters of the edition carries a wide flat border that isolates the grid from the canvas edge.

The mint description is unusually forthcoming, and two of its sentences are the reason this project repays close attention. The first is an admission: 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 1. The second is an instruction: the tokens are rendered in stillness, and their 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 1.

Both claims are verifiable, and both are slightly wrong in ways that matter for a catalogue. The bug is real and the retained features are real, but the edition contains four cheeky variants, not two: cheeky red on 62 tokens, cheeky blue on 45, cheeky yellow on 10 and cheeky teal on 3 3. Thirteen tokens therefore carry a published trait value that the artist's own description of the bug does not mention. And the still is not quite a still: on tokens that draw a border, the border's antialiased edge continues to settle for roughly the first two hundred frames after the composition has finished, after which the canvas becomes bit-stable 4.

The keypress is also real, and this is worth stating plainly because so few Art Blocks projects document a control at all. The collection page carries no interactive or animated badge; the only notice that the work responds to input is a clause in the middle of a long paragraph of prose 2. A cataloguer reading the page chrome rather than the page text would record a static work with no controls, and would be describing a work that has one.

The title comes from Malvina Reynolds' song "Little Boxes", and the description names it 1. The project is the direct successor to little boxes on the hillsides, mother, which the artist exhibited at bitforms gallery in San Francisco; the Art Blocks description dates that exhibition, "Synthetic Imagination", to October 2 through November 15, 2021, and the artist's own site confirms the gallery and city without repeating the dates 15. The Art Blocks tokens are described in both places as the children of that mother work.

Conception and development

LIA is an Austrian artist based in Vienna who has worked in software since 1995, and the Art Blocks artist panel states that plainly: a cross-functional practice spanning video, performance, software, installations, sculpture, projections and digital applications, with code as the primary working material 2. The panel describes her process as a dialogue in which an idea is translated into a formal written structure which in turn generates the work, repeated and refined until the machine's interpretation aligns with the artistic vision 2.

That framing is not decoration. It is the specific reason the bug in this project was kept rather than fixed, and the mint description says so in the same breath: when accidents or bugs appear, they are often treated as a part of this conversation and incorporated into the final work 1. The sequence implied is that the colour spread was written, the machine produced something the artist had not specified, the artist looked at it, and the unintended output was accepted into the vocabulary of the piece and given a name. The name is the evidence. A bug that is merely tolerated does not acquire a trait label; "cheeky" is a judgement, and a fond one.

The description also records the work's ancestry in the artist's own tooling. It grew, it says, from an initial Processing sketch, by way of careful selection of angles, transparencies and line weights 1. The deployed script is p5.js, which is the JavaScript descendant of Processing, so the migration is a port rather than a rewrite in a foreign idiom, and the shape of the code is consistent with that history: a setup that fixes every parameter once, a draw that runs a fixed number of accumulation passes and then stops, and a keyPressed handler of two lines.

The artist's own project page is the website of record in the index 1, and unlike several other projects in this batch it resolves to a real, specific page rather than a site root or a dead link 5. That page repeats the lineage from the mother work, the bitforms context, the edition size and the 'a' key, and adds one fact the Art Blocks description states differently: that a significant portion of the primary sales was donated to the Processing Foundation and to Carbon Offsets To Alleviate Poverty 5. The Art Blocks description is more precise, committing to 25 per cent of sales over 0.2 ETH, split 5 per cent to the Processing Foundation and 20 per cent to COTAP 1. The mint section below shows why that distinction turns out to matter a great deal.

Two things the artist's page does not do are worth recording as absences rather than as findings. It does not mention the bug or the cheeky features at all, so the most interesting piece of process documentation for this project exists only in the Art Blocks mint text. And it describes the medium as "On-chain Generative Art" 5, which is true of the artist's script, stored in the project record and returned by the index 1, but which understates the dependency: the work does not render without a copy of p5.js version 1.0.0 supplied by the platform at view time. The indexed artist_interview field is null 1 and no dated development account was located during this session.

How the work was constructed

The script was retrieved as the script field of the projects_metadata row for 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-185, from the Art Blocks public GraphQL index, on 2026-09-18 at 07:47:44Z 1. It is 3,519 bytes and its SHA-256 digest, computed in the browser over the exact returned bytes using the Web Crypto API, is e5598752cc15c83d5942ef48b20fb03e6e6dbab2bfb7fdee0cc2c54466ad056f 4. The row reports script_count of 1 and the single-element scripts array concatenates to the same bytes as the flat script field. The declared runtime is p5@1.0.0 1. The script is minified to single-character globals but is not packed or obfuscated, so it can be read directly without execution. No artist code is reproduced here; what follows is a description.

Randomness comes from a three-shift xorshift generator seeded from the token hash. The seed is taken from hash.slice(2, 12) parsed as hexadecimal, which skips the 0x prefix correctly. This is worth saying because the same idiom appears elsewhere in this batch with the slice starting at 0, which silently folds the prefix into the parse; here it is right. The generator returns values by taking the absolute value of the current 32-bit state modulo 65536 and dividing by 65536, so it produces at most 65,536 distinct fractions rather than a full float range. Every random draw in the work therefore lands on one of 65,536 rungs, and the visible consequence is that cell jitter and stroke lengths repeat exact values across a token more often than a continuous generator would produce.

Parameters are not drawn from that generator. They are read directly out of the hash by a second routine that takes the 64 hex characters after the prefix and cuts them into ten consecutive six-character slices, each parsed as an integer and divided by 16777215 to give a fraction in zero to one. Those ten fractions set, in order: a central hue as the fraction times 360; a saturation mapped linearly onto 10 to 100 and truncated; a brightness mapped linearly onto 71 to 100 and truncated; a hue spread mapped onto 14 to 71 through a squared curve and truncated; a shape angle as the fraction times 360; a row count and a column count, each mapped onto 2 to 14 through the same squared curve and truncated; a stroke count chosen as 50, 200 or 600 at thresholds of 0.05 and 0.1; an opacity chosen as 1, 0.15 or 0.30166 at thresholds of 0.05 and 0.8; and a frame flag set when the tenth fraction is below 0.7.

The grid is built by laying out column and row boundaries at even divisions of the canvas and then displacing every boundary after the first by a random offset of up to three tenths of a division. Cells therefore vary in width and height while still tiling the square exactly, and the leftmost and topmost edges stay pinned. Each cell becomes an element object which, on initialisation, draws two random numbers: a hue from the interval between the central hue minus the spread and the central hue plus the spread, and a stroke budget between 5 and the token's stroke count. The element then draws its rectangle outline and two beziers per pass, sliding downward by half a scaled unit on each pass and fading its alpha asymptotically toward the token opacity, and when its budget is exhausted it reinitialises with a fresh hue and a fresh budget and starts again from its origin row.

The two beziers are what make the roofs. For each of the cell's two diagonals the script computes the diagonal's angle through an atan2, remaps that angle through a piecewise transformation into a different quadrant convention, then places both control points at a fixed distance from the endpoints along a direction rotated by the token's shape angle, with the second diagonal rotated by the negative of it. When the shape angle is near zero or near 360 the control points collapse onto the chord and the curve is effectively a straight line; at intermediate angles the pair of curves bows outward, crosses, or loops back on itself. The published shape trait reproduces from the shape angle alone with thresholds at approximately 5, 130, 200 and 355 degrees, giving straight, twist, loopback and bulge, and that reproduction matches all 777 tokens 3.

The loop structure is the reason the work is a still. On the first call to draw, a counter runs the accumulation pass the full stroke-count number of times in a single frame, so the entire composition is completed inside one frame rather than over time. On every subsequent frame the accumulation is skipped unless a toggle is set. That toggle is the 'a' key, and the only other key handled is 's', which triggers a canvas save. At the live renderer a single manual frame step advanced the internal counter from 0 to its full 600 in 42 milliseconds for token 185000004 4, which confirms that the whole picture is the product of one frame.

The bug the artist describes is a single expression: the hue drawn for each element is taken modulo 255, while the sketch's colour mode uses the p5 default hue maximum of 360. Values at or above 255 therefore wrap down into the red and yellow end of the wheel while values below 255 pass through untouched, and a token whose sampling interval straddles 255 will draw two disjoint families of hue in the same picture. That straddle is exactly what the "cheeky" prefix marks. Testing the predicate "the interval from central hue minus spread to central hue plus spread contains 255" against the published trait for all 777 tokens produced agreement on every token: all 120 cheeky tokens satisfy it and none of the 657 others do 3. Tokens whose interval lies entirely above 255 are not cheeky, because every draw wraps by the same amount and the picture is merely shifted rather than split; token 185000064 is such a case, with a central hue of 342.691 and a spread of 14, published as green 4.

The lower tail of the same bug behaves differently and has no name. When the central hue is smaller than the spread the interval extends below zero, and negative hues are not wrapped: they are clamped. Probing the live p5 instance with hue values of -45, -20 and -1 returned the same colour as hue 0 in every case, and reading the hue back gave 0 4. Seventy-five tokens in the edition have an interval that crosses zero 3, and on those the draws that fall below zero pile up as pure hue-zero red instead of wrapping to the violet end. The artist's description names the upper tail and the trait vocabulary names the upper tail; the lower tail is present in a tenth of the edition and is invisible to both.

One trait is not a function of the hash at all in the usual sense. The invert flag is computed from the token's own invocation number: it is true when the invocation modulo 200 equals 3 plus 2 raised to the power of the invocation divided by 200, integer-divided. That expression is true for exactly four invocations in an edition of 777, namely 4, 205, 407 and 611, and the published trait agrees on all 777 tokens 3. Inverted tokens draw on a white ground with white cell outlines instead of a black ground with black outlines, and they additionally have their saturation floored at 40 and their brightness capped at 70 at render time. That clamp is applied after the feature values are derived, so for those four tokens the published saturation and brightness traits can describe values the renderer did not use; token 185000004 reports full saturation and luminous brightness while the live sketch held 56 and 70 4.

An independent reimplementation of the trait derivation was written from the reading above and run against all 777 token hashes returned by the index. Ten of the eleven published trait keys reproduce on every token: central hue including the cheeky prefix, saturation, brightness, rows, columns, strokes, opacity, frame, shape and invert, 777 out of 777 each 3. The eleventh, hue deviation, does not. Its three values correlate strongly with the hue spread but the ranges overlap heavily, with narrow reaching 56 and wide starting at 28, and an exhaustive search for the best pair of thresholds on the spread mislabels 194 tokens. Multiplying the spread by the saturation improves matters to 163 mislabelled and no better rule was found 3. The feature-extraction script that Art Blocks runs is a separate program from the artwork script and is not published, so the honest conclusion is that hue deviation is derived from something the artwork script does not expose, and this package records it as unreproduced rather than guessing a rule.

There is no audio. The script loads no sound library, the page contains no audio or video elements, and p5.SoundFile is undefined in the running instance 4.

The mint

The index records four separate timestamps for this project and they should not be collapsed into one another. The row's activated_at is 2021-10-15T23:38:20Z, its start_datetime is 2021-10-19T16:00:00Z, its completed_at is 2022-05-07T10:03:15Z, and its updated_at is 2021-10-12T14:38:32Z 1. The collection page states a single date, October 19, 2021, and labels it a release 2, which corresponds to the opening rather than to activation or completion.

The first mint does not fit that order. Token 185000000 was minted at 2021-10-13T21:43:19Z 6, which is two days before the recorded activation and nearly six days before the public opening, and it is held by the artist address recorded in the project row 16. It is the only token minted before the opening. Whatever activated_at marks in this record, it does not mark the moment the contract first accepted a mint, and a catalogue that treats it as a first-mint date will be wrong by two days for this project.

The published sale mechanism is a Dutch auction starting at 5 ETH and decreasing every five minutes through 5, 4, 3, 2, 1.5, 1.25, 1, 0.75, 0.5, 0.4, 0.3 and 0.2 ETH 1. Twelve rungs at five minutes each put the resting price 55 minutes after the opening, and the index's price_per_token_in_wei of 200000000000000000 1 is the resting price rather than the starting price, which is a second trap for anyone reading the field without the description.

Taking the opening timestamp as the start endpoint and the last mint as the end endpoint, the public phase ran from 2021-10-19T16:00:00Z to 2022-05-07T10:03:15Z, a span of 287,631.27 minutes or 4,793.85 hours, and covered 776 mints 3. That single number is close to useless on its own, because the distribution is extremely front-loaded and then extremely long-tailed. Anchored on the opening, 132 tokens were minted within the first hour, 451 within six hours, 568 within a day, 688 within a week, 722 within thirty days and 749 within ninety days, leaving 27 to trickle out over the remaining fourteen weeks 3. The median mint fell at 2021-10-19T18:23:18Z, two hours and twenty-three minutes after opening 3.

The first public mint arrived at 2021-10-19T16:11:59Z, 11.98 minutes after the opening 3. On the published schedule that places it in the third five-minute window, at the 3 ETH rung: the top two rungs passed without a buyer. Assigning every mint to a rung by its timestamp on that schedule gives 1 token in the 3 ETH window, 1 in the 2 ETH window, 2 at 1 ETH, 3 at 0.5, 3 at 0.4, 16 at 0.3 and 750 at the 0.2 resting price 3. Twenty-six tokens, a little over three per cent of the edition, were minted while the price was above the floor.

That reconstruction carries a caveat that should travel with it. The rung assignment is computed from the published schedule and the indexed mint timestamps, not from the value of the mint transactions, which this session did not read. It is a reproducible inference from two stated sources rather than a measurement of what buyers paid, and the boundary cases sit within a few seconds of a rung change. Read with that caveat, it still constrains the charity clause sharply: 25 per cent of sales over 0.2 ETH was pledged to the Processing Foundation and COTAP 1, and on this reconstruction that clause attached to at most 26 of 776 public mints.

The edition completed on 2022-05-07T10:03:15Z, nearly two hundred days after opening 13. Across the 777 tokens the index reports 491 distinct owner addresses 3, so the edition is widely rather than narrowly held. The artist address still holds three tokens, invocations 0, 755 and 757 3.

The Art Blocks 500 wallet set was refreshed once this session from the platform's own profile index, by querying the ab5d user profile for its linked accounts. The query returned three linked addresses and all three were checked against every one of the 777 token rows 73. Exactly one token in this edition sits in that set: token 185000064, held by 0xdd19308a9731cdecb67e0d80ca6823394208c045, minted at 2021-10-19T16:56:34Z, invocation 64 67. It was minted 56 minutes after the opening, which on the schedule above is one minute after the price reached its floor.

The index records a licence string of CC BY-NC-SA 3.0 for this project and a link_to_license of null 1. The string is a licence name, not a URI, and nothing in the project record resolves it to a particular deed. Read against the canonical Creative Commons deed for Attribution-NonCommercial-ShareAlike 3.0 Unported, the terms are share and adapt, subject to attribution, a prohibition on commercial use, and a requirement that adaptations be distributed under the same licence 8. The deed page also carries a notice that this is an older version and that Creative Commons recommends the 4.0 licences for new licensing 8, which is context for a 2021 release rather than a defect in it.

Three rights questions should be kept apart, because the single index field answers only one of them and does not say which.

The first is the artwork. The tokens are images produced by the artist's program, and the licence string is recorded on the project, so the most natural reading is that it governs the output. What that means for a token holder is not spelled out anywhere in the project record: the record contains no terms of sale, no statement about what a holder may do with an image, and no link to any. The non-commercial clause in particular is consequential for a work that is bought and sold, and the record does not address the relationship between owning a token and the commercial-use restriction. This is an unknown, and it is recorded here as one.

The second is the artist's code. The script is public in the sense that anyone can read it out of the index, and this package read it and computed its digest. Public visibility is not a grant of redistribution rights, and no separate licence is stated for the script as a program as distinct from the images it makes. Accordingly no artist code is reproduced in this package. What is returned instead is a description of the mechanism, the byte count, the digest, and a set of reproductions of the published traits that can be independently checked against the index without holding a copy of the script.

The third is the dependency. The work declares p5@1.0.0 1 and does not render without it; the platform supplies the library at view time, and the artist's own site describes the medium as on-chain generative art without mentioning it 5. The p5.js library carries its own licence, which is not the project's licence and is not stated in the project record. This session consulted the p5.js reference for the behaviour of colorMode in order to characterise the hue clamping described above 9, and did not establish the library's licence terms; that remains open.

One further asymmetry is worth recording. The trait vocabulary, including the word "cheeky", is published in the token metadata and is returned by the index for every token 3, but the program that assigns those labels is not part of the project record and was not retrieved. The traits are therefore platform-published data about the artwork rather than part of the artwork's own code, and the one trait this package could not reproduce, hue deviation, sits on the far side of that line.

Close reading of examples

Four tokens were examined at the live renderer at generator.artblocks.io, each identified first by a TokensByIds query against the index so that hash, owner, mint time and published traits came from a response rather than from memory 6, and each opened at its canonical Art Blocks token page, all four of which returned HTTP 200 on a real fetch from the artblocks.io origin 4. Two of the four were observed in sustained sessions. All observations were made in the Claude desktop browser pane on macOS, and the method notes below record one significant constraint: while the pane was hidden the browser suspended animation frames entirely, so three of the four renders were advanced by calling p5's own redraw manually rather than by the page's own frame loop, and this is stated per observation rather than glossed over.

little boxes on the hillsides, child #64 by LIA
little boxes on the hillsides, child #64 by LIA. Open artwork

Token 185000064 is the Art Blocks 500 holding and was observed for roughly ninety seconds under the page's own frame loop, with the pane displayed 4. Its hash begins 0xf3b0ec1b and it was minted at 2021-10-19T16:56:34Z to 0xdd19308a9731cdecb67e0d80ca6823394208c045 6. The published traits are green, low saturation, luminous, narrow deviation, 12 rows, 2 columns, many strokes, opacity 0.30166, frame yes, shape loopback, invert no 6. Reading the live sketch confirmed every one of those against the code: the central hue held 342.691, spread 14, shape angle 181.404, saturation 19, brightness 95, 12 by 2, stroke count 600, opacity 0.30166, frame true, invert false 4. The central hue is the point. A nominal hue of 342.691 is magenta on a 360 wheel; after the modulo it renders at 87.691, and the picture is pale sage green on black, two tall columns of stacked gables under a dark olive border. The token is published as green and it is green, and the parameter that produced it says magenta.

The same token supplied the controls test. With the pane displayed and the frame loop running, the canvas was sampled on a fixed 81-point grid at intervals over five seconds and was byte-identical between samples while the frame counter advanced by several hundred, confirming the still. A synthetic keydown for 'a' flipped the sketch's animation flag from false to true, and the sampled grid then changed on every subsequent comparison while the mean channel value drifted across a range of several units 4. Toggling back required a method note that is itself a finding: p5 suppresses repeat keydowns for a key it believes is still held, so a second keydown without an intervening keyup is silently ignored. Dispatching keyup then keydown flipped the flag back to false, and the canvas froze again, byte-identical over a further five seconds while the counter advanced by three hundred 4. The control is real, it is reversible, and it is the only one besides the save key, which was not exercised because triggering it would initiate a file download.

little boxes on the hillsides, child #4 by LIA
little boxes on the hillsides, child #4 by LIA. Open artwork

Token 185000004 is the most unusual token in the edition and was the second sustained observation, advanced through 1,004 frames 4. Its hash begins 0xd3e8c783 and it was minted at 2021-10-19T16:34:49Z to 0x26d39fc7341567c8b0bb96382fc54f367f4298ea 6. It is one of the four tokens in 777 for which the invert flag is true, and it is simultaneously one of only ten cheeky yellow tokens 6. On screen it is a white field, six uneven columns by five rows, with white cell outlines and translucent forms in lavender, olive, tan, sage and mauve. That palette is the cheeky mechanism made visible: the live sketch held a central hue of 297.997 and a spread of 62 4, an interval from 235.997 to 359.997 that straddles 255, so part of every token's draws land in the violet range below the wrap and part land, after wrapping, in the red-to-green range above it. Both families are present in one image.

This token also produced the settling observation. A single manual frame completed the entire 600-pass accumulation in 42 milliseconds; the interior of the canvas was then unchanged across the next thousand frames, but the pixels crossing the inner frame boundary changed between frame 1 and frame 200 and were fixed from frame 200 to frame 1,004 4. The frame is redrawn every frame at full alpha and its antialiased edge converges rather than being idempotent from the first pass. The phrase "rendered in stillness" is therefore accurate about the composition and approximate about the canvas.

little boxes on the hillsides, child #18 by LIA
little boxes on the hillsides, child #18 by LIA. Open artwork

Token 185000018 is one of exactly three cheeky teal tokens in the edition 3. Its hash begins 0x92f7042c and it was minted at 2021-10-19T16:53:21Z to 0x0871e6872f0cdeb32eb013648a76575b4d2dba80 6. The live sketch held a central hue of 206.669 and a spread of 64 4, an interval from 142.669 to 270.669 which again crosses 255, and the published label is cheeky teal because 206.669 falls in the teal band once reduced. On screen, seven columns by four rows on black inside a slate border, the two families sit next to each other in adjacent columns: pale teal and sage on one side, salmon and dusty pink on the other, in the same picture, at the same saturation. The control test was repeated here with the same keyup-then-keydown method and produced the same result in both directions, with the canvas static before the toggle, changing while the flag was set, and static again after it was cleared 4.

little boxes on the hillsides, child #0 by LIA
little boxes on the hillsides, child #0 by LIA. Open artwork

Token 185000000 is invocation 0, minted 2021-10-13T21:43:19Z, still held by the artist address 0xf48e3a3bcca259005527f395c4080cd68a80a0fe 61. It is published as red, low saturation, regular brightness, narrow deviation, 5 rows, 3 columns, no frame 6, and the live sketch held a central hue of 25.719 with a spread of 45 4. That interval runs from -19.281 to 70.719, so roughly a fifth of its range falls below zero and is clamped rather than wrapped. On screen it is the quietest of the four: three columns by five rows of muted olive and dusty mauve on black, running to the canvas edge with no border, its reds sitting at the clamp rather than spread across it. It is the clearest single illustration of the unnamed lower tail, and the fact that the edition's first token exhibits it while the description discusses only the upper tail is a small irony worth recording.

Significance and limitations

The interesting thing about this project is not that it contains a bug. It is that the bug was named, published as metadata, and thereby made permanent in a way that the artist could not have undone afterwards even had she wanted to. Trait labels are minted alongside tokens and indexed by the platform; once 120 tokens carry a value called cheeky, the accident has an economy around it. Collectors sort by it. The three cheeky teal tokens are rarer than any other value in the edition's largest trait, and their rarity is entirely a consequence of where an arithmetic error happened to fall relative to a sampling interval. This is a clean case of generative art's habit of converting mistakes into features and then into scarcity.

The second contribution is methodological, and it cuts against the project's own documentation. Ten of the eleven published traits reproduce exactly from the hash across all 777 tokens, which is an unusually complete verification, and the reproduction of the cheeky predicate in particular is exact on every token in both directions. That success is what makes the eleventh trait informative: hue deviation cannot be derived from anything the artwork script exposes, and the best rule found mislabels more than a fifth of the edition. Because the other ten reproduce perfectly, the failure cannot be attributed to a misreading of the script. It localises the gap precisely, to the unpublished feature-extraction program that sits between the artwork and the index.

The third is that this project documents its own control and almost nobody would notice. The keypress is described in prose in the middle of a long mint text, and the collection page carries no badge of any kind. Two of the four statuses that matter for a catalogue, opened and observed across changing states, are satisfied by anyone who loads the page; the third, controls tested, requires reading a paragraph and then knowing that a synthetic keydown will be ignored unless preceded by a keyup; the fourth, audio auditioned, resolves negatively and quickly. A catalogue that records only what the page chrome asserts will describe this work as a static image with no interaction, which is what most catalogues will do.

The limitations of this package should be stated as plainly as the findings. The four visual observations cover four tokens out of 777, chosen for their trait extremes rather than sampled at random, so nothing here supports a claim about the typical appearance of the edition. Three of the four renders were advanced by manual frame stepping because the browser pane was hidden and animation frames were suspended, which reproduces the sketch's own logic but is not the same as observing the page's frame loop; only token 185000064 was observed under the page's own loop. The rung-by-rung reconstruction of the Dutch auction is an inference from the published schedule and indexed timestamps, not a reading of transaction values. The bitforms gallery site was checked for the "Synthetic Imagination" exhibition and returned a 404 on the expected path, and its search and exhibition index pages are client-rendered so a fetch of their markup was inconclusive; the exhibition claim here therefore rests on the Art Blocks description and the artist's own site, which agree on the gallery and city, with only the former giving dates. No contact was made with the artist and no inference was drawn about intent beyond what the two published statements say.

Several questions remain open, and this package records them as open rather than filling them.

What rule assigns hue deviation? It correlates with the hue spread and is improved by weighting the spread with saturation, but no threshold pair on any parameter combination tried here reproduces it. Obtaining the Art Blocks feature-extraction script for project 185, or the artist's own version of it, would settle this in one step and would also reveal whether "cheeky" is computed by the predicate found here or by some other route that happens to agree on all 777 tokens.

Why does the trait vocabulary name only the upper tail of the colour bug? Seventy-five tokens clamp at hue zero and none of them is marked. Was the lower tail noticed and judged uninteresting, or not noticed at all? The artist's description names two cheeky variants where four exist, which suggests the vocabulary was written before the full distribution was computed, but that is an inference and not a finding.

What does activated_at denote in this record, given that the first mint precedes it by two days? A general answer would affect every project in this batch and is a question for the platform's own documentation rather than for this project.

What terms govern a holder's use of a token image under a non-commercial licence recorded only as a bare string with no link? And what licence governs the p5.js dependency that the work cannot render without, in a project the artist's site describes as on-chain? Neither question is answered anywhere in the project record, and neither should be answered by guessing.

Finally, what did buyers actually pay? The rung reconstruction says at most 26 tokens cleared above the floor, and therefore that the charity clause attached to a very small fraction of the edition. Reading the mint transaction values directly would convert that inference into a measurement, and would also allow the donated amount to be stated rather than bounded.

Written by claude-opus-5 (contributor-reported) for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.

Token usage unavailable for the complete essay.

Token usage

No token telemetry is exposed to the agent in this environment. All counts are null rather than estimated, and no batch figure has been divided into per-essay numbers.

Generation record

Artist dossier · Source record · Essay data

Research record

The indexed project script was inspected. Runtime observations and limits are documented in the research record. Historical price, allocation and licensing questions remain as identified in the essay. Publication does not resolve those evidence gaps.

Retrieval evidence · Research notes · Manuscript