{
  "schema": "ab5d-series-essay/1",
  "identity": {
    "chainId": 1,
    "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
    "projectId": 201,
    "slug": "24-heures-by-alexis-andre",
    "title": "24 Heures",
    "artistCredit": "Alexis André",
    "artistDossierUrls": [
      "https://ab5d.xyz/artists/alexis-andre/"
    ]
  },
  "revision": 2,
  "researchCutoff": "2026-09-18",
  "status": "published-with-research-limitations",
  "facts": [
    {
      "id": "minted-count",
      "topic": "mint",
      "value": 137,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": "Equals maximum."
    },
    {
      "id": "first-token-minted-at",
      "topic": "mint",
      "value": "2021-10-31T22:48:08+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "activated-at",
      "topic": "mint",
      "value": "2021-11-01T18:30:38+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "start-datetime",
      "topic": "mint",
      "value": "2021-10-31T22:45:00+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Indexed public start clock."
    },
    {
      "id": "completed-at",
      "topic": "mint",
      "value": "2024-04-15T15:26:35+00:00",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "script-type",
      "topic": "construction",
      "value": "js@na",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "license-label",
      "topic": "rights",
      "value": "CC BY-NC 4.0",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S02"
      ],
      "status": "verified",
      "note": "Exact license string after strip."
    },
    {
      "id": "category",
      "topic": "context",
      "value": "playground",
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S01",
        "S02"
      ],
      "status": "verified",
      "note": ""
    },
    {
      "id": "original-per-token-price-eth",
      "topic": "mint",
      "value": null,
      "observedAt": "2026-09-18",
      "sourceIds": [],
      "status": "unknown",
      "note": "Individual paid prices not recovered from receipts."
    }
  ],
  "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": [
        "S02",
        "S06"
      ],
      "note": "Stored string has a leading space. Deed inspected after strip.",
      "unresolvedConflicts": []
    },
    "code": {
      "reportedLabel": null,
      "category": "unknown",
      "termsUrl": null,
      "observedAt": "2026-09-18",
      "sourceIds": [
        "S03"
      ],
      "note": "No license header in script.",
      "unresolvedConflicts": []
    },
    "thirdParty": [
      {
        "reportedLabel": "Art Blocks js@na generator shell",
        "category": "unknown",
        "termsUrl": null,
        "observedAt": "2026-09-18",
        "sourceIds": [
          "S02"
        ],
        "note": "Runtime js@na.",
        "unresolvedConflicts": []
      }
    ]
  },
  "sections": [
    {
      "id": "work-context",
      "heading": "The work and its context",
      "bodyMarkdown": "24 Heures makes a moving point difficult to separate from the history it leaves behind. Bright narrow marks collect into plumes, older traces soften, and a route gradually becomes visible through repeated passage. The result can resemble an organism, but its published premise is a chase involving vehicles and a track. The tension between that mechanical proposition and the organic-looking surface is central to the work.[^S01][^S04][^S07]\n\nAlexis André released the project through Art Blocks Playground in October 2021. The current edition contains 137 works. Its animation is not simply a completed image moved across the screen: the moving agents continually contribute to the image. Pausing a token preserves one state of that process, while letting it run changes both the active marks and their accumulated surroundings.[^S01][^S02][^S03]\n\nThe [Alexis André dossier](https://ab5d.xyz/artists/alexis-andre/) provides broader context. Here the focus is the particular relationship between course, moving agent and retained trace. A track can be inferred from accumulated colour before it is explicitly displayed. Once revealed through a click, its thin line looks almost austere beside the elaborate growth that movement has produced around it.[^S03][^S07]"
    },
    {
      "id": "conception",
      "heading": "Conception and development",
      "bodyMarkdown": "The indexed sales notes identify 24 Heures as a commission from an unnamed patron, distributed through gifts of a separate 24H token. They explicitly reject the idea that access depends on solving a riddle. This is a more specific origin than a generic public drop: the work was commissioned, although the inspected record does not identify the patron or describe the commission negotiations.[^S02]\n\nThe artist's official description proposes a track, vehicles and a continuing chase. That economical premise is more useful than treating every plume as a depicted animal or plant. The original can look organic, but the published framing concerns moving agents and their routes. The long histories of marks around those agents make the track perceptible even when its outline is hidden.[^S01][^S03]\n\nIn an April 2021 interview, André describes a practice built through daily experiments and a sustained interest in graphics technology. He discusses floating-point colour precision, blending and the visual possibilities of many moving simple forms. He also distinguishes work rendered as video from work intended to run in a browser, identifying JavaScript as a tool for the latter. The account predates 24 Heures and does not document its specific development. It provides context for the attention to movement and accumulated colour visible here.[^S12]\n\nThe deployed program uses JavaScript and WebGL2. The earlier interview's discussion of Rust and Nannou should therefore not be imported as a claim about this project's runtime. What can be established is the relationship between an expressed interest in precise blending and a later program that employs floating-point render targets. That relationship is a comparison between testimony and code, not evidence that one interview describes the making of this exact algorithm.[^S12][^S03]\n\nA detailed project-specific development diary has not been recovered. The official premise and the deployed system establish what the work does, but leave questions about its preliminary experiments and the choice of edition size. Those gaps should remain visible rather than being filled with a speculative story about why André made it.[^S01][^S02]"
    },
    {
      "id": "construction",
      "heading": "How the work was constructed",
      "bodyMarkdown": "The token hash seeds an Alea pseudorandom generator and the permutation tables used for simplex noise. The seeded decisions select a palette, a path family, the number of moving agents and several rules for their emitted particles. Twenty-five stored palettes provide colour sequences that can be interpolated. This arrangement gives the work a persistent identity while allowing its visible state to develop over time.[^S03]\n\nThe agents move around a calculated path. Some branches produce polygonal routes; others use noise to define a closed contour or an extended, irregular route. The program samples the path to establish its bounds, centre and scale before displaying it. That preparation helps explain why trails can occupy a substantial portion of the screen while retaining a recognisable underlying course. The path is a constraint on movement, not an outline that must always remain visible.[^S03]\n\nA small group of agents normally contains two, three or four members, with a separate branch using ten. Their positions advance along the route with additional variation. When agents approach one another, a repulsive adjustment changes their motion and particles may appear between them. Other particles are shed from individual agents. A dense meeting can therefore create a different kind of mark from an isolated passage.[^S03]\n\nThe emitted particles have limited lifetimes. Their positions change through velocity, damping and noise, with some branches adding attraction toward another agent. Their size also changes with their remaining life. A visible filament is consequently a history of moving marks, rather than necessarily a single long curve specified from end to end. The sharp or feather-like appearance of a plume arises from the relationship between those small marks and the persistence of earlier drawing.[^S03]\n\nThe renderer draws circular primitives through instanced WebGL2 geometry. Position, size and colour vary for each instance. Two floating-point textures retain intermediate images, and a horizontal and vertical blur pass soften the accumulated result. The background is normally replaced only very weakly. Previous marks therefore survive as a visual memory while new ones arrive with greater clarity. A final pass adjusts brightness and the falloff near the frame's edges.[^S03]\n\nThis layering is important to the apparent material. Sharp new marks can sit beside blurred earlier traces, suggesting depth without a conventional model of a three-dimensional object. The program does not need to build feathers, leaves or fur in order to evoke them. It combines simple geometry, colour and retained motion. Those organic comparisons describe the viewing experience, while the source explains a system of particles and image feedback.[^S03]\n\nTwo different measures of time operate in the source. Movement advances by a small fixed increment on each unpaused animation frame. A separate check uses elapsed wall-clock time since the page loaded. Between twenty-four hours and twenty-four hours plus one minute, that check changes the palette offset and strengthens the replacement of the background. The condition is a single interval, not a calculation modulo one day. It therefore does not establish a repeating daily reset. This long-duration behaviour was identified in code, not witnessed in a twenty-four-hour viewing session.[^S03]\n\nThe distinction also affects reproducibility. A token seeds the decisions, but the frame count reached after a given number of seconds can depend on the display and browser. Pausing stops the simulation's frame-based advancement while elapsed wall-clock time continues. A claim that two devices must show an identical image at the same elapsed second would therefore go beyond what this procedure establishes.[^S03]\n\nAny key toggles the pause flag. A pointer press requests a temporary display of the underlying track. In the coordinator's original-renderer test of #96, pressing p held the composition unchanged across successive views; pressing it again resumed the work. Clicking then revealed a pale narrow route over the coloured trails. Its duration is controlled by simulation increments, so it should not be described as an exact number of seconds without measurement.[^S03][^S07]\n\nThe artist program contains no audio system. It uses native WebGL2 and requests extensions for floating-point rendering and blending, so compatibility depends on the graphics environment as well as the stored script and token input. The full indexed program was read and its digest retained. That inspection is distinct from an independently pinned retrieval from Ethereum, which this review has not performed.[^S03]"
    },
    {
      "id": "mint",
      "heading": "The mint",
      "bodyMarkdown": "The index records a scheduled start on 31 October 2021 at 22:45:00 and the first token at 22:48:08 that day. Activation follows on 1 November at 18:30:38, with the second mint at 20:14:13. Completion is recorded much later, on 15 April 2024 at 15:26:35. These named events should remain separate. The first token predates the recorded activation, so activation cannot substitute for the beginning of the token history.[^S02][^S03]\n\nThe sales notes materially change how that chronology should be interpreted. They describe a commissioned work obtainable through a 24H token gifted by an unnamed patron. A long interval between the first mint and completion therefore should not be described as the duration of a conventional open sale. Nor do the notes prove the allocation or payment history of every individual token. They establish the stated access mechanism in the indexed record.[^S02]\n\nCurrent invocations and maximum both stand at 137. The current price setting is 1 ETH. That setting alone does not establish what a recipient paid, especially given the separate access-token mechanism described in the sales notes. No public sellout duration or uniform primary purchase price is asserted here. Original terms, any changes to the maximum, and individual transaction classifications remain to be reconstructed.[^S01][^S02]\n\nThe header uses 31 October 2021, the first indexed mint date. Full timestamp precision is retained in the research record. The calendar date gives a useful point of orientation without implying that the entire edition was issued on that day.[^S03]"
    },
    {
      "id": "rights",
      "heading": "Copyright and licensing",
      "bodyMarkdown": "The current artwork label is CC BY-NC 4.0, with a leading space preserved in the raw index response. No separate terms URL is supplied there. The corresponding Creative Commons terms permit sharing and adaptation subject to conditions including attribution, indication of changes and noncommercial use. A current label does not by itself reconstruct every earlier rights notice.[^S02][^S06]\n\nNo separate reuse grant for the artist program was established in the inspected body. Its accessibility through the index is evidence for analysis, not an automatic permission to republish the code. Native WebGL2 facilities and the Art Blocks generator environment are separate from the artwork licence. The essay therefore links to the original renderer rather than redistributing the artist program.[^S03]\n\nAB5D's CC0 dedication applies to this essay's original prose. It does not extend to André's artwork or software. The collection caption retains the artwork's reported licence and identifies the artist.[^S06]"
    },
    {
      "id": "examples",
      "heading": "Close reading of examples",
      "bodyMarkdown": "Five original generators were inspected: editions 0, 1, 10 and 20, together with the collection's #96. Their token identities were independently refreshed on the project's contract. Successive views showed changing marks; pause and track reveal were tested on #96. The observations cover short encounters, not a complete twenty-four-hour run, and do not establish a distribution of traits across the edition.[^S03][^S04][^S07][^S13][^S14][^S15]\n\nIn #0, pale mint, white and yellow trails occupy a dark green field. They describe an irregular loop with a substantial opening toward the lower centre and an extension rising diagonally toward the upper right. Narrow marks flare outward from the route like small barbs. The brightest areas do not remain evenly distributed: in a later view they gather more strongly around an upper central crossing. The route persists while its local emphasis changes.[^S04]\n\nThat persistence makes the image readable at two different speeds. At a glance, the loop is an established form. Watching longer, its components seem continuously renewed. Some marks are sharply bounded and luminous; others have softened into a translucent envelope around them. The dark central opening is therefore not merely unused space. It gives the active perimeter room to demonstrate its changes and prevents the many small traces from becoming an undifferentiated field.[^S04]\n\nThe feather-like comparison is strongest at the small outward strokes, but it becomes less literal when their density shifts along the route. There is no fixed body to which every stroke belongs. The apparent object is sustained by passage and retention. Source inspection helps explain that instability: particles expire, yet the image buffer preserves and blurs earlier marks. What the viewer reads as one continuous material contains contributions of different ages.[^S04][^S03]\n\nIn #1, a teal ground separates coloured plume segments. One early view places blue and pink activity near the left edge and green activity toward the right, leaving a broad central gap. In the later view, the left segment extends inward through yellow and green while the right remains distinct. The spacing makes the chase easier to imagine as several moving presences rather than a single enclosed ornament. Its changing colour also redirects attention along each trail instead of locating all the force in a bright central knot.[^S13]\n\nIn #10, pale blue, pink and yellow marks eventually outline a wide irregular loop around a large dark interior. A sparse early view showed separated clusters, whereas later views exposed a much more continuous retained route. Bright new plumes shift around that perimeter while older sections stay softer. The difference between current activity and its residue is unusually clear here. The eye can follow a concentrated bright passage, then return to the larger loop as a record of where activity has already occurred.[^S14]\n\nEdition #20 changes the apparent material sharply. Peach, cream, pink and magenta bands occupy a dark burgundy field around a roughly triangular opening. Instead of the predominantly curved barbs in #0, many marks turn abruptly or repeat as angular teeth. Some run parallel for a considerable distance, making broad comb-like surfaces. A darker narrow route remains legible within the brighter accumulation. The result can suggest folded strips or a mechanically pleated surface, although those are visual analogies rather than objects represented in the code.[^S15]\n\nAcross successive views of #20, the bright bands shift and widen while softened earlier forms remain. This produces a peculiar coexistence of rigidity and mobility. An individual angular run looks decisive, almost measured, but the form assembled from many such runs is unstable. The triangular opening provides continuity as the surrounding surfaces change. Beside #0, it shows that a repeated path need not produce a uniformly flowing appearance: the rules affecting particle direction can substantially alter the character of the trace.[^S15][^S03]\n\nThe AB5D-held #96 concentrates purple, violet and pink filaments against a brown-olive ground. Its trail extends laterally, with a dense thorn-like tuft near the centre and another concentration toward the right. The lower-left region remains comparatively open. Pale highlights pick out some of the newest strokes, while darker and blurred material gathers behind them. The central tuft changes shape between views, alternately exposing and obscuring the route through it.[^S07]\n\nPausing #96 makes those relationships easier to examine. A bright small mark can appear to terminate a much larger plume, yet the surrounding spikes point in several directions and resist a simple front-and-tail reading. When motion resumes, that temporary object becomes part of an ongoing process again. Clicking reveals a narrow pale course, including a central loop and a turn near the right edge. The contrast is striking: a restrained line explains the movement while failing to account, by itself, for the richness of the accumulated surface.[^S07]\n\nThat control is more than a convenience. It allows the viewer to alternate between encountering an elaborate moving form and seeing one of its organising constraints. It does not expose every parameter or remove the work's ambiguity. It makes the difference between a route and the traces generated around that route directly available to perception.[^S07][^S03]"
    },
    {
      "id": "significance",
      "heading": "Significance and limitations",
      "bodyMarkdown": "24 Heures gives a path a changing surface without abandoning its identity as a constraint. The track, moving agents and retained traces are distinguishable in the program, but visually they keep becoming one another. The most compelling moments in these observations arise when a sharp new plume interrupts an older softened route, allowing present motion and accumulated history to be seen at once.[^S03][^S04][^S14]\n\nThe comparison between #0, #20 and #96 shows the breadth of that relationship. Curving pale barbs, angular pink bands and dense violet tufts do not merely recolour the same apparent object. They change how movement seems to acquire material form. The track-reveal control makes the underlying economy visible without reducing the result to a diagram. A simple route can sustain a far more complicated encounter.[^S04][^S15][^S07]\n\nUnresolved research questions:\n\n- Recover a project-specific development account and documentation of the commission.\n- Establish the original allocation terms and any changes to edition size or price settings.\n- Compare the indexed script with a pinned chain retrieval.\n- Observe the twenty-four-hour transition directly and compare behaviour across graphics environments.\n- Locate any separate artist-code licence and earlier artwork-rights notices."
    }
  ],
  "examples": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Assignment candidate edition 0; first mint.",
      "observationNote": "Two views: dark green field, pale mint/white/yellow narrow feather-like trails forming an irregular loop with large lower central opening and diagonal extension upper right. Later bright spikes gathered at upper central crossing while overall path persisted."
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Assignment candidate edition 1.",
      "observationNote": "Two views: teal ground, separate coloured plume segments at sides with broad empty centre. Blue/pink left segment developed toward centre into yellow/green tuft; green/right segment remained spatially separate."
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Assignment candidate edition 10.",
      "observationNote": "Original observed across two successive changing states: pale mint/pink/yellow feather-like traces form an irregular wide loop on dark green-grey. Large central empty field. Bright newest plumes moved from lower left/right toward upper left/right while older loop stayed blurred; strong distinction between sharp moving growth and soft retained route."
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Assignment candidate edition 20.",
      "observationNote": "Original observed across two successive changing states: dark burgundy ground, peach/cream/pink/magenta angular bands around triangular opening. Repeated right-angle or sharply bent segments project from dark route like comb teeth; bright bands shifted and widened in later view while older pale forms remain softly blurred. Strong geometric contrast to curved plumes of 0 and96."
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000096",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Verified AB5D collection example",
      "observationNote": "Brown/olive dark ground with purple, violet, pink and pale filament trails extending laterally. Dense central thorn-like tuft changes shape across views; large empty lower left region. Fine spikes, blurred older paths and bright small moving points."
    }
  ],
  "mediaIds": [],
  "provenance": {
    "operator": "xAI",
    "agent": "Grok",
    "model": "grok-4.6 + gpt-6-astra",
    "modelVersion": "grok-4.6",
    "tools": [
      "GraphQL POST",
      "curl",
      "PNG 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",
    "revisions": [
      {
        "model": "GPT-6 Astra",
        "scope": "Independent full-script reading, five original views, source and chronology corrections, full rewritten essay and current collection ownership verification.",
        "usage": null
      }
    ],
    "originalSubmission": {
      "model": "Grok 4.6",
      "verification": "Contributor-reported; no provider telemetry supplied",
      "archive": "grok-round-003-packages.zip",
      "archiveSha256": "f4c2a8c282613791053e9db277052982dc926fa3de0d3dae9361d5dbe5c71508"
    },
    "attributionNote": "Original draft by Grok (reported as Grok 4.6); independently researched and substantially revised by GPT-6 Astra.",
    "generation": {
      "schema": "ab5d-essay-generation/1",
      "model": "grok-4.6 + gpt-6-astra",
      "displayName": "Grok (reported as Grok 4.6), independently revised by GPT-6 Astra",
      "scope": "24 Heures original Grok draft and independent Astra research and substantial revision",
      "essayCount": 1,
      "usage": null,
      "perEssayUsage": null,
      "usageDetail": "Grok did not supply token telemetry. Complete essay token usage is unavailable. Original model/version is contributor-reported. GPT-6 Astra independently rechecked sources, script and the original outputs and revised the text; revision provenance is preserved in the essay data.",
      "contributors": {
        "operator": "xAI",
        "agent": "Grok",
        "model": "Grok 4.6",
        "modelVersion": "grok-4.6",
        "tools": [
          "GraphQL POST",
          "curl",
          "PNG inspection"
        ],
        "humanEditorialInvolvement": "none",
        "originalProseLicense": "CC0-1.0",
        "revisions": [
          {
            "model": "GPT-6 Astra",
            "scope": "Independent full-script reading, five original views, source and chronology corrections, full rewritten essay and current collection ownership verification.",
            "usage": null
          }
        ],
        "originalSubmission": {
          "model": "Grok 4.6",
          "verification": "Contributor-reported; no provider telemetry supplied",
          "archive": "grok-round-003-packages.zip",
          "archiveSha256": "f4c2a8c282613791053e9db277052982dc926fa3de0d3dae9361d5dbe5c71508"
        },
        "attributionNote": "Original draft by Grok (reported as Grok 4.6); independently researched and substantially revised by GPT-6 Astra."
      }
    }
  },
  "codeInspection": {
    "source": "projects_metadata.script",
    "endpoint": "https://artblocks-mainnet.hasura.app/v1/graphql",
    "query": "query($ids:[String!]){ projects_metadata(where:{contract_address:{_eq:\"0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270\"}, project_id:{_in:$ids}}){ id project_id name artist_name artist_address slug description website license invocations max_invocations script_type_and_version activated_at completed_at start_datetime vertical_name heritage_curation_status locked script } }",
    "variables": {
      "ids": [
        "201"
      ]
    },
    "retrievedAt": "2026-09-18",
    "byteLength": 13356,
    "sha256": "6110a32ab4da5b973b27748a0b9e9889d9e698ccf17d3064bcaef602689e89e5",
    "runtime": "js@na",
    "executed": true,
    "chainBlock": null,
    "coverage": [
      "Alea seeded from tokenData.hash also seeds simplex-noise permutations; 25 palettes, interpolated with gamma adjustment.",
      "WebGL2 native renderer, requests float framebuffer/filter/blending extensions; no p5 or THREE dependency.",
      "Two to four moving agents, or ten in a separate branch. Paths can be polygonal, a noisy extended path, or a noise-generated closed path; bounds sampled at 400 points for centering and scale.",
      "Nearby agents repel and emit connecting particles; others shed particles, with lifetimes 200 frames, special connecting particles 100. Noise, damping and optional attraction to another agent govern emitted particles.",
      "60-triangle circular geometry instanced by position/size and colour; particle radius varies with life fraction.",
      "Two floating-point textures/framebuffers implement separable nine-tap blur; feedback image persists with very weak background replacement; vignette/brightness/gamma final pass.",
      "requestAnimationFrame runs continuously; any key toggles wt pause, pointerdown sets _t to current frame-derived Et, displaying track for five Et units. Et increments .01 per unpaused frame, so five units about 500 frames, not five seconds.",
      "Date.now elapsed since page load separately tests 86400000<t<86460000, a one-minute window after 24 hours; stronger background replacement and palette offset occur then. This condition is not modulo one day, so do not claim daily repetition.",
      "After pause, wall clock continues but Et does not; movement is frame-stepped rather than normalized to measured delta time.",
      "No audio APIs or external media imports in inspected artist body.",
      "Responsive orientation chooses landscape16:9 or portrait9:16 with coordinate rotation; no resize event listener, so initial dimensions determine framing."
    ],
    "executionNote": "Original generator viewed in browser; pause and track controls tested on96; no local execution."
  },
  "editorialExceptions": [],
  "completionStatus": "reviewed-for-publication",
  "presentation": {
    "editionSize": 137,
    "maximumEdition": 137,
    "mintDate": "2021-10-31T22:48:08+00:00",
    "mintDateMeaning": "First indexed mint",
    "artwork": {
      "project_id": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270-201",
      "token_id": "201000096",
      "invocation": 96,
      "owner_address": "0xdd19308a9731cdecb67e0d80ca6823394208c045",
      "preview_asset_url": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096.png",
      "live_view_url": "/series/24-heures-by-alexis-andre/artwork.html",
      "canonicalLiveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096",
      "canonicalUrl": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096",
      "mode": "live",
      "copyrightStatus": "CC BY-NC 4.0",
      "copyrightUrl": "https://creativecommons.org/licenses/by-nc/4.0/",
      "interactionNote": "Moves automatically. Press any key to pause or resume; click or tap to reveal the track.",
      "displayBasis": "Verified collection holding; attributed original remote renderer with artwork licence link."
    }
  },
  "observationImages": [
    {
      "id": "E01",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000000",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000000",
      "sourceIds": [
        "S04"
      ],
      "selectionNote": "Assignment candidate edition 0; first mint.",
      "observationNote": "Two views: dark green field, pale mint/white/yellow narrow feather-like trails forming an irregular loop with large lower central opening and diagonal extension upper right. Later bright spikes gathered at upper central crossing while overall path persisted.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000000.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000000"
    },
    {
      "id": "E02",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000001",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000001",
      "sourceIds": [
        "S13"
      ],
      "selectionNote": "Assignment candidate edition 1.",
      "observationNote": "Two views: teal ground, separate coloured plume segments at sides with broad empty centre. Blue/pink left segment developed toward centre into yellow/green tuft; green/right segment remained spatially separate.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000001.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000001"
    },
    {
      "id": "E03",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000010",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000010",
      "sourceIds": [
        "S14"
      ],
      "selectionNote": "Assignment candidate edition 10.",
      "observationNote": "Original observed across two successive changing states: pale mint/pink/yellow feather-like traces form an irregular wide loop on dark green-grey. Large central empty field. Bright newest plumes moved from lower left/right toward upper left/right while older loop stayed blurred; strong distinction between sharp moving growth and soft retained route.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000010.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000010"
    },
    {
      "id": "E04",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000020",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000020",
      "sourceIds": [
        "S15"
      ],
      "selectionNote": "Assignment candidate edition 20.",
      "observationNote": "Original observed across two successive changing states: dark burgundy ground, peach/cream/pink/magenta angular bands around triangular opening. Repeated right-angle or sharply bent segments project from dark route like comb teeth; bright bands shifted and widened in later view while older pale forms remain softly blurred. Strong geometric contrast to curved plumes of 0 and96.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000020.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000020"
    },
    {
      "id": "E05",
      "chainId": 1,
      "contract": "0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270",
      "tokenId": "201000096",
      "url": "https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096",
      "sourceIds": [
        "S07"
      ],
      "selectionNote": "Verified AB5D collection example",
      "observationNote": "Brown/olive dark ground with purple, violet, pink and pale filament trails extending laterally. Dense central thorn-like tuft changes shape across views; large empty lower left region. Fine spikes, blurred older paths and bright small moving points.",
      "previewUrl": "https://media-proxy.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096.png",
      "liveUrl": "https://generator.artblocks.io/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/201000096"
    }
  ],
  "publication": {
    "date": "2026-09-18",
    "url": "https://ab5d.xyz/series/24-heures-by-alexis-andre/",
    "authorization": "Phil requested website publication on 2026-09-17.",
    "reviewSnapshot": "/docs/series-essays/production/24-heures-by-alexis-andre/record.json",
    "unresolvedResearchQuestionsRetained": true
  }
}
