art-project / r20260903-182531

Figure composite · 3 photographs · frieze · 3 unit placements per side · 6 total · 8366×2048px · no AI — deterministic photographic composite · draft checks passed

Click the artwork for the full-resolution master. Below: how it was made, stage by stage.

STAGE 1
Ingest & Trust
complete
STAGE 2
Recipe
complete
STAGE 3
Compose
complete
STAGE 4
Evaluate
complete
STAGE 5
Provenance
complete

1Ingest & Trust

What happened: 3 photographs fingerprinted, matched to the signed attestation, orientation-normalized, and stripped of private metadata.

Output: 3 protected working copies with fingerprints.

DSCF1298.jpg
  • Original fingerprinted
  • Development attestation matched
  • Orientation normalized
  • Private metadata removed
Technical details
SHA-256 7204d42e9c965182c4e29be9d7a4c65d108058c699fc423ecdccf3804fe92443
pHash 8c3271ccb3916e67
working copy 1800×1800px
DSCF0639.jpg
  • Original fingerprinted
  • Development attestation matched
  • Orientation normalized
  • Private metadata removed
Technical details
SHA-256 c6799ba1d425373efae26267d23716ff8d30f80162b79b02249d6e645d1c58d7
pHash cb6d3096c6593b2c
working copy 1800×1800px
C77I0396.JPG
  • Original fingerprinted
  • Development attestation matched
  • Orientation normalized
  • Private metadata removed
Technical details
SHA-256 dfba5e11ff81d140e573da56c615980cc2b5380e54f4dbba093ddede7ebd2e67
pHash cc3333cecc393263
working copy 1800×1200px

2Recipe

What happened: 3 figure groups cut from the black mirror with their real reflections; mirror lines detected for alignment.

Output: the recipe — mirror row (frieze) using DSCF0639.jpg, C77I0396.JPG, DSCF1298.jpg; 3 unit placements per side, 6 total (spacing 0.06, gap at axis 0.02, unit height 0.62).

DSCF1298.jpg

1412×1301px · coverage 15.34% · mirror line 63%

DSCF0639.jpg

1091×1336px · coverage 7.69% · mirror line 42%

C77I0396.JPG

829×935px · coverage 5.76% · mirror line 49%

3Compose

What happened: source units were placed on the left half from the axis outward with mirror lines aligned, then the right half was produced as an exact mirror.

Output: the artwork above.

Step 1: Source units placed on the left half — mirror lines aligned
DSCF0639.jpg, C77I0396.JPG, DSCF1298.jpg
Step 2: Mirrored — the right half is an exact flip of the left
DSCF0639.jpg, C77I0396.JPG, DSCF1298.jpg

4Evaluate

What happened: the artwork was checked automatically before anything was signed.

Output: all checks passed.

No close pHash match detected against the source photographs (closest distance 25; anything under 12 would fail this preliminary check)
Image has real content (luminance spread 0.1053; under 0.04 would fail)
Symmetry exact — the right half is a bit-exact mirror of the left
Colour scheme stays within the photographs' own (artwork chroma 0.003 vs source 0.004; over 1.005 would fail)
Raw check data
{
 "near_copy": {
  "distances": {
   "C77I0396.JPG": 25,
   "DSCF0212.jpg": 35,
   "DSCF0639.jpg": 29,
   "DSCF1298.jpg": 29,
   "DSCF1988-2.jpg": 33,
   "DSCF2382-2.JPG": 29,
   "DSCF4196.jpg": 33,
   "DSCF7531.JPG": 31
  },
  "min_distance": 25,
  "passed": true,
  "threshold": 12,
  "note": "pHash only \u2014 add copy-detection embedding lane before production"
 },
 "blank": {
  "luminance_std": 0.1053,
  "passed": true,
  "threshold": 0.04
 },
 "symmetry": {
  "mirror_exact": true,
  "passed": true,
  "threshold": "bit-exact"
 },
 "color_scheme": {
  "canvas_chroma_p99": 0.003,
  "source_chroma_p99": 0.004,
  "passed": true,
  "threshold": 1.005
 }
}

5Provenance

What happened: the recipe, source fingerprints, every contribution, and the final hash were recorded in a manifest containing the signed artist attestation.

Output: a manifest and this offline verification report — DRAFT CHECKS PASSED.

artwork hash matches · development attestation signature valid · 3 of 3 photographs attested and contributing · no platform signature yet (dev run)

All assertions
assertionleveldetail
final_artifact_hashcryptographically_verified54deef0451335f4363b0414861f91717a650f51f500b07f263cb0e19b3f3fd0c
artist_attestationartist_attestedEd25519 signature valid — manually witnessed ceremony, not institutional identity proofing
source_attested:figurecryptographically_verified7204d42e9c965182
source_attested:figurecryptographically_verifiedc6799ba1d425373e
source_attested:figurecryptographically_verifieddfba5e11ff81d140
source_file:figurecryptographically_verifiedDSCF1298.jpg
source_file:figurecryptographically_verifiedDSCF0639.jpg
source_file:figurecryptographically_verifiedC77I0396.JPG
source_contributes:7204d42e9c96cryptographically_verifiedhas material deterministic contribution
source_contributes:c6799ba1d425cryptographically_verifiedhas material deterministic contribution
source_contributes:dfba5e11ff81cryptographically_verifiedhas material deterministic contribution
contribution:figurecryptographically_verifiedop=figure_cutout_placement materiality={'affected_area_pct': 3.04, 'mean_delta': 0.2749} post_genera
contribution:figurecryptographically_verifiedop=figure_cutout_placement materiality={'affected_area_pct': 3.14, 'mean_delta': 0.1712} post_genera
contribution:figurecryptographically_verifiedop=figure_cutout_placement materiality={'affected_area_pct': 6.78, 'mean_delta': 0.2321} post_genera
platform_signaturenot_collectedno platform signature in bundle (unsigned draft)

Audit

program mirror_frieze v0.1.0 · family symmetry_guaranteed · assignment grammar · model none · output 8366×2048px · final sha256 54deef0451335f4363b0414861f91717a650f51f500b07f263cb0e19b3f3fd0c

Technical operation log
tstageoptooldetail
0.0s1 · Ingest & Trustsha256_originalhashlib (stdlib)C77I0396.JPG → dfba5e11ff81d140…
0.0s1 · Ingest & Trustattestation_checkEd25519 (cryptography)C77I0396.JPG: hash covered by signed attestation ✓
0.1s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)C77I0396.JPG → cc3333cecc393263
0.6s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)C77I0396.JPG → working_dfba5e11ff81.png (EXIF/GPS stripped, 1800px) sha 693b27fa39588848…
0.6s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF0212.jpg → 32da524753227f13…
0.6s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF0212.jpg: hash covered by signed attestation ✓
0.7s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF0212.jpg → ceb0317c98c7c63c
1.9s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF0212.jpg → working_32da52475322.png (EXIF/GPS stripped, 1800px) sha d135301258988be5…
1.9s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF0639.jpg → c6799ba1d425373e…
1.9s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF0639.jpg: hash covered by signed attestation ✓
2.1s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF0639.jpg → cb6d3096c6593b2c
3.0s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF0639.jpg → working_c6799ba1d425.png (EXIF/GPS stripped, 1800px) sha b61f7865ea99bd66…
3.0s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF1298.jpg → 7204d42e9c965182…
3.0s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF1298.jpg: hash covered by signed attestation ✓
3.4s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF1298.jpg → 8c3271ccb3916e67
5.0s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF1298.jpg → working_7204d42e9c96.png (EXIF/GPS stripped, 1800px) sha b337beb27392a715…
5.0s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF1988-2.jpg → 47a9866d38f9cd9c…
5.0s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF1988-2.jpg: hash covered by signed attestation ✓
5.0s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF1988-2.jpg → 8c93646cb36c27d3
5.2s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF1988-2.jpg → working_47a9866d38f9.png (EXIF/GPS stripped, 1800px) sha 3402109c240276b8…
5.2s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF2382-2.JPG → 4db561142cf00a12…
5.2s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF2382-2.JPG: hash covered by signed attestation ✓
5.8s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF2382-2.JPG → cce1e3e1c1e0e4e3
6.9s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF2382-2.JPG → working_4db561142cf0.png (EXIF/GPS stripped, 1800px) sha 1ff349f6b2d6d610…
6.9s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF4196.jpg → 7394d814a5c78b82…
6.9s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF4196.jpg: hash covered by signed attestation ✓
7.4s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF4196.jpg → c7b238878798b761
8.9s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF4196.jpg → working_7394d814a5c7.png (EXIF/GPS stripped, 1800px) sha 6438ef2e040be352…
8.9s1 · Ingest & Trustsha256_originalhashlib (stdlib)DSCF7531.JPG → a641e6f05271ccb7…
8.9s1 · Ingest & Trustattestation_checkEd25519 (cryptography)DSCF7531.JPG: hash covered by signed attestation ✓
9.0s1 · Ingest & Trustperceptual_hashimagehash (DCT pHash)DSCF7531.JPG → 8f916c68b2368dcd
9.8s1 · Ingest & Trustnormalize_working_copyPillow (exif_transpose · LANCZOS · PNG)DSCF7531.JPG → working_a641e6f05271.png (EXIF/GPS stripped, 1800px) sha 50cf52bb0081c6e8…
11.8s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF0212.jpg → unit 722×1285px, coverage 12.01%, waterline 0.7027
13.0s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF1988-2.jpg → unit 629×1161px, coverage 13.64%, waterline 0.5099
14.8s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF2382-2.JPG → unit 424×1494px, coverage 5.64%, waterline 0.51
17.7s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF1298.jpg → unit 1412×1301px, coverage 15.34%, waterline 0.6257
19.7s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF4196.jpg → unit 636×1370px, coverage 7.95%, waterline 0.5277
21.1s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF7531.JPG → unit 619×1434px, coverage 13.68%, waterline 0.606
23.6s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)DSCF0639.jpg → unit 1091×1336px, coverage 7.69%, waterline 0.4222
25.2s2 · Recipeextract_figure_unitfigure.py (luminance ramp × component mask)C77I0396.JPG → unit 829×935px, coverage 5.76%, waterline 0.4877
26.2s2 · Recipecanonical_reciperfc8785 (JCS) · hashlibpattern=frieze source_units=['DSCF0639.jpg', 'C77I0396.JPG', 'DSCF1298.jpg'] placements_per_half=3 · source chroma envelope p99 0.004 — stage 2 complete
29.3s3 · Composecompose_halffigure.py (deterministic placement)frieze: 3 unit placements on the fundamental domain, waterlines aligned
34.3s3 · Composemirror_completefigure.py (NumPy concat)right half = exact flip of left half
37.0s4 · Evaluatedeterministic_gategate.py (pHash · mirror-exact · luminance · LAB chroma)PASS
37.0s5 · Provenancemanifest_writtenrfc8785 · hashlib · pydanticfinal sha 54deef0451335f43… → manifest.json
Raw signed manifest
{
  "manifest": {
    "schema_version": "1.5.0",
    "family": "symmetry_guaranteed",
    "program": "mirror_frieze",
    "program_version": "0.1.0",
    "grammar": {
      "pattern": "frieze",
      "k": 3,
      "spacing_frac": 0.06,
      "axis_gap_frac": 0.02,
      "fig_h_frac": 0.62,
      "alternate": true,
      "figure_order": [
        "DSCF0639.jpg",
        "C77I0396.JPG",
        "DSCF1298.jpg"
      ]
    },
    "parent_works": [],
    "symmetry_program_version": "0.1.0",
    "recipe_sha256": "93793687e64b4103e0cafc963ba0634d76dd8aa64df33053020236f8377b9f0c",
    "sources": [
      {
        "roles": [
          "figure"
        ],
        "original_sha256": "7204d42e9c965182c4e29be9d7a4c65d108058c699fc423ecdccf3804fe92443",
        "working_copy_sha256": "b337beb27392a715927118bd178740e82c0f28cc8a8d65cd2536087f8847607d",
        "asset_id": "7204d42e9c965182c4e29be9d7a4c65d108058c699fc423ecdccf3804fe92443",
        "role_scores": {}
      },
      {
        "roles": [
          "figure"
        ],
        "original_sha256": "c6799ba1d425373efae26267d23716ff8d30f80162b79b02249d6e645d1c58d7",
        "working_copy_sha256": "b61f7865ea99bd668b9789a528ba0a0a435e9b9c4dd542a654c13c149c2cf651",
        "asset_id": "c6799ba1d425373efae26267d23716ff8d30f80162b79b02249d6e645d1c58d7",
        "role_scores": {}
      },
      {
        "roles": [
          "figure"
        ],
        "original_sha256": "dfba5e11ff81d140e573da56c615980cc2b5380e54f4dbba093ddede7ebd2e67",
        "working_copy_sha256": "693b27fa3958884836fc0db16653912346f6a5d8474f0c2f92ee4e27a375273d",
        "asset_id": "dfba5e11ff81d140e573da56c615980cc2b5380e54f4dbba093ddede7ebd2e67",
        "role_scores": {}
      }
    ],
    "contributions": [
      {
        "role": "figure",
        "source_sha256": "c6799ba1d425373efae26267d23716ff8d30f80162b79b02249d6e645d1c58d7",
        "tier": "deterministically_incorporated",
        "artifact_sha256": "e569d9bcc6a437f8b833da5f476643292249e7f264f03b5c5ddb4c9685130069",
        "op": "figure_cutout_placement",
        "op_params": {
          "pattern": "frieze",
          "waterline": 0.4222,
          "placement_count_per_half": 1,
          "materiality_metric": "leave_one_source_out_mean_abs_rgb_delta"
        },
        "materiality": {
          "affected_area_pct": 3.04,
          "mean_delta": 0.2749
        },
        "post_generative": true,
        "receipt_sha256": "not_collected"
      },
      {
        "role": "figure",
        "source_sha256": "dfba5e11ff81d140e573da56c615980cc2b5380e54f4dbba093ddede7ebd2e67",
        "tier": "deterministically_incorporated",
        "artifact_sha256": "6612a3d60489af1db56703516e33ffb26af5419dd5f2fe3f16a4268d3a77109c",
        "op": "figure_cutout_placement",
        "op_params": {
          "pattern": "frieze",
          "waterline": 0.4877,
          "placement_count_per_half": 1,
          "materiality_metric": "leave_one_source_out_mean_abs_rgb_delta"
        },
        "materiality": {
          "affected_area_pct": 3.14,
          "mean_delta": 0.1712
        },
        "post_generative": true,
        "receipt_sha256": "not_collected"
      },
      {
        "role": "figure",
        "source_sha256": "7204d42e9c965182c4e29be9d7a4c65d108058c699fc423ecdccf3804fe92443",
        "tier": "deterministically_incorporated",
        "artifact_sha256": "25e243c4dc4000a54a5e36b75e6ce8bb18615d7fb6ede22edbf5671d931270c2",
        "op": "figure_cutout_placement",
        "op_params": {
          "pattern": "frieze",
          "waterline": 0.6257,
          "placement_count_per_half": 1,
          "materiality_metric": "leave_one_source_out_mean_abs_rgb_delta"
        },
        "materiality": {
          "affected_area_pct": 6.78,
          "mean_delta": 0.2321
        },
        "post_generative": true,
        "receipt_sha256": "not_collected"
      }
    ],
    "model_calls": [],
    "intermediate_sha256s": [
      "d5f2b64e2ce683d77ddce3e5de71d49af8bd304fb726d6a55b790b08c1dcd9ac"
    ],
    "evaluations": [
      {
        "evaluator": "deterministic",
        "passed": true,
        "checks": {
          "near_copy": {
            "distances": {
              "C77I0396.JPG": 25,
              "DSCF0212.jpg": 35,
              "DSCF0639.jpg": 29,
              "DSCF1298.jpg": 29,
              "DSCF1988-2.jpg": 33,
              "DSCF2382-2.JPG": 29,
              "DSCF4196.jpg": 33,
              "DSCF7531.JPG": 31
            },
            "min_distance": 25,
            "passed": true,
            "threshold": 12,
            "note": "pHash only \u2014 add copy-detection embedding lane before production"
          },
          "blank": {
            "luminance_std": 0.1053,
            "passed": true,
            "threshold": 0.04
          },
          "symmetry": {
            "mirror_exact": true,
            "passed": true,
            "threshold": "bit-exact"
          },
          "color_scheme": {
            "canvas_chroma_p99": 0.003,
            "source_chroma_p99": 0.004,
            "passed": true,
            "threshold": 1.005
          }
        }
      }
    ],
    "human_approval": "not_collected",
    "artist_attestation": {
      "artist_pubkey_b64": "bGAayhjZWs4GhVnN4UThcVqmF5ZgaPkudAzZhm84j8c=",
      "ceremony_ref": "NONE-DEV",
      "payload_sha256": "8cc49ff357eaff8f5040056f4c1250c53597b9facc60c7f6b8ea5df2e32f1ca6",
      "signature_b64": "ffN38I3DOucKBZauKHgbRrL7RVjPlC1tX1EZmBPa4IO8iALrUF8b04M/o3PaVj6rzw5o4oXuboTBtz420nrOBQ=="
    },
    "container_image_digest": "not_collected",
    "final_master_sha256": "54deef0451335f4363b0414861f91717a650f51f500b07f263cb0e19b3f3fd0c",
    "created_at": "2026-09-03T18:26:37+00:00"
  },
  "attestation_payload": {
    "statement": "DEV-ONLY attestation for pipeline testing; no ceremony performed.",
    "artist": "Dev Preview (unwitnessed)",
    "source_sha256s": [
      "dfba5e11ff81d140e573da56c615980cc2b5380e54f4dbba093ddede7ebd2e67",
      "32da524753227f133dd07136c64c3c285fc823f418c4190e0a5188f0e708fa67",
      "c6799ba1d425373efae26267d23716ff8d30f80162b79b02249d6e645d1c58d7",
      "7204d42e9c965182c4e29be9d7a4c65d108058c699fc423ecdccf3804fe92443",
      "47a9866d38f9cd9c9fa434a11d58aebcd45bdacf22c0a737ebc674f9cb415dd3",
      "4db561142cf00a12a7b26cd98dbe58f372b28e1758de7e7d51f43bb3be8abd1a",
      "7394d814a5c78b824b66898954efa4f564f2c0a150eb7eae76529a8244259146",
      "a641e6f05271ccb73e04b269e3aeb574a7d49bdf2009790b78be8542143d74ea"
    ],
    "source_names": [
      "C77I0396.JPG",
      "DSCF0212.jpg",
      "DSCF0639.jpg",
      "DSCF1298.jpg",
      "DSCF1988-2.jpg",
      "DSCF2382-2.JPG",
      "DSCF4196.jpg",
      "DSCF7531.JPG"
    ],
    "attested_at": "2026-09-03T18:25:31+00:00",
    "ceremony_ref": "NONE-DEV"
  }
}