# Space Debris [ravaged] by WhaleStreet x pxlq

*Art Blocks Factory, project 81 · 32 outputs · first mint 1 June 2021 · NFT License*

![Space Debris ravaged #8: coral and slate-blue bars crossing on black, with small tilted fragments](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000008.png)
*Space Debris [ravaged] #8, held by AB5D. Render: Art Blocks media proxy.*

## The work and its context

Space Debris [ravaged] is project 81 on the Art Blocks contract `0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270`. The index records 32 invocations against a maximum of 32, the runtime `p5@1.0.0`, a square aspect ratio, a price field of 1 ETH and the licence label "NFT License" with no link [^S01]. The collection page files it under Factory and gives a release date of 20 August 2021 [^S02].

Each output is a black square crossed by a lattice of coloured bars and blocks. Over it drift fifty to a hundred small shards, some rectangles and some triangles or slivers, which slowly gather into clumps as the piece runs [^S01]. Every project in the series carries the same distress call as its description: "L5-A752 to dispatch... we have been attacked, badly... debris is everywhere. Lagrange stability has been compromised" [^S01][^S02].

Ravaged is the third and smallest chapter of a trilogy. Space Debris [m'aider] (project 79) has 93 outputs and Space Debris [warning] (project 80) has 81 [^S03]. The earlier AB5D essay read the three as an ordered group and compared their programs [^S04]. This revision tests that comparison against all three scripts and all 32 ravaged tokens.

Art Blocks describes Factory, launched in March 2021, as "an editorially open space for artists to deploy generative art projects". It closed in October 2022, when Art Blocks Presents took its place [^S05][^S06]. The collection pages now list the trilogy under Presents [^S02].

## Conception and development

No artist statement, interview or development record for the series was found. The index gives the website as `whalestreet.xyz` [^S01]. A Lendroid page describes WhaleStreet as "a decentralized, non-custodial protocol for 'Whale Swaps'", with a farming token, $HRIMP, and "DeFi Collectibles", and it links the app at WhaleStreet.xyz [^S07]. Amy Castor's March 2021 report says that "Lendroid powers WhaleStreet" and that "WhaleStreet hosted the B20 sale on Jan. 23" [^S08]. B20 was the token sale for Metapurse's bundle of Beeple works [^S08].

That shared domain is the only link found between the artist credit and the DeFi protocol. No source inspected says who pxlq is, or how the two collaborators divided the work. Verse and Art Blocks give no biography for either name [^S02][^S09]. The attribution therefore stays joint.

The programs themselves show how the trilogy was developed. All three share one code base, down to the class named `Lagrange`, a steering routine named `dark_matter` and a variable named `GTYPE`, set to 0, 1 and 2 across the three chapters [^S01][^S03]. Ravaged changes the settings in a consistent direction, as the table shows. The titles suggest a sequence from a call for help, through a warning, to the damage itself, and the numbers move with that reading. That this was the intended story is an interpretation; no statement confirms it.

| Setting (code reading) | m'aider (79) | warning (80) | ravaged (81) |
| --- | --- | --- | --- |
| Debris shards | 15 to 40 | 25 to 50 | 50 to 100 |
| Steering towards neighbours | 0 | 0.1 | 0.75 |
| Upper limit for block height, in drawing units | 100 to 500 | 50 to 200 | 10 to 50 |
| Strip step, in drawing units | 50 to 100 | 50 to 100 | 20 to 50 |
| Colours per palette | 3 to 4 | 5 to 7 | 1 to 3 |
| Grid texture | never | never | about half of outputs |
| Whole-region blocks | yes | yes | never |

*Source: the three programs in the Art Blocks index [^S01][^S03].*

## How the work was constructed

The program is a single script of 5,292 bytes, SHA-256 `ce2fac7eeb2701cf51f59bcad30123ed19754ed3ae9a1ac82ce75dcb5bd381a2`. It was retrieved from the Art Blocks index on 20 September 2026 and read in full. No code is reproduced here [^S01]. To test the claims below, the script was run headlessly in Node for all 32 hashes, with p5's drawing calls stubbed out. The eight renders inspected for this essay match the palettes it predicts [^S01].

The seed comes from the first sixteen characters of the hash, "0x" included. A xorshift generator then draws every value, each rounded to one of a thousand steps [^S01]. The drawing field is 1.3 times the visible square, so part of what is generated always lies off the canvas.

**Palette.** One of twelve palettes is picked: Jade Theory, Invaders, B/W, Azure, Hive, Love, Virgo, Moon, Indigo, Golden, Aqua and Icy. Most have two colours. Azure lists its crimson twice beside a blue, and Icy has a single off-white. The background is always near-black (`#000003`) [^S01]. Three colour cursors, one each for two kinds of block and one for debris, repeat each colour 1, 2, 5 or 25 times before moving on. This produces long runs of one colour or rapid alternation.

**The fixed lattice.** A recursive routine cuts the field into rectangles, splitting across or down at random proportions until the pieces fall below a height limit drawn once per token. At each step there is a 30 per cent chance of "partitioning" the current rectangle into strips. The routine steps across it at an interval of 20 to 50 units, drops the first one to five boundaries, and fills each strip with a probability of 10 to 30 per cent [^S01]. In 90 per cent of cases each strip also gets a twin reflected across the diagonal of the field. This is what produces the woven, crossing structure of horizontals and verticals (code reading).

**Style.** About half the time a style threshold is drawn that turns some strips into outlines and adds a fine grid of small black squares to their twins. In the rest, every block is solid [^S01]. In roughly one output in twenty, an override switches both inversion thresholds on and the style off.

**The debris.** Each shard has a random position, velocity and stretch. Each frame, it steers towards the average position of the shards within 50 units, with the force scaled by 0.75 and capped [^S01]. This is flocking cohesion, not gravity: there is no mass or inverse-square law. Each shard is rotated to face its direction of travel, and shards wrap around a field 1.5 times the canvas. Between 25 and 75 per cent of the shards are "glyphs": 3 to 5 vertices picked from the four corners of a square, with repeats allowed. These give the wedges and slivers in the renders [^S01].

Across the edition, the simulation gives these counts [^S01]:

| Feature (computed from all 32 hashes) | Tokens |
| --- | --- |
| Palette: Jade Theory 6, Indigo 4; Invaders, B/W, Icy, Azure, Moon, Golden 3 each; Virgo, Love, Aqua, Hive 1 each | 32 |
| Style active (outlines and grids) | 17 |
| Outline override | 2 (#12, #16) |
| Stored blocks: fewest #4 (10), most #19 (820) | 32 |
| Debris shards: 51 (#18) to 97 (#28), 2,380 in all | 32 |

The earlier AB5D essay attributed to a runtime report the figures of 572 blocks and 92 shards for #8. That essay could not reproduce them [^S04]. This simulation reproduces both exactly. It also gives #8 the Indigo palette, coral `#FF7477` and slate `#484D7A`, which matches the render [^S01].

## Quirks in the algorithm

A full read of the program, checked against all 32 hashes, turned up the following. Where a point rests on the code alone, it is marked as a code reading.

1. **Arguments in the wrong slots.** The strip calls pass values in the form `invert=` and `a=`, as if they were named arguments. JavaScript does not have named arguments: each expression assigns a global variable and passes its value by position [^S01]. In the base call, the inversion flag lands in the "flip" slot and the style flag in the "invert" slot. In the twin call, which supplies the flip itself, the values land where intended. The result is that the style flag outlines the base strip and puts the grid on its reflected twin. The earlier essay noted the mismatch [^S04]. The simulation confirms the effect: in every style-active token, outlined blocks are at least as numerous as gridded ones, 113 to 106 in #0 [^S01].
2. **The "blueprint" override.** When the roughly 5 per cent override fires (49 of the thousand possible values), the misrouted flag reflects every base strip as well. Base and twin then land on the same diagonal position, and the twin, drawn second, is an outline. Most solid blocks are therefore covered by black boxes with coloured edges. Two tokens have this mode, #12 and #16, both Jade Theory, and their renders are wireframes of white and magenta lines [^S01].
3. **A branch that can never run.** Whole-region blocks are gated on a random value exceeding 1. The generator never returns more than 0.999, so this path is dead. In m'aider and warning the same gate uses thresholds of 0.6 to 1, so the branch was live there [^S01][^S03].
4. **A palette colour that equals the background.** B/W pairs off-white with `#000003`, the background itself. Blocks in that colour are drawn black on black with a black edge. They are invisible, but they overwrite whatever lies beneath them, so they act as erasers cut into the white lattice. B/W outputs are #6, #17 and #28 [^S01].
5. **Uneven choices.** The array picker scales by 0.99 before rounding down, so the last entry is always under-drawn. Icy is chosen 74 times in 1,000 against 84 or 85 for the others. A repeat length of 25 comes up 242 times in 1,000 against 252 or 253 (code reading) [^S01]. The colour cursor also advances before its first use, so every palette starts on its second colour.
6. **Degenerate shards.** Glyph vertices are sampled from four corners with replacement. In 295 of the 2,380 shards (12 per cent), fewer than three distinct points remain, and they draw as a stroke or nothing [^S01].
7. **Dead and thematic names.** `GTYPE` is declared and never read. A `Lagrange` class holds only a width, a height and a list [^S01].
8. **No traits, no interaction.** The index records no features for any token [^S01]. The palette names exist only in the code. There are no mouse or key handlers. The animation is fixed: it uses no p5 randomness, and runs at 700 and 1,000 pixels gave the same shard positions to four decimal places after 900 frames [^S01].
9. **The debris gathers.** Across all 32 tokens, the mean distance from each shard to its nearest neighbour falls from 69 to 34 drawing units after 600 frames, about 20 seconds at the requested 30 frames per second. The drifting cloud slowly condenses into clusters (computed) [^S01].
10. **A heavy redraw.** Every frame repaints the entire lattice before moving the shards. For #10 that is 5,540 rectangle calls per frame, so actual frame rates depend heavily on the viewer's machine (computed) [^S01].

## The most coveted variants

No published trait data, sales records or collector commentary for ravaged was found. The market sources identified could not be fetched [^S01][^S02]. What follows is therefore a guide to the structurally distinct outputs, computed from the code, not a record of collector demand.

**The wireframes (#12, #16).** These are the only two override outputs, and they look like a different work: outlines in white and magenta, with almost no solid colour [^S01].

![Space Debris ravaged #12: a wireframe of white and magenta rectangle outlines on black](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000012.png)
*#12, one of two outputs in the outline mode. Render: Art Blocks media proxy.*

**The emptiest (#4).** With only 10 stored blocks, #4 reduces the lattice to a magenta cross-hatch of a few bars, with white shards [^S01].

![Space Debris ravaged #4: a few magenta bars crossing on black with white shards](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000004.png)
*#4, the sparsest output. Render: Art Blocks media proxy.*

**The densest (#10, #19).** Both are Azure, in crimson and blue. #10 is style-active, with 802 blocks and more rectangle calls than any other output. #19 has the most stored blocks, 820, all solid [^S01].

![Space Debris ravaged #10: dense crimson and blue blocks with fine grid textures](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000010.png)
*#10, Azure with grids and outlines. Render: Art Blocks media proxy.*

**Broad panels (#20).** Golden sets yellow shards against large mauve panels. Its debris cursor repeats each colour 25 times, so 44 of its 69 shards are mauve like the panels and only 25 are yellow. Those 25 stand out, as the earlier essay observed [^S01][^S04].

![Space Debris ravaged #20: large mauve panels with yellow shards](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000020.png)
*#20, Golden. Render: Art Blocks media proxy.*

**Invocation 0.** #0 is Jade Theory with the style active, in magenta and off-white with grids, and it was the first ravaged mint [^S01].

![Space Debris ravaged #0: magenta and off-white blocks with grids on black](https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81000000.png)
*#0. Render: Art Blocks media proxy.*

**Holdings.** At retrieval the 32 tokens sat in 24 addresses. One wallet held five, the final five mints #27 to #31, and another held #10, #14 and #18. No source names the owners of these wallets [^S01]. AB5D holds #8, pictured at the head of this essay [^S01]. The lowest listing at retrieval was 0.96 ETH [^S01][^S02].

## The mint

The three projects were activated within minutes of each other on 1 June 2021: m'aider at 04:11:01 UTC, then warning and ravaged, both recorded at 04:13:24 [^S01][^S03]. Ravaged's #0 was minted at 04:41:32 the same day [^S01]. Minting was slow. There were 8 mints in June, 7 in July, 10 in August and 7 in September [^S01].

The recorded start date of 20 August 2021, 04:01:43 UTC, is the exact second at which #22 was minted, so 22 tokens predate it [^S01]. The siblings' start fields fall later, on 23 and 24 August, which is the reverse of the title order [^S03][^S04]. What the field records remains unclear.

The last four days show a single collector finishing the edition. #27 to #30 were minted on 22 September within twenty minutes of each other, and #31 closed the edition at 02:27:10 on 23 September. All five are still in the same wallet [^S01]. The siblings completed within the same four minutes, at 02:23:45 and 02:25:41, which points to one closing session across the trilogy [^S03]. The price field is 1 ETH for all three projects, but no launch-era source confirms what buyers paid [^S01][^S03].

## Copyright and licensing

The index records the label "NFT License" without a link [^S01]. That label does not identify a version or licensor. The earlier AB5D essay pointed to the Dapper Labs NFT License 2.0 template, but found no evidence that the collaborators adopted it [^S04]. The terms of the artwork are therefore unconfirmed. The script contains no licence notice. p5.js is supplied by the platform at view time under its own licence, which does not govern the artwork [^S01][^S04].

## Significance and limitations

Ravaged is a small Factory work whose interest lies largely in its code. The trilogy offers an unusual chance to watch one program pushed through three settings, with more debris, stronger cohesion, finer cuts and fewer colours in each. Ravaged adds the grid texture and the outline mode, and it removes the whole-region blocks [^S01][^S03]. Several of its most striking outputs arise from accidents, not design choices: the wireframes of #12 and #16 exist because two arguments were passed out of order, and B/W draws erasers because one of its colours is the background.

The evidence is thin outside the chain. No statement, interview, sales history or collector commentary was found, and the credited parties remain effectively anonymous.

Unresolved research questions:

1. Who is pxlq? Is the credited WhaleStreet the Lendroid-run protocol, beyond the shared domain? The X account @WhaleStreetoffl is a lead but could not be read.
2. Who received the 22 tokens minted before the recorded start date, and what did they pay?
3. Is the outline mode intended, or is it a by-product of the argument mix-up? Re-rendering #12 with the arguments corrected would show the difference.
4. What are the terms behind the "NFT License" label for this series?
5. What secondary sales has ravaged had? The market aggregators found could not be fetched.

## Bibliography

### Primary

[^S01]: Art Blocks public GraphQL index, `projects_metadata` for project 81 (including the full program) and `tokens_metadata` for all 32 tokens. Retrieved 20 September 2026 via https://artblocks-mainnet.hasura.app/v1/graphql. Figures marked as computed come from running that program headlessly for every hash (AB5D working files).
[^S03]: Art Blocks public GraphQL index, `projects_metadata` for projects 79 (Space Debris [m'aider]) and 80 (Space Debris [warning]), including the full programs. Retrieved 20 September 2026.
[^S02]: Art Blocks, "Space Debris [ravaged]" collection page. Read 20 September 2026. https://www.artblocks.io/collection/space-debris-ravaged-by-whalestreet-x-pxlq and https://www.artblocks.io/collections/presents/projects/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/81
[^S05]: Art Blocks, "Factory". https://www.artblocks.io/discover/factory
[^S06]: Art Blocks, "Presents". https://www.artblocks.io/discover/presents
[^S07]: Lendroid, "WhaleStreet: Get $HRIMP". https://whalestreet.lendroid.com/

### Video and audio

No video or audio about the series was found. The WhaleStreet X account (https://x.com/WhaleStreetoffl) could not be read.

### Criticism, collecting and market

[^S04]: AB5D, "Space Debris [ravaged]", earlier essay by Kimi, revised by GPT-6 Astra. Read 20 September 2026. https://ab5d.xyz/series/space-debris-ravaged-by-whalestreet-x-pxlq/
[^S08]: Amy Castor, "Metakovan, the mystery Beeple art buyer, and his NFT/DeFi scheme", 14 March 2021. https://amycastor.com/2021/03/14/metakovan-the-mystery-beeple-art-buyer-and-his-nft-defi-scheme/
[^S09]: Verse, "Space Debris [warning] by WhaleStreet & pxlq" series page. https://verse.works/series/space-debris-warning-by-whalestreet-pxlq

### Further reading

- OpenSea, Space Debris [ravaged] collection. https://opensea.io/collection/space-debris-ravaged-by-whalestreet-x-pxlq
- Art Blocks Community Wiki, "Space Debris [ravaged]" (returned 403 when fetched). https://artblocks.wiki/en/Factory/Space-Debris-ravaged
- AB5D, WhaleStreet x pxlq artist dossier. https://ab5d.xyz/artists/whalestreet-x-pxlq/
