{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
    "projectId": 397,
    "slug": "through-curved-air-by-jacob-gold",
    "title": "Through Curved Air",
    "artistCredit": "Jacob Gold",
    "artistDossierUrls": []
  },
  "revision": 2,
  "researchCutoff": "2026-09-19",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 186,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": "Current index invocations, equal to maximum on this completed project."
    },
    {
      "id": "max-invocations",
      "topic": "mint",
      "value": 186,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02"
      ],
      "status": "reported"
    },
    {
      "id": "first-mint",
      "topic": "mint",
      "value": "2022-11-21T20:57:35+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02",
        "S04"
      ],
      "status": "reported"
    },
    {
      "id": "activated-at",
      "topic": "mint",
      "value": "2022-11-23T23:51:47+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02"
      ],
      "status": "reported"
    },
    {
      "id": "start-datetime",
      "topic": "mint",
      "value": "2023-01-09T18:00:00+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02"
      ],
      "status": "reported"
    },
    {
      "id": "completed-at",
      "topic": "mint",
      "value": "2023-01-09T18:31:35+00:00",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02"
      ],
      "status": "reported",
      "note": null
    },
    {
      "id": "license-label",
      "topic": "rights",
      "value": "CC BY-NC 4.0",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "status": "reported"
    },
    {
      "id": "script-type",
      "topic": "construction",
      "value": "p5@1.0.0",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "status": "verified"
    },
    {
      "id": "historic-unit-price-eth",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "unknown",
      "note": "No contemporaneous primary price table recovered this session."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02",
        "S06"
      ],
      "note": "Label copied from projects_metadata.license. Unversioned CC strings are not inferred as 4.0.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-19",
      "sourceIds": [
        "S02",
        "S03"
      ],
      "note": "No separate artist-code licence field was present on the project record.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "name": "p5.js 1.0.0",
        "reportedLabel": "LGPL-2.1 (p5.js project license; confirm version-specific notice)",
        "category": "custom",
        "termsUrl": "https://github.com/processing/p5.js/blob/main/license.txt",
        "observedAt": "2026-09-19",
        "sourceIds": [
          "S03"
        ],
        "note": "Runtime declared script_type_and_version p5@1.0.0. p5.js is third-party; the artist program is a separate rights object.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Through Curved Air is project 397 on the Art Blocks V2 core contract 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, published under the canonical slug through-curved-air-by-jacob-gold and credited to Jacob Gold. The indexed project record reports a completed edition of 186 of 186 invocations, runtime p5@1.0.0, and the official description: How can intent be communicated when ideas are filtered through a pseudorandom number generator? Simply looking at the output does not make it clear whether a stroke is placed on the canvas because of a decision by the artist or by a roll of the dice. The artist’s hand is more present in the process than the result; they choose the algorithms, tune the parameters, and prune the features. As I experimented with my code, I held a particular idea in mind, but I was uncertain how it would finally manifest. I pursued a visual composition that made me feel a certain way, and the visuals I landed on communicate my feeling better than anything I can put into words. Through Curved Air is about the challenge of communication. Regardless of the medium, I can never be certain that the message I intend to send is the message that is received.  Through Curved Air takes inspiration from musical minimalism, where repetition is used to highlight changes in rhythm and harmony. Every output is created by repeatedly copying a single shape. Each copy only has meaning in relation to the other shapes nearby, and that meaning changes with the context around it. Delicate structures form and are subsequently obscured by further layers, and though they may be hidden, they still affect the perception of the final image. Clicking on the canvas will start or stop the looping mode, where the image is recreated in a slightly different way. New facets are exposed as the composition changes yet remains the same. Just as I spend my days trying to share my inner experience through my art, Through Curved Air uses each shape and each loop and each token hash to attempt to create a common feeling between myself and the viewer.  Through Curved Air also takes inspiration from the paintings of Joan Mitchell. I was drawn to her expressive strokes, vibrant colors, and use of negative space, all of which come together to give a more intense feeling of looking at a landscape than just looking at a painting of a landscape. Her energetic marks clearly communicate that there is a human being behind the art. The marks of generative works are often similarly representative of the underlying process, but instead of drawing focus to the artist behind the piece, they draw attention to the algorithm. To convey human emotion in the way I intended, I had to use a subtler algorithm.  The technical tools to convey this emotion are tools I have been consistently developing in my practice. I love making generative art because I can design a system where I understand how all the components work, but they can still come together to produce a result that surprises me. The algorithm behind the compositional variation in my earlier works Coquina and Primordial is one I continued to evolve, and it rests at the heart of Through Curved Air. In fact, I pushed it further than ever, using it to create the individual shapes that form the building block of each output. This emergent variation permeates the work and results in surprising images that more closely resemble paintings than anything I made previously. I believe the potential for surprise is key to conveying emotion through code. When the possibility space of the algorithm grows too large to understand, the mind wanders to the person behind the algorithm. Perhaps the human element is the struggle to understand, or the struggle to be understood. [^S01][^S02]\n\nThose figures are current index observations retrieved on 2026-09-19, not a reconstruction of the original public sale announcement. Atlas position is a catalogue ordinal and is not the on-chain project ID. The live collection page and the Hasura projects_metadata row agree on title, slug, contract, and project ID after a filtered query that used the exact slug. [^S01][^S02]\n\nContract 0x99a9b7c1116f9ceeb1652de04d5969cce509b069. Aspect ratio indexed as 1.77777777. Website https://www.jacobgold.art/.\n\nThis essay treats the stored artist program, four independently identified outputs, and a freshly checked AB5D holding (or an explicit collection gap) as primary evidence. Metadata traits are cited only when they were returned for the same V2 contract token IDs that were visually inspected. They do not replace looking at the pictures. [^S04][^S09]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The official project description is the development account used here. Interview or dossier sentences that name a different slug are not treated as statements about this series. How can intent be communicated when ideas are filtered through a pseudorandom number generator? Simply looking at the output does not make it clear whether a stroke is placed on the canvas because of a decision by the artist or by a roll of the dice. The artist’s hand is more present in the process than the result; they choose the algorithms, tune the parameters, and prune the features. As I exper\n\nThe development account used here is the specific source named in the citations, not a paraphrase of an artist-dossier page. Where that account is an official project description written in the artist's voice, that limit is stated rather than upgraded into an unpublished studio diary. Where an interview exists, the sentences that actually name Through Curved Air are the ones relied on. [^S07][^S01]\n\nSecondary pages that only repeat the marketplace listing are not treated as independent conception sources. [^S02][^S07]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The complete artist program for slug through-curved-air-by-jacob-gold was retrieved from projects_metadata.script filtered by that exact slug. The UTF-8 payload is 20252 bytes with SHA-256 8e33bc129eba7296917e942443d4007a7b1f8d51890c237f33149618d6e149ab. Runtime on the project record is p5@1.0.0. The script was read in full; it was not executed in this research session. [^S03]\n\nThe stored generator is 20252 bytes, SHA-256 8e33bc129eba7296917e942443d4007a7b1f8d51890c237f33149618d6e149ab, runtime p5@1.0.0. Detected source markers: setup, draw, createCanvas, mousePressed, tokenData, hash. Named functions include bufferPts, bulge, draw, ease, fitPts, gaussRand, genExpression, genInitPoints, intersect, intersect_pt. tokenData.hash is read in source. Output then follows the drawing path those functions implement. Token 0 observation: Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 165,174,170). File size 7949533 bytes. Indexed features: Size 0.08073787050316861; Brush parallelogram; Sides 10; Margin large; Stroke freeform; Palette Murmuration; Fortissimo False; Performers trio\n\nVisual claims come from inspected media-proxy PNGs plus indexed token features.\n\nSeed handling is visible in the retrieved program: tokenData.hash is read in source. Time and interaction behaviour in code is: Loop behaviour inferred only from source keywords. The inspected PNG is a static frame. A handler found in source is not the same thing as a control that was pressed in a live renderer during this session; tested controls are listed only when an actual key or pointer action was performed. [^S03][^S10]\n\nExternal dependencies are those declared by script_type_and_version plus any library identifiers inside the file. Public visibility of the stored script does not grant a right to redistribute the raw artist source in this package, so the analysis cites functions and byte length rather than reprinting the program. [^S03][^S06]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "Indexed chronology for project 397 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069 is as follows. First token minted_at is 2022-11-21T20:57:35+00:00. activated_at is 2022-11-23T23:51:47+00:00. start_datetime is 2023-01-09T18:00:00+00:00. completed_at is 2023-01-09T18:31:35+00:00. Invocations stand at 186 of a maximum 186, with complete=true on the retrieved row. [^S02][^S04]\n\nCalculated intervals from those timestamps: first mint to activation is 2.12 days; activation to start_datetime is 46.76 days; start_datetime to completion is 31.6 minutes; first mint to completion is 48.90 days. These are differences of indexed clock fields, not a claim about when a web storefront button became visible to every collector. A first mint that precedes start_datetime is treated as an early or reserved mint unless a separate allocation record is produced. [^S02][^S04]\n\nIndexed clocks: first 2022-11-21T20:57:35+00:00, activated 2022-11-23T23:51:47+00:00, start 2023-01-09T18:00:00+00:00, completed 2023-01-09T18:31:35+00:00. Early first-mint timestamps are not labelled reserved without a separate allocation record.\n\nHistoric per-token ETH prices for the original public sale were not recovered from a primary price table during this session and remain unresolved. Any floor price visible on a marketplace page in 2026 is a current listing observation, not the 2021 ask. [^S01][^S02]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The project record stores the artwork licence label 'CC BY-NC 4.0'. That string includes an explicit 4.0 version and is treated as Creative Commons version 4.0. Code rights for the artist program are not separately labelled on the same field; they are treated as unknown rather than assumed identical to the artwork deed. [^S02][^S06]\n\nArtwork label copied exactly as 'CC BY-NC 4.0'.\n\nThird-party runtime p5@1.0.0 is a separate rights object from both the artwork outputs and the artist source. p5.js, three.js, and ordinary browser JavaScript each keep their own licence texts. This package does not redistribute those libraries. [^S03][^S06]\n\nOriginal essay prose in this package is dedicated CC0-1.0 by the research operator. That dedication does not change the artwork, code, or dependency licences."
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "Through Curved Air #0 is token 397000000 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2022-11-21T20:57:35+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 165,174,170). File size 7949533 bytes. Indexed features: Size 0.08073787050316861; Brush parallelogram; Sides 10; Margin large; Stroke freeform; Palette Murmuration; Fortissimo False; Performers trio Indexed features returned for this V2 token: Size 0.08073787050316861; Brush parallelogram; Sides 10; Margin large; Stroke freeform; Palette Murmuration; Fortissimo False; Performers trio.  [^S04][^S05][^S09]\n\nThrough Curved Air #1 is token 397000001 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-01-08T18:13:23+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 181,143,135). File size 7913330 bytes. Indexed features: Size -0.6391959417754158; Brush parallelogram; Sides 6; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers trio Indexed features returned for this V2 token: Size -0.6391959417754158; Brush parallelogram; Sides 6; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers trio.  [^S04][^S05][^S09]\n\nThrough Curved Air #10 is token 397000010 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-01-09T18:28:59+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 187,148,142). File size 7451941 bytes. Indexed features: Size -1.1573129088721656; Brush parallelogram; Sides 8; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers quintet Indexed features returned for this V2 token: Size -1.1573129088721656; Brush parallelogram; Sides 8; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers quintet.  [^S04][^S05][^S09]\n\nThrough Curved Air #20 is token 397000020 on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069, minted 2023-01-09T18:29:47+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 163,169,170). File size 7911355 bytes. Indexed features: Size 0.013688048232594707; Brush parallelogram; Sides 12; Margin large; Stroke expressive; Palette Ruins; Fortissimo False; Performers trio Indexed features returned for this V2 token: Size 0.013688048232594707; Brush parallelogram; Sides 12; Margin large; Stroke expressive; Palette Ruins; Fortissimo False; Performers trio.  [^S04][^S05][^S09]\n\nThe AB5D header candidate is token 397000059 (edition 59), currently indexed to 0xdd19308a9731cdecb67e0d80ca6823394208c045, which is one of the three linked addresses returned for username ab5d on 2026-09-19. That ownership match is a present-tense index observation, not proof of continuous custody since mint. Inspected media-proxy PNG is 2400x1351px, light and muted or near-neutral (mean RGB 183,187,185). File size 8215676 bytes. Indexed features: Size -0.6317450627762483; Brush triangle; Sides 10; Margin small; Stroke expressive; Palette Ruins; Fortissimo False; Performers trio [^S08][^S04][^S09]\n\nMotion, interaction, and audio: Loop behaviour inferred only from source keywords. The inspected PNG is a static frame. The static PNGs document halt or preview states. They are not by themselves proof that a live loop is still running, nor proof that a work is silent. No soundtrack was heard from these pages during this session. [^S09][^S10][^S03]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Through Curved Air is project 397 by Jacob Gold on 0x99a9b7c1116f9ceeb1652de04d5969cce509b069. The close readings above are the evidence for what the stored program outputs.\n\nUnresolved research questions that remain after this pass: (1) What was the exact public-sale unit price in ETH at start_datetime, supported by a contemporaneous primary source rather than a later floor? (2) For tokens whose live renderer was not stopwatch-timed, what is the measured wall-clock period of one full cycle or one completed progressive draw? (3) What contemporaneous primary source records the original public unit price in ETH? (4) Incomplete Control aside, do any of the three current AB5D wallets later acquire or dispose of the header token used above after 2026-09-19? [^S02][^S08][^S10]\n\nThis package is a draft for human review. Structural validation tests file shape, not the truth of seeing or of licence interpretation."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000000",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000000",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 0.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 165,174,170). File size 7949533 bytes. Indexed features: Size 0.08073787050316861; Brush parallelogram; Sides 10; Margin large; Stroke freeform; Palette Murmuration; Fortissimo False; Performers trio"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000001",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000001",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 1.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 181,143,135). File size 7913330 bytes. Indexed features: Size -0.6391959417754158; Brush parallelogram; Sides 6; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers trio"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000010",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000010",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 10.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 187,148,142). File size 7451941 bytes. Indexed features: Size -1.1573129088721656; Brush parallelogram; Sides 8; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers quintet"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000020",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000020",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 20.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 163,169,170). File size 7911355 bytes. Indexed features: Size 0.013688048232594707; Brush parallelogram; Sides 12; Margin large; Stroke expressive; Palette Ruins; Fortissimo False; Performers trio"
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Grok research session for coordinator handoff",
    "agent": "Grok",
    "model": "Grok 4.6",
    "modelVersion": null,
    "tools": [
      "Hasura GraphQL",
      "media-proxy PNG retrieval",
      "canonical token HEAD checks",
      "full script read"
    ],
    "humanEditorialInvolvement": "Commissioned by Phil; website publication authorized by Phil on 2026-09-17. No claim of line-by-line human fact checking.",
    "originalProseLicense": "CC0-1.0",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "Grok 4.6",
      "displayName": "Grok 4.6",
      "scope": "Supplied Grok first 60 of remaining 168 essay package",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Model name is the actual operator. Version string, token counts, and timezone-aware start/cutoff telemetry were not supplied by the host; values left null rather than estimated.",
      "submittedUsage": {
        "provider": "xAI",
        "model": "Grok 4.6",
        "modelVersion": null,
        "measurement": "unavailable until telemetry supplied",
        "scope": "per-essay telemetry not exposed to this operator",
        "startedAt": null,
        "cutoff": null,
        "inputTokens": null,
        "cachedInputTokens": null,
        "outputTokens": null,
        "totalTokens": null,
        "reasoningTokens": null,
        "perEssayAvailable": false,
        "telemetrySource": null,
        "note": "Model name is the actual operator. Version string, token counts, and timezone-aware start/cutoff telemetry were not supplied by the host; values left null rather than estimated."
      },
      "importReview": "Structural package, identity, citation and build compatibility checks. Supplied prose preserved; no independent research audit."
    }
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "projects_metadata.script where slug=_eq through-curved-air-by-jacob-gold",
    "sha256": "8e33bc129eba7296917e942443d4007a7b1f8d51890c237f33149618d6e149ab",
    "retrievedAt": "2026-09-19T00:00:00+00:00",
    "method": "graphql-post-full-script-read",
    "executed": false,
    "chainBlock": null
  },
  "editorialExceptions": [],
  "presentation": {
    "editionSize": 186,
    "maximumEdition": 186,
    "mintDate": "2022-11-21T20:57:35+00:00",
    "mintDateMeaning": "first indexed mint",
    "mintDateLabel": "First mint",
    "artwork": {
      "project_id": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069-397",
      "token_id": "397000059",
      "invocation": 59,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059.png",
      "live_view_url": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059",
      "canonicalUrl": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059",
      "mode": "image",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "displayBasis": "AB5D collection example under the artwork licence label stored on the project record; not a newly created derivative."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000000",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000000",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 0.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 165,174,170). File size 7949533 bytes. Indexed features: Size 0.08073787050316861; Brush parallelogram; Sides 10; Margin large; Stroke freeform; Palette Murmuration; Fortissimo False; Performers trio",
      "previewUrl": "https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000001",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000001",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 1.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 181,143,135). File size 7913330 bytes. Indexed features: Size -0.6391959417754158; Brush parallelogram; Sides 6; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers trio",
      "previewUrl": "https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000010",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000010",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 10.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 187,148,142). File size 7451941 bytes. Indexed features: Size -1.1573129088721656; Brush parallelogram; Sides 8; Margin large; Stroke expressive; Palette Rainbow; Fortissimo False; Performers quintet",
      "previewUrl": "https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "tokenId": "397000020",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000020",
      "sourceIds": [
        "S04",
        "S05",
        "S09"
      ],
      "selectionNote": "Specified candidate invocation 20.",
      "observationNote": "Inspected media-proxy PNG is 2400x1351px, mid-tone and muted or near-neutral (mean RGB 163,169,170). File size 7911355 bytes. Indexed features: Size 0.013688048232594707; Brush parallelogram; Sides 12; Margin large; Stroke expressive; Palette Ruins; Fortissimo False; Performers trio",
      "previewUrl": "https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000020"
    },
    {
      "tokenId": "397000059",
      "chainId": 1,
      "contract": "0x99a9b7c1116f9ceeb1652de04d5969cce509b069",
      "previewUrl": "https://media-proxy.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059.png",
      "url": "https://www.artblocks.io/token/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059",
      "liveUrl": "https://generator.artblocks.io/1/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/397000059"
    }
  ],
  "publication": {
    "date": "2026-09-20",
    "url": "https://ab5d.xyz/series/through-curved-air-by-jacob-gold/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/through-curved-air-by-jacob-gold/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
