Orthogone
Pandelune · Project 88 · Factory
Edition size: 777 · First mint: 12 June 2021

The work and its context
Orthogone is Art Blocks project 88 on the contract at 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, on Ethereum mainnet, credited to Pandelune by both the index and the live project page. The indexed record returns 777 invocations against a maximum of 777, a declared dependency of p5@1.0.0, a declared aspect ratio of 4 and a curation status of factory 1. The AB5D atlas position 88 coincides with the project ID, which is a coincidence rather than a rule.
Two things make this project unusual within the batch before any code is read. It is the largest edition at 777, and it is the only panoramic one: an aspect ratio of 4 means a frame four times wider than it is tall, and the stored previews are 2400 by 600 pixels 23. Everything else here is square or close to it.
The artist describes coloured rectangles followed by white and occasional black echoes, inviting readings of buildings, movement and rhythm. The program supports a horizontal succession, but its overlaps keep the sequence from becoming a simple row of isolated objects. 21
The edition's six traits are luck, black, density, colour scheme, colour variation and colored rectangles 24. Two of those are the same number twice: the black trait counts black rectangles, taking the values 0, 1 and 2 across 679, 85 and 8 tokens, and the luck trait reports the identical distribution under the labels normal, somewhat lucky and lucky 4. These submitted trait counts cover 772 populated records; five records have missing traits. They are indexed classifications, not an independent count of visible black rectangles.
Two corrections to platform metadata are established below. The index marks the work as non-static, which alone does not establish animation. The inspected program normally draws once. And the declared aspect ratio of 4 describes the stored preview rather than the artwork, because the live renderer builds its canvas from the browser window and will produce a portrait composition in a portrait window.
The release date on the page is the usual timezone artefact: read from a machine in UTC+10 it says "Released on 15 June 2021" 2, while the underlying second-mint timestamp is 2021-06-14T20:24:03Z, which is 14 June in UTC 1.
Conception and development
A separate development history has not been verified. The mint-page statement is the only artist text located 2, the indexed record carries a null value for artist_interview 1, and the website recorded on the project is a Twitter profile rather than a site 2, which does not establish that no other artist-controlled material exists. No interview or written account was found.
What the statement offers instead of process is a reading, and it is worth taking seriously because it is the artist's own and because the code supports it. "You may guess buildings or squared ricochets" names two quite different ways of seeing the same image 2. Buildings is the vertical reading: rectangles of varying height standing on a common line, a skyline. Ricochets is the horizontal reading: a single object bouncing along, leaving a trace of where it was. The program supports both because it draws exactly one pass from left to right, placing each rectangle at a vertical offset from the centre line and then moving on. Successive shapes can overlap positions already occupied.
The third phrase, "sense the underlying rhythm", is the one that maps most directly onto a parameter. The horizontal gap between one coloured rectangle and the next is drawn fresh each time from a range whose bounds are themselves drawn once per token. A token with a narrow range has an even, metronomic spacing; a token with a wide one clusters and spreads. The index offers density labels, but the trait-extraction procedure has not been inspected. The visual effect of the gap parameter can be described without assuming that it is identical to that classification. 14
No dated development repository or statement of influences was located in this review. The work's obvious kinship with mid-century geometric abstraction is left unremarked here because the artist does not claim it and this dossier does not attribute readings to artists who have not offered them.
How the work was constructed
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 1. It is 6,118 bytes and hashes to SHA-256 5e4f9ec537bff6927062f07acb070175f26b34b046ce97393d1923a5d5ec0de2. 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.
The first thing to say about this script is that most of it is not the artwork. It is a webpack bundle, and roughly four fifths of its bytes are a third-party colour library compiled into the on-chain code. The artist's own drawing program, at the end of the bundle, is about a thousand bytes.
The bundled colour routine shares distinctive preset arrays, a fifteen-degree colour-wheel table and mutable-colour methods with the upstream color-scheme-js source. The inspected upstream implementation also includes functions absent from this bundle, so the comparison supports a relationship without establishing the exact version or modification history. The project’s external asset count does not inventory code already incorporated into its script. A zero count therefore does not contradict the presence of a bundled routine. 15
The artist's own program is compact. A single xorshift generator is seeded from the first sixteen characters of the token hash, including its 0x prefix, with its decimal output taken modulo one thousand and divided by one thousand, which is the same quantised pattern seen in three other projects in this batch.
Setup creates a canvas at the browser window’s width and height, fills it with a near-white ground and disables the animation loop. Palette selection chooses one of four scheme names, one of three variation presets and a starting hue. A separate distance setting is passed through an integer helper: flooring a value between 0.25 and 0.5 makes it zero. It therefore does not vary across the intended fractional interval. In the bundled colour routine, this collapses some nominally separate hue positions onto one another. 1
The returned palette has eight entries for contrast, twelve for triade and analogic, and sixteen for tetrade. Entry count is not a count of distinct colours: repeated hues and variant settings can produce duplicate values. The program chooses among the returned entries when filling each main rectangle. Calling every result a sixteen-colour palette would misdescribe both the scheme branches and their effective variety. 1
The main drawing loop advances a horizontal cursor through a design space scaled from a width of 1200. Its additive random helper returns a starting value plus a random fraction of a span. Thus the main width is at least 20 and below 120 design units, while its height is at least 40 and below 140 units before width-based scaling. This differs from a helper that samples between two endpoints. A discrete vertical choice places the rectangle above, across or below the horizontal centre. The cursor then advances by its width and a token-dependent random gap. 1
The program next selects black or white once, before entering the echo loop. The integer condition selects black for one of a hundred possible integer buckets; the same selected fill applies to all echoes in that group. Some groups draw no echoes. Moreover, the loop redraws its random stopping comparison on each iteration rather than choosing a fixed echo count in advance. The index’s observed black counts cannot therefore be interpreted as independent one-percent trials for every visible echo. 1
Two details give the work its particular crispness. Every coordinate and dimension passes through a snapping function that rounds it to a multiple of a small unit derived from the canvas width, so edges align with each other rather than falling wherever the arithmetic lands. And the echoes are drawn after the cursor has already advanced, which is why they overlap the following rectangle rather than the one they belong to, producing the interlocking that makes the row read as a continuous structure rather than a series of separate objects.
The black rectangles result from this procedural selection rather than from a separately allocated count of black shapes. Their visible force still depends on placement and overlap. A one-percent branch in a seeded generator describes the code’s threshold; it is not an audited population frequency or a guarantee about how often black will be visible in the minted edition. 1
The mint
The indexed record separates four events 1. The first token was minted at 2021-06-12T06:05:56Z. The project was activated at 2021-06-14T16:10:55Z. The second token was minted at 2021-06-14T20:24:03Z, and start_datetime carries that same value. The project completed at 2021-08-01T15:02:13Z. In UTC those are 12 June, 14 June, 14 June and 1 August 2021.
The two and a half day 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. Its current owner is the artist address recorded on the project 6, which is a current-address observation, not a reconstruction of uninterrupted custody.
The interval from the second indexed mint to completion is 47 days, 18 hours, 38 minutes and 10 seconds, covering invocations 1 through 776. It is not presented as a public sale duration, because the index does not establish when minting opened and start_datetime duplicates the second mint rather than marking an opening.
The sampled records show how slow the middle of the sale was. Invocation 1 was minted on 14 June, invocation 10 on 24 June, and invocation 20 on 27 June 6. Twenty invocations took a fortnight. The AB5D holding, invocation 476, was minted at 2021-08-01T06:09:13Z 6, about nine hours before the project completed, so it came from the final push rather than the opening.
The record reports a price of 110000000000000000 wei, that is 0.11 ETH 1, recorded as the currently configured value rather than as the price paid at mint; no primary announcement of an original price was located.
Copyright and licensing
The indexed record reports a licence label of "NFT License 2.0" for the artwork, with a null link to the licence 1. 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 2.
That label is worth comparing directly with another project in this same batch. Panelscape, on the same contract, carries the bare string "NFT License" where this one carries "NFT License 2.0" 7. A census of the field across all 359 projects on this contract returns 34 distinct strings, and within the NFT License family alone it holds "NFT License", " NFT License" with a leading space, "NFT License 2.0" and "NFT 2.0" 7. Only 87 of the 359 projects carry any licence link. Two artists typing into an unvalidated text box will produce two different strings whether or not they mean different things, and nothing in the field distinguishes a deliberate version choice from a typing difference.
Artwork rights are therefore recorded as a reported "NFT License 2.0" label with a null terms URL, status reported rather than verified, category custom, and the missing terms raised as an editorial exception.
The colour routine has a plausible upstream source in color-scheme-js. Its repository publishes an MIT licence with a 2017 Brian Hann copyright notice and a requirement to retain the notice and permission text in copies or substantial portions. This establishes the inspected upstream terms, not the exact provenance or licensing history of every byte bundled into Orthogone. The minified artist script alone does not settle where attribution was supplied. No compliance conclusion is drawn here. 58
Code rights for the artist's own portion are unknown and kept separate. No licence statement accompanies the script. The page describes the contract type as "Fully on-chain" 2, which makes the whole bundle readable and grants nothing. 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.
The declared rendering dependency, p5.js 1.0.0, includes an LGPL 2.1 licence in its versioned repository. That dependency licence does not establish a separate reuse grant for the artist’s drawing program or its resulting images. 9
Close reading of examples
The close readings compare the platform previews of #0, #3, #20 and #476. The coordinator inspected all four in a browser fitted to the viewport; the underlying images are 2400 by 600 pixels. Canonical token records identify the samples. Submitted runtime measurements are discussed separately and have not yet been independently reproduced. 6310
The panoramic format does something specific to how these images read. At four to one, the eye travels rather than settles, and because the program draws a single left-to-right pass the image has a direction: it starts, it proceeds, it stops. The near-white ground occupies most of the frame in the sparser tokens, so the rectangles read as events in time rather than as a composition filling a rectangle.

In #0, cream and yellow rectangles alternate with lavender, olive and violet. Several generous gaps divide the row into separate events. Small white outlined shapes project above some coloured rectangles, while a white and yellow pairing near the middle reads almost as two compartments within one tall container. The changing heights prevent the row from acquiring a stable baseline. The eye can follow a horizontal sequence, but each step also asks it to move up or down. That interruption is part of the rhythm, not just an effect of the gaps. 3
The violet group toward the right gives #0 a stronger ending without closing the sequence into a single object. Its comparatively saturated blocks draw attention across the paler yellow and cream areas. Small white projections remain visible above larger coloured faces; their outlines make them distinct even where their interiors almost merge with the ground. This is where the echo analogy is most useful: the repeated rectangular shape retains its identity while changing size, colour and degree of concealment. 3

A fresh query across all three wallets linked to the AB5D profile confirms #476 as the collection’s holding. Its preview develops a green family from near-white through lime to muted leaf green. A high cluster at the left gives way to a low, broad block and then a brighter upright form near the centre. Further right, the row repeatedly changes height. Narrow white stacks appear between much larger coloured rectangles, so the sequence alternates broad pauses with busy joints. The architectural reading offered by the artist is plausible here, but the lack of a common ground line keeps these forms from settling into a conventional skyline. 6113
The restricted hue family in #476 makes the outlines particularly important. A pale green rectangle can appear almost continuous with the white field until its border gives it weight. The brighter central green becomes a local anchor, while darker blocks toward either end keep the whole sequence distributed. Compared with #0, more shapes touch or overlap, and the eye spends longer disentangling neighbouring forms. These observations concern the displayed preview, not a measured ranking of density across all 777 works. 3

In #3, ochre, tan, teal and pale grey rectangles overlap into a nearly continuous row. A broad black region left of centre is partly concealed by teal, making darkness read as a recess behind the coloured surface. White outlined fragments protrude at the top and bottom, interrupting the possibility of one smooth silhouette. The index labels the token lucky, but the visible effect is more specific than that classification: black makes a local change in depth within an already crowded arrangement. 43

In #20, muted ochre, grey-brown and pale stone form an uneven chain. A tall dark block near the left rises above a lower, thinner neighbour; the broad pale rectangles through the middle create slower intervals. White echoes extend both upward and downward, making the surrounding blank field visible inside the construction. Beside #3, this quieter palette makes changes of proportion easier to follow, without removing the ambiguity between linked objects and overlapping flat marks. 3
The original renderer for #476 was independently opened in a 1280 by 720 browser view. Two separated observations showed no visible change in the arrangement or colour. The inspected script calls noLoop during setup, supporting the interpretation of a normally static output. A false display_static field in the index is insufficient by itself to establish animation. The coordinator did not reproduce the submitted numerical canvas-signature test or independently monitor sound. No audio mechanism or input handlers occur in the inspected artist program. 112
In that live window, the green row runs through a substantially larger pale field than in the panoramic preview. The relationships among the rectangles remain recognizable, but their surrounding space changes the balance: the row becomes an isolated band rather than almost filling the frame’s height. This follows the code’s use of window dimensions for the canvas and width-based scaling for the forms. Preserving the declared wide presentation is therefore useful when showing the preview, while the original renderer remains available for comparison. 1123
The edition sweep also found five tokens carrying completely empty trait objects: 88000415, 88000446, 88000669, 88000670 and 88000671 4. This is a submitted metadata observation. The coordinator has not opened those five originals, so no claim about their rendering success follows from the presence of their hashes.
Significance and limitations
Orthogone is the simplest drawing program in this batch and one of the most confident. A single left-to-right pass, one rectangle at a time, each followed by a few white echoes, on a near-white ground, snapped to a grid so that edges meet. There is no field, no simulation, no recursion and no second pass. Variation comes from proportion, spacing, overlap and colour. Colour is generated through the artist’s selection of parameters passed to a bundled colour routine that takes a hue, a scheme name and a variation preset and returns a scheme-dependent palette.
Using a colour routine does not remove authorship from the choices that surround it. Pandelune selects the available schemes and presets, constrains the parameters and determines how colours meet rectangles and blank ground. Here the distance parameter’s flooring is especially consequential: the deployed rules produce a narrower range of hue relationships than the nominal fractional range suggests. The picture should be understood through those actual relationships, rather than through an assumption that more palette entries imply more independent colours. 1
The black-fill branch is a designed part of the system, even though it does not allocate a fixed count to each token. Its effect depends on the number of groups and on subsequent drawing. The submitted index counts describe the resulting trait records, with five records missing traits; they should not be presented as a guarantee about the probability of a future output or a moral distinction between this project and other editions. 14
Two findings matter for the archive. The first is the platform metadata: the index sets display_static to false, but the script disables the loop during setup 112. The rendering procedure is stronger evidence of behaviour than this flag alone.
The second is the one that should change how the dossier presents the work. The declared aspect ratio of 4 is a property of the stored preview, not of the artwork. The live renderer sizes its canvas from the browser window, so the same token in a portrait window is a thin band of rectangles adrift in a very large empty field 12. For a piece whose entire identity is a horizontal succession, that is not a cropping difference; it changes what the image is about. Any embed of this work needs to be given a wide container deliberately, or it will misrepresent it.
The limitations are the familiar ones. The inspected artist statement is brief and a separate development interview has not been verified, and the website of record is a social profile 21. The original mint price is not established. The rights position is a documented gap, while the likely upstream colour routine has now been located under MIT terms, without establishing its exact bundled version. And five tokens in the edition have no traits at all in the index, which filtering systems need to handle explicitly 4.
Unresolved research questions:
- Locate further artist development material.
- Establish historical public pricing and mint allocations.
- Identify the operative artwork licence and exact bundled colour-library version.
- Reproduce the submitted trait census and inspect the five records with missing traits.
References
-
Art Blocks public GraphQL index. Art Blocks indexed project record for orthogone-by-pandelune (GraphQL projects_metadata, including script). Accessed 2026-09-18. ↩
-
Art Blocks. Orthogone by Pandelune, project page. Accessed 2026-09-18. ↩
-
Pandelune. Rendered preview images for Orthogone invocations 0, 476, 3 and 20 (platform media proxy). Accessed 2026-09-18. ↩
-
Art Blocks public GraphQL index. Art Blocks indexed token sweep of the complete Orthogone edition (GraphQL tokens_metadata, 777 rows). Accessed 2026-09-18. ↩
-
Brian Hann / color-scheme-js contributors. color-scheme-js upstream source. Accessed 2026-09-18. ↩
-
Art Blocks public GraphQL index. Art Blocks indexed token records for Orthogone invocations 0, 1, 10, 20 and 476 (GraphQL tokens_metadata). Accessed 2026-09-18. ↩
-
Art Blocks public GraphQL index. Census of the licence field across all projects on the Art Blocks contract (GraphQL projects_metadata). Accessed 2026-09-18. ↩
-
Brian Hann / color-scheme-js contributors. color-scheme-js licence. Accessed 2026-09-18. ↩
-
p5.js contributors / Free Software Foundation. p5.js 1.0.0 licence. Accessed 2026-09-18. ↩
-
Art Blocks. Canonical token page checks for Orthogone sampled tokens. Accessed 2026-09-18. ↩
-
Art Blocks. AB5D collector profile and linked wallet set. Accessed 2026-09-18. ↩
-
Art Blocks. Art Blocks live renderer for Orthogone #476, static verification and canvas shape observation. Accessed 2026-09-18. ↩
Written by Claude (submitted model: claude-opus-5), reviewed and revised by OpenAI Codex for AB5D. Original prose: CC0. Artwork and code rights are addressed separately above.
Token usage unavailable for the complete essay.
Token usage
Claude supplied no token telemetry. Review usage is not separately measured. Submitted model identifier is retained without independent runtime verification.
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.
