{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 96,
    "slug": "gravity-12-by-jimmy-herdberg",
    "title": "Gravity 12",
    "artistCredit": "Jimmy Herdberg",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/jimmy-herdberg/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "invocations",
      "topic": "mint",
      "value": 512,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "max_invocations",
      "topic": "mint",
      "value": 512,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "first_token_minted_at",
      "topic": "mint",
      "value": "2021-06-22T20:02:25+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "second_token_minted_at",
      "topic": "mint",
      "value": "2021-07-03T18:59:53+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "activated_at",
      "topic": "mint",
      "value": "2021-06-24T01:41:36+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "completed_at",
      "topic": "mint",
      "value": "2021-07-03T19:03:15+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "start_datetime",
      "topic": "mint",
      "value": "2021-07-03T18:59:53+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "price_per_token_in_wei",
      "topic": "mint",
      "value": "120000000000000000",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01"
      ],
      "status": "reported",
      "note": "Current indexed observation; not independently replayed from chain events."
    },
    {
      "id": "opening-price",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [],
      "status": "unknown",
      "note": "Current price setting is not historical launch-price evidence."
    },
    {
      "id": "original-maximum",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [],
      "status": "unknown",
      "note": "Current maximum is not launch-era announcement evidence."
    },
    {
      "id": "mint-allocations",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [],
      "status": "unknown",
      "note": "Public, reserved and administrative mints not independently separated."
    }
  ],
  "rights": {
    "artwork": {
      "reportedLabel": "CC BY-NC 4.0",
      "category": "creative-commons",
      "termsUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S04"
      ],
      "note": "Current reported label; historical sequence not recovered.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "note": "Separate artist-code grant not identified.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "LGPL-2.1",
        "category": "custom",
        "termsUrl": "https://raw.githubusercontent.com/processing/p5.js/1.0.0/license.txt",
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S10"
        ],
        "note": "p5.js1.0.0 library rights separate from artist script.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "Gravity 12 makes the spaces between forces visible. Fine lines gather into bundles, divide around pale openings and press toward the edges of a square. The image can suggest a branching organism or a piece of stretched fabric, but neither resemblance fully explains it. Its material is accumulated direction. In the originals examined here, a faint initial drawing gradually becomes a dense field whose apparent weight comes from thousands of overlapping marks. What looks solid from a distance remains striated up close. [^S05] [^S06] [^S07] [^S08]\n\nJimmy Herdberg's Art Blocks Factory project contains 512 works. The platform identifies it as project 96 and describes a network of nodes through which energy flows. That statement offers a useful starting point, provided its physical language remains an analogy rather than a claim that the program models celestial mechanics accurately. The inspected implementation supplies its own particular rules for direction, distance, colour and changing charge. The [Jimmy Herdberg dossier](https://ab5d.xyz/artists/jimmy-herdberg/) places this release within his wider practice. [^S01] [^S02]\n\nAB5D holds edition 442, a yellow-orange composition in an inset square. Its ownership was checked against the current linked collection wallets, and its original renderer was observed building the image. It provides an especially clear introduction to the difference between a light individual stroke and a darkened passage formed by many strokes. A preview records the result; the original also exposes the work of accumulation. [^S09]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "Herdberg dates the initial investigation to December 2020. He wanted to foreground connections rather than individual nodes, and numbered successive revisions until the twelfth produced a satisfying result. For Art Blocks he translated a Processing program into p5.js, simplified it to reduce rendering time and replaced Photoshop colour adjustment with choices of line density, transparency and blending. His account calls the platform release a subset of the larger Gravity 12 system, with hash-driven variation within one theme. [^S03]\n\nThat migration matters aesthetically. In the deployed script, colour is made through repeated transparent strokes interacting with the ground; it is not a final filter applied to a completed picture. Simplification therefore did more than make an existing image load faster. It relocated part of the finishing process inside the procedure that each collected work runs. This interpretation follows the relation between the artist's development account and the inspected blending instructions, without assuming that the earlier Processing source survives unchanged. [^S02] [^S03]\n\nThe work also acquired a physical exhibition life. Herdberg's account of the May 2022 Hemma Hos exhibition in Gothenburg identifies Gravity 12 #487 in the apartment's hall, paired with a Gravity 15 work. That is evidence of a particular display beyond the browser, not proof that every edition had an authorised print. It makes the changing scale of attention relevant: the dense field can be encountered as an object on a wall as well as a procedure unfolding on screen. [^S11]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The full indexed artist script is only 2,143 characters long. It uses p5.js 1.0.0 and begins with a square canvas whose side follows the smaller window dimension. Stroke width scales with that size. Thirty-two hexadecimal byte values from the token hash are divided by 256 to provide parameter values, while an initial portion of the hash seeds a bitwise pseudorandom sequence. The distinction is useful: some characteristics are selected directly, while successive placement decisions consume an ordered stream. [^S01] [^S02]\n\nOne hash value couples three decisions. Increasing it raises the number of nodes from a baseline of fifty toward 250, decreases the upper range of their magnitudes, and expands their placement area. Density is consequently not an independent knob added after composition. More nodes also mean a different range of strengths and a wider field. Since the script truncates the selected count and the normalised byte never reaches one, these expressions describe parameter bounds rather than a claim that every endpoint occurs. [^S02]\n\nNodes receive colours cyclically from one of twelve palette arrays. The arrays include several combinations and single-colour alternatives. Another byte selects a dark blue ground with screen blending or a cream ground with multiply blending. In the bright mode, repeated translucent marks can deepen into dark bands. In the dark mode, the different blend operation changes how marks accumulate. The four close readings below all concern bright examples; the second mode is a code finding, not a claim to have visually surveyed it. [^S02] [^S05] [^S06] [^S07] [^S08]\n\nThe drawing routine repeatedly starts a short path at a pseudorandom position. Each step sums contributions from the nodes, adds that vector directly to the current position, and places a vertex if the result remains inside the selected boundary. The program does not maintain a separate particle velocity or integrate acceleration into momentum. Its moving pencil is a convenient metaphor for a sequence of positional updates. It should not be described as a complete physical simulation. [^S02]\n\nThe force calculation is particularly revealing. Each node contributes along the direction between itself and the current path position, with magnitude proportional to its own magnitude and charge, divided by distance. The initial charge is negative, so the starting contributions point away from the nodes. When a path passes sufficiently close, it mixes toward that node's colour and changes the charge; otherwise the charge recovers by a much smaller increment. Later paths therefore encounter a field affected by earlier calculations. Even when the marks seem parallel, their conditions are not simply copied from one untouched template. [^S02]\n\nThis also qualifies the title. The deployed distance expression is an inverse-distance rule, not an inverse-square gravitational law. Negative charge supplies repulsion, and the charge updates belong to this particular drawing system. The term gravity helps a viewer imagine influence across space, but the code is more specific and less literal than the analogy. Its value lies in the relationships it constructs, not in scientific accuracy. [^S02]\n\nA path has a lifetime budget of forty and a transparency calculation that changes as that budget falls. Its starting colour inherits the preceding path's final colour. Colour thus travels through the drawing sequence as well as across the plane. A local encounter can affect the next path even when that path begins elsewhere. This small transfer helps explain why chromatic territories should not be read as a map of isolated, permanently coloured nodes. [^S02]\n\nFraming is also procedural. Depending on selected values, the program accepts vertices within a square or a circular region, with different limits. A square can sit well inside the canvas or extend beyond its visible edges. Clipping the accepted path positions creates a different relation to the surrounding ground: an inset field reads as a contained drawing, while a full field suggests an ongoing structure cut by the screen. That distinction is visible between editions 1 and 10. [^S02] [^S06] [^S07]\n\nThe work draws over successive frames and ultimately calls noLoop. A roughly thirty-millisecond frame budget divides the work into batches. The nominal round counter is 24,000 or 32,000 according to background mode, but its decrement is short-circuited when the time budget expires. Those constants should not be presented as an audited exact count of paths across all devices. Original-renderer observation confirmed progressive accumulation; no perpetual animation or interactive control was found in the script. Preservation needs the token input, script and compatible library, with timing differences investigated separately from composition. [^S02] [^S10]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The current index records the first mint on 22 June 2021 at 20:02:25, followed by activation on 24 June at 01:41:36. The second mint and scheduled-start fields both read 3 July at 18:59:53, and completion reads 19:03:15 that day. The official collection page gives 3 July as release date. These are distinct fields, not several interchangeable versions of launch. Full timestamps and offsets remain in the source record. [^S01]\n\nHerdberg's retrospective gives 4 July and a sellout duration of three minutes twenty-two seconds. The index interval from second mint to completion is also 202 seconds. That agreement does not classify each mint as public, reserved or administrative, and the one-day date discrepancy remains unresolved. [^S03] [^S01]\n\nCurrent supply and maximum are both 512. The price configuration is 0.12 ETH, but this inspection does not establish that setting as the original asking price or the amount paid by every recipient. The maximum at announcement, historical price changes, gas costs and allocation breakdown need separate evidence. An artist's recollection and a present index can usefully coexist without being collapsed into a fully reconstructed sale history. [^S01]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The current artwork record reports CC BY-NC 4.0, with no terms URL supplied in that metadata. The corresponding Creative Commons terms permit noncommercial sharing and adaptation subject to attribution and the other stated conditions, including identification of changes. The caption therefore names the artist and links the reported licence. No complete sequence of historical licence changes was recovered, so the current label is not a claim about every earlier publication. [^S01] [^S04]\n\nNo separate reuse grant for the artist script was identified in the inspected project material. p5.js 1.0.0 carries its own LGPL 2.1 licence, which does not determine the rights in Herdberg's program. This essay analyses the script without redistributing it. The original prose is dedicated to CC0; that dedication does not extend to the artwork, the artist's software or the dependency. [^S02] [^S10]"
    },
    {
      "id": "examples",
      "heading": "Close reading of four outputs",
      "bodyMarkdown": "Editions 0, 1, 10 and 20 were selected in advance as a small early-edition comparison. Their full token IDs are 96000000, 96000001, 96000010 and 96000020 on Ethereum contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270. All four original generator pages were visually inspected; editions 1, 10 and 20 were observed first as sparse marks and later as dense fields. This sample supports comparison of particular works, not conclusions about rarity or the distribution of all 512. [^S05] [^S06] [^S07] [^S08]\n\nIn #0, dark blue and green bundles spread across the entire square. A near-vertical dark passage descends from the upper edge, bends through the central region and continues toward the bottom. Pale openings interrupt the upper and side edges, while finer threads cross the larger light areas. The blue-green restriction encourages the eye to read density before palette. What initially resembles a branching trunk becomes less stable when the pale spaces seem to push back against it. [^S05]\n\nIn #1, the field ends well inside a broad cream margin. Purple, red, green, blue and warm brown bands radiate through this smaller square, converging around a light, tangled centre. The lower-left dark sweep and the upper-right warm passage give the composition unequal directional weight. The margin changes its scale: the structure appears offered for inspection rather than continuing beyond the screen. Watching faint lines become saturated bundles also makes clear how much apparent volume is produced without shading a solid surface. [^S06]\n\nIn #10, multicoloured bands occupy the full canvas. Numerous long pale openings enter from the edges and taper inward, especially along the top and lower-right areas. Several routes constrict near the centre, where light and dark compete in a tightly crowded knot. Compared with #1, the colours feel less like separate rays inside a frame and more like sections of a larger continuous material. This is not only a palette difference; the crop makes the empty spaces seem to arrive from outside the picture. [^S07]\n\nIn #20, yellow lines accumulate into orange bands on cream. The restricted colour makes the openings unusually conspicuous: a large pale region descends from the upper-left area, while another presses upward from below. The centre remains comparatively luminous, with threads crossing it rather than closing it into an opaque knot. Beside #10, this example shows how similar directional organisation can acquire a different apparent temperature and weight. Its darker orange edges arise through accumulation, not through a separately modelled light source. [^S08] [^S02]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "Gravity 12 is strongest where a simple visual impression becomes difficult to sustain. It looks fibrous, yet has no fibres; it looks stretched, yet calculates no fabric tension. The individual path is brief, but repeated paths create an apparently continuous body. The program's economy makes this discrepancy productive. A small collection of rules gives the viewer enough regularity to recognise a system and enough unevenness to keep examining particular passages. [^S02] [^S05] [^S06] [^S07] [^S08]\n\nIts place in the early Art Blocks period rests partly on making finishing decisions executable. The collected object includes the conditions under which colour and density emerge, while a physical display can preserve one realised appearance. Neither encounter exhausts the work. The browser reveals accumulation; a sustained look at the finished field reveals its competing routes and intervals. [^S02] [^S09] [^S11]\n\nThe four early examples do not cover dark mode or every framing choice. Gravity 12 turns a network of influences into a picture whose substance is the trace of repeated passage. [^S01] [^S02]\n\nUnresolved research questions:\n\n- Compare the indexed script with a pinned chain retrieval.\n- Resolve the release-date discrepancy.\n- Recover launch pricing and allocation records.\n- Test rendering across devices and inspect dark mode and additional framing choices."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000000",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Full square blue-green branching bundles; dark near-vertical central route and pale openings entering edges.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000000.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Duotone",
        "Shape": "Bleed",
        "Density": "Low",
        "Gravity": "Mid"
      },
      "mintedAt": "2021-06-22T20:02:25+00:00",
      "mintTransactionHash": "0x30d4601c01018e8f3e33300027f0b4d8b15941a95863cde5242912f7d5dc173c"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000001",
      "sourceIds": [
        "S06"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Inset multicolour square with cream margin; sparse early strokes developed into saturated purple/red/blue/green/warm bands.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000001.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Multi",
        "Shape": "Square",
        "Density": "Low",
        "Gravity": "Low"
      },
      "mintedAt": "2021-07-03T18:59:53+00:00",
      "mintTransactionHash": "0x1be50170c29110c7b37076d62881f71f2d831378f4a39f1e54eda19407d7b1b2"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000010",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Full multicolour field; long cream openings from edges and dense central knot; early sparse and later dense frames viewed.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000010.png",
      "indexedFeatures": {
        "Mass": "Low",
        "Mode": "Bright",
        "Color": "Multi",
        "Shape": "Bleed",
        "Density": "High",
        "Gravity": "Low"
      },
      "mintedAt": "2021-07-03T19:00:09+00:00",
      "mintTransactionHash": "0xc8dc9ff6ba61555e8464db738f543a34a034cd492bc711f5b0575b25848d265f"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000020",
      "sourceIds": [
        "S08"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Yellow-orange full field on cream, large pale openings and luminous centre; sparse early lines became orange bands.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000020.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Monotone",
        "Shape": "Bleed",
        "Density": "Low",
        "Gravity": "Mid"
      },
      "mintedAt": "2021-07-03T19:00:09+00:00",
      "mintTransactionHash": "0x1ed7293bd42e89cd41827377ae0417949d91ba1a6cc6c4afa25242069ce4cb2b"
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "Phil (@maxand98), commissioning user",
    "agent": "OpenAI Codex",
    "model": "gpt-6-astra",
    "modelVersion": null,
    "tools": [
      "Art Blocks Hasura GraphQL",
      "Web source reading",
      "Complete script inspection",
      "Chrome original-renderer visual inspection"
    ],
    "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",
    "usage": {
      "inputTokens": 3991181,
      "cachedInputTokens": 3861248,
      "outputTokens": 8633,
      "reasoningOutputTokens": 79,
      "totalTokens": 3999814,
      "model": "gpt-6-astra",
      "status": "measured",
      "scope": "Gravity 12 delegated research, drafting and handoff; editorial integration and publication excluded.",
      "generationRecord": "/data/series-generation-expansion-56.json"
    },
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "gpt-6-astra",
      "displayName": "GPT-6 Astra",
      "scope": "Gravity 12 delegated research, drafting and handoff; editorial integration and publication excluded.",
      "essayCount": 1,
      "perEssayUsage": {
        "inputTokens": 3991181,
        "cachedInputTokens": 3861248,
        "outputTokens": 8633,
        "reasoningOutputTokens": 79,
        "totalTokens": 3999814
      },
      "usage": {
        "inputTokens": 3991181,
        "cachedInputTokens": 3861248,
        "outputTokens": 8633,
        "reasoningOutputTokens": 79,
        "totalTokens": 3999814
      },
      "usageSummary": "across the Gravity 12 delegated research, drafting and handoff.",
      "usageDetail": "Measured delegated-agent usage between completed assignments, including shared conversation context and cached input. Coordinator review and publication excluded.",
      "accounting": "Cached input is included in input; reasoning output in output. Total is input plus output.",
      "source": "Difference between completed delegated Codex assignment telemetry boundaries",
      "measurementStart": "2026-09-17T21:41:29.741Z",
      "recordedAt": "2026-09-17T21:48:00.554Z"
    }
  },
  "codeInspection": {
    "url": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "locator": "projects_metadata.script filtered by slug gravity-12-by-jimmy-herdberg",
    "sha256": "946c21b145ff3c44afcb26305c04ad3cc9359af48c927b31f3069ca88a7cc9af",
    "retrievedAt": "2026-09-18",
    "method": "Complete indexed-script reading and original remote renderer visual observations; no local execution of artist source.",
    "executed": true,
    "chainBlock": null
  },
  "editorialExceptions": [
    {
      "id": "historical-evidence",
      "status": "pending",
      "reviewer": "Phil",
      "reason": "Launch price/maximum and allocations unresolved; July3 official versus July4 artist date unresolved; historical rights and pinned chain comparison missing; cross-device timing not tested."
    }
  ],
  "presentation": {
    "editionSize": 512,
    "maximumEdition": 512,
    "mintDate": "2021-06-22T20:02:25+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "token_id": "96000442",
      "invocation": 442,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000442",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000442.png",
      "live_view_url": "/series/gravity-12-by-jimmy-herdberg/artwork.html",
      "mode": "live",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "displayBasis": "Attributed original remote renderer under reported noncommercial artwork licence; no artist-code redistribution.",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000442",
      "interactionNote": "The original drawing builds automatically, then stops when complete."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000000",
      "sourceIds": [
        "S05"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Full square blue-green branching bundles; dark near-vertical central route and pale openings entering edges.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000000.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Duotone",
        "Shape": "Bleed",
        "Density": "Low",
        "Gravity": "Mid"
      },
      "mintedAt": "2021-06-22T20:02:25+00:00",
      "mintTransactionHash": "0x30d4601c01018e8f3e33300027f0b4d8b15941a95863cde5242912f7d5dc173c",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000001",
      "sourceIds": [
        "S06"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Inset multicolour square with cream margin; sparse early strokes developed into saturated purple/red/blue/green/warm bands.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000001.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Multi",
        "Shape": "Square",
        "Density": "Low",
        "Gravity": "Low"
      },
      "mintedAt": "2021-07-03T18:59:53+00:00",
      "mintTransactionHash": "0x1be50170c29110c7b37076d62881f71f2d831378f4a39f1e54eda19407d7b1b2",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000010",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Full multicolour field; long cream openings from edges and dense central knot; early sparse and later dense frames viewed.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000010.png",
      "indexedFeatures": {
        "Mass": "Low",
        "Mode": "Bright",
        "Color": "Multi",
        "Shape": "Bleed",
        "Density": "High",
        "Gravity": "Low"
      },
      "mintedAt": "2021-07-03T19:00:09+00:00",
      "mintTransactionHash": "0xc8dc9ff6ba61555e8464db738f543a34a034cd492bc711f5b0575b25848d265f",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "96000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000020",
      "sourceIds": [
        "S08"
      ],
      "selectionNote": "Preselected early editions0,1,10,20; not representative sampling.",
      "observationNote": "Yellow-orange full field on cream, large pale openings and luminous centre; sparse early lines became orange bands.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000020.png",
      "indexedFeatures": {
        "Mass": "High",
        "Mode": "Bright",
        "Color": "Monotone",
        "Shape": "Bleed",
        "Density": "Low",
        "Gravity": "Mid"
      },
      "mintedAt": "2021-07-03T19:00:09+00:00",
      "mintTransactionHash": "0x1ed7293bd42e89cd41827377ae0417949d91ba1a6cc6c4afa25242069ce4cb2b",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/96000020"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/gravity-12-by-jimmy-herdberg/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/gravity-12-by-jimmy-herdberg/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
