# Subscapes research in progress

Status: source discovery and indexed-script retrieval complete; full indexed-code inspection and four preview comparisons now complete; held-work verification, essay and validation remain outstanding. Not a completed essay.

## Identity and retrieval

Project 53, Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. Artist Matt DesLauriers. Indexed metadata retained in the ignored series-expansion metadata cache. Retrieved 17,130-character script and token records for editions 0, 1, 10 and 20 from https://artblocks-mainnet.hasura.app/v1/graphql on 18 September 2026. Script SHA-256: a6b6984e0fc0ceb54c6d7299df93e86b927031f788877a773097ba93fab2b3f1. Retrieval is not yet full inspection or a pinned chain comparison. Do not redistribute the script.

## Primary sources located and read

- https://mattdesl.substack.com/p/subscapes-part-1-preface (5 May 2021): intended 650-edition project, imagined topographic landscapes, software preservation context. Keep eventual derived prose within source allowance.
- https://mattdesl.substack.com/p/subscapes-part-2-traits (5 May 2021): token hashes and designed variation. Full detail remains to inspect.
- https://mattdesl.substack.com/p/subscapes-part-3 (6 July 2021): artist explains projection, parametric terrain, noise, recursive rectangular division, sampling, flow fields, visibility tests, lighting and colour. Treat these as the artist's published account until independently checked against retrieved code. Its description of a quadtree also describes binary splits; use precise code evidence when writing. Higher visibility-test resolution changes rendering cost and can reduce artefacts. Core algorithm rights are explicitly distinguished from the MIT examples and utilities. Limit essay derivation from this source to 200 words; build further technical account from actual code inspection.
- https://github.com/mattdesl/subscapes : tooling repository. Explicitly distinguishes MIT repository utilities, CC BY-NC 4.0 output images, and the excluded core generative algorithm. GitHub's MIT badge does not license the blockchain script. README identifies default raycast subdivision 42 and alternate-resolution CLI outputs. Do not install tooling merely to inspect artwork.
- https://shop.mattdesl.com/pages/subscapes : artist dates release 23 April 2021 and labels token zero an artist mint. Physical print eligibility is tied to token ownership but physical prints are not a one-token/one-print edition. Relevant to separating first mint from public release.
- https://www.artblocks.io/articles/in-conversation-with-matt-deslauriers-on-subscapes : official interview located; inspect full content next.

## Indexed mint fields

650 invocations / maximum 650. Activation 2021-04-22T13:18:43+00:00; first mint 2021-04-22T13:35:54+00:00; second mint and scheduled start 2021-04-23T17:01:03+00:00; completion 2021-04-23T17:08:27+00:00. Current price setting 0.17 ETH is not independently established as opening price. Artist account supports an intended 650 edition and identifies #0 as artist mint. Do not call the 7m24s second-to-last interval an audited public sellout without transaction classification.

## Rights

Indexed label CC BY-NC 4.0, terms link null, dependency js@na. Artist repository supplies a distinct corroborating artwork grant and expressly excludes the core script. Verify linked licence file/deed before final rights section. Do not import the standard p5 library paragraph: this project has a standalone JavaScript renderer.

## Next work

Inspect complete script and all four outputs, fetch verified AB5D-held example, inspect interview and traits account, then draft seven required sections with a source ledger. Do not register in publication manifest until this work and validation are complete.

## Direct inspection of complete indexed script

Read complete 17,130-character script on 18 September 2026. Function names below refer to this exact minified retrieval, not stable public API names.

- `se` parses the input hash into bytes and applies `ce` twice with different numeric seeds; writes resulting state through DataView into four Uint16 slots. `oe` evolves that state and returns a bounded pseudorandom value. `pe` supplies cached paired Gaussian samples. `Math.random` is only in the fallback hash generator when tokenData is absent; it is not used for a normal token's input.
- `f` is the generator, with default visibility mesh resolution 42. It seeds state, constructs simplex function `Te`, selects palette/style through `Se`, then terrain and drawing parameters. Noise helper `C` sums six scaled samples with weights 1,.5,.25,.13,.06,.03 and divides by1.97. Terrain `Ye` combines shifted noise, power shaping and selected profile alterations. Some branches compress one horizontal dimension, form an island-like radial falloff or carve a channel. Avoid assigning every short variable to a named trait without corroborating the trait decoder.
- `G` samples the surface into vertices, two triangles per grid cell, plus quadrilateral cells. Hardcoded forward/inverse matrices provide fixed projection. This is a computed terrain, not imported geographic elevation data.
- `r` recursively splits rectangles into TWO children, with depth, minimum dimension, split position and axis controls. Call it recursive rectangular subdivision; do not repeat a strict four-child quadtree description. Leaf rectangles receive drawing choices.
- Stroke starts use a regular grid or a spatially checked disk-spacing routine. The latter keeps a cell grid for neighbour lookup and tests nearby distances before accepting a point. Starting points feed short paths with selected fixed angle or noise-derived angle. Path points become terrain coordinates through `Ye` before projection.
- Finite differences around a surface position build normals. Dot product with selected lighting vector affects colour and discrete width choices. Blending modes include multiply and screen; palette function includes stored hex colours, weighted style choices, contrast filtering and OKLab-derived procedural RGB values. Distinguish discrete weights from audited minted-series frequencies.
- `st` locates the mesh triangle for a stroke vertex. `ut` caches visibility per triangle; it tests orientation and casts against other triangles through `F`. Visible runs are split when vertices fail visibility or projected bounds. Some drawing branches bypass these tests. Mesh resolution can affect the result; not a physically exact terrain simulation.
- `it` holds projected coloured stroke runs and widths. `bt` masks the lower tile face; `gt` supplies layered base-edge lines. Renderer draws stroke runs, fills the base polygon in background colour (optionally another fill), then base lines. This ordering makes the object appear bounded and cut out.
- Return mode with second argument truthy exposes generated data; normal mode returns a Canvas2D drawing function. Wrapper calls it once and redraws on resize, accounting for devicePixelRatio. No animation loop, pointer action or keyboard handler in the inspected wrapper. No external p5 import. Need original-render observation before claiming execution; currently inspected previews only.

## Four actual visual observations

All four official preview PNGs inspected in built-in browser, 18 September 2026. URL pattern https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/{tokenId}.png. Early-edition sample chosen in advance, not statistically representative.

- #0 /53000000: dark burgundy ground, tall upper plateau breaking into a near-vertical central drop. Purple, peach, cream and ochre strokes form rectangular bands across upper and lower terrain. Some pass coherently over the bend; other patches break into little dashes. Fine left-front base lines slope down to a low front point. Colour subdivision reads partly as a fabric laid over a cliff, an interpretation rather than documented intention.
- #1 /53000001: pale ground, green fine strokes throughout low tilted-square terrain. Small central-right ridges emerge within broad sweeping curved strokes. Three fine green base lines make its shallow depth visible. Limited colour removes the patchwork emphasis of #0; local stroke bending carries the terrain.
- #10 /53000010: black ground, high irregular mountain mass, subdued grey strokes and strong pink interruptions along upper ridges and forward cut edges. Deep dark central/right trough, peaks on left and rear. Pink layered base lines rise and fall under the terrain then terminate at the square footprint. The silhouette is comparatively hard to separate from the background.
- #20 /53000020: pale green ground and brown strokes. Rear peak descends into a long curling ridge across centre; low front cleft divides foreground forms. Pale cutaway face has two brown base lines. Broad flows appear wave-like but this is an interpretation, not evidence of water physics. Shares restrained palette with #1 but has substantially taller and more folded terrain.

Preview navigation for #1 timed out, then a screenshot of the same tab confirmed the successfully loaded image. No restart or substituted edition.


Package completion: 1,921 validator words, eleven sources, four inspected previews. AB5D held #349 confirmed by fresh owner query and visually inspected: orange, blue and green wireframe patches on dark green. Built page passed site verification; desktop and 390px mobile artwork, caption and body checked. Publication remains pending. Earlier next-work entries above record research chronology.
