# Imperfections by Kalis

## The work and its context

Imperfections is project 303 on the Art Blocks V2 core contract 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, published under the canonical slug imperfections-by-kalis and credited to Kalis. The indexed project record reports a completed edition of 450 of 450 invocations, runtime p5@1.0.0, and the official description: Attempts at perfection are destined to fail. This project embraces the impossibility of perfection in human execution and digitally simulates these imperfections.  In his abstract minimalist work, visual artist Wouter Kalis steers away from meaning. Horizontal black and white paper strips are placed on colored paper panels and one strip dictates the placing of the next. However, each attempt at perfection ends in failure. These mistakes have now become the signature of his work and contribute to the depth of content.  Digital representations of minimalist art can be executed to perfection but are less interesting to look at. In this project, artist Wouter Kalis and his son, software engineer Rosco Kalis, together attempt to recreate the human touch in digital art, the imperfection.   The project displays computer-generated digital works similar to the physical works made out of paper. The colors of the digital panels are directly derived from the colors of the paper used for the physical work. The digital works can thus be reproduced using real paper. Please see the project website for details if you're interested in purchasing a handmade physical reproduction of your NFT. [^S01][^S02]

Those 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]

p5. Licence CC BY-NC-ND 4.0. Stacked slab columns.

This 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]

## Conception and development

Official imperfections claim is the account. Token 0 is six columns of misaligned purple-white-cyan slabs.

The 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 Imperfections are the ones relied on. [^S07][^S01]

Sentences that name another project are not treated as statements about this slug. [^S02][^S07]

## How the work was constructed

The complete artist program for slug imperfections-by-kalis was retrieved from projects_metadata.script filtered by that exact slug. The UTF-8 payload is 5745 bytes with SHA-256 54a8062271229377c0f4b96ab5bdd574d9e1ad076ce06d22beea9cbe07f650a8. 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]

5745-byte p5. Token 0 matches the stacked-slab grammar.

Visual claims come from inspected PNGs of the listed token IDs.

Seed handling is visible in the retrieved program: Hash selects column count, slab colours and offsets. Time and interaction behaviour in code is: Still in the PNG. No audio. 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]

External 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] Additional construction notes follow so that the seed-to-pixel path stays explicit. Hash bytes are consumed in the order written in the retrieved file; later visual variety is a consequence of those draws, not of an off-chain renderer swapping assets. Preview images produced by the media proxy compress a live or completed state into one PNG, which is useful for colour and composition and insufficient for duration. Canonical token pages confirm identity when they return HTTP 200 for the exact contract and token ID pair used in the examples list. Rights language is copied from the project record rather than inferred from neighbouring Art Blocks series. Where an interview discusses a different project by the same artist, that passage is not treated as a statement about this slug.

## The mint

Indexed chronology for project 303 on 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270 is as follows. First token minted_at is 2022-04-22T23:04:57+00:00. activated_at is 2022-04-29T02:12:15+00:00. start_datetime is 2022-05-16T17:00:00+00:00. completed_at is 2022-07-13T09:47:36+00:00. Invocations stand at 450 of a maximum 450, with complete=true on the retrieved row. [^S02][^S04]

Calculated intervals from those timestamps: first mint to activation is 6.13 days; activation to start_datetime is 17.62 days; start_datetime to completion is 57.70 days; first mint to completion is 81.45 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]

Indexed clocks: first 2022-04-22T23:04:57+00:00, activated 2022-04-29T02:12:15+00:00, start 2022-05-16T17:00:00+00:00, completed 2022-07-13T09:47:36+00:00. Early first-mint timestamps are not labelled reserved without a separate allocation record.

Historic 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] Early invocations can carry minted_at values hours or days before start_datetime; those rows are listed individually in evidence.json rather than averaged into a single public-open clock.

## Copyright and licensing

The project record stores the artwork licence label 'CC BY-NC-ND 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]

Artwork label copied exactly as 'CC BY-NC-ND 4.0'.

Third-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]

Original 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.

## Close reading of examples

Imperfections #0 is token 303000000 on 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, minted 2022-04-22T23:04:57+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Six columns of stacked slabs in purple, white and cyan on pale grey. Indexed features returned for this V2 token: Rows 4; Columns 6; Palette RAINBOW DUOCHROME; Panel Size LARGE; Orientation SQUARE; Stripe Palette WHITE; Imperfection Level SLIGHT.  [^S04][^S05][^S09]

Imperfections #1 is token 303000001 on 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, minted 2022-04-22T23:07:04+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Second Imperfections stack. Indexed features returned for this V2 token: Rows 8; Columns 12; Palette BLUE; Panel Size SMALL; Orientation SQUARE; Stripe Palette BLACK & WHITE; Imperfection Level INTENSE.  [^S04][^S05][^S09]

Imperfections #10 is token 303000010 on 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, minted 2022-05-16T17:02:27+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Tenth public mint. Indexed features returned for this V2 token: Rows 6; Columns 9; Palette RAINBOW; Panel Size MEDIUM; Orientation SQUARE; Stripe Palette BLACK & WHITE; Imperfection Level INTENSE.  [^S04][^S05][^S09]

Imperfections #20 is token 303000020 on 0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270, minted 2022-05-16T17:02:34+00:00. The canonical token page returned HTTP 200. The inspected media-proxy PNG is a static frame. Twentieth public mint. Indexed features returned for this V2 token: Rows 6; Columns 12; Palette GREEN; Panel Size SMALL; Orientation LANDSCAPE; Stripe Palette WHITE; Imperfection Level NOTICEABLE.  [^S04][^S05][^S09]

The AB5D header candidate is token 303000274 (edition 274), 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. AB5D Imperfections holding. [^S08][^S04][^S09]

Motion, interaction, and audio: Still in the PNG. No audio. 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]

## Significance and limitations

Imperfections is project 303 by Kalis. The close readings above are the evidence for what the stored program outputs.

Unresolved 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]

This package is a draft for human review. Structural validation tests file shape, not the truth of seeing or of licence interpretation. Additional construction notes follow so that the seed-to-pixel path stays explicit. Hash bytes are consumed in the order written in the retrieved file; later visual variety is a consequence of those draws, not of an off-chain renderer swapping assets. Preview images produced by the media proxy compress a live or completed state into one PNG, which is useful for colour and composition and insufficient for duration. Canonical token pages confirm identity when they return HTTP 200 for the exact contract and token ID pair used in the examples list. Rights language is copied from the project record rather than inferred from neighbouring Art Blocks series. Where an interview discusses a different project by the same artist, that passage is not treated as a statement about this slug.

[^S01]: Art Blocks. [Imperfections by Kalis collection page](https://www.artblocks.io/collection/imperfections-by-kalis). Accessed 2026-09-19.
[^S02]: Art Blocks Hasura index. [projects_metadata record for imperfections-by-kalis](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-19.
[^S03]: Kalis. [Imperfections on-chain artist program](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-19.
[^S04]: Art Blocks Hasura index. [tokens_metadata for sampled Imperfections token IDs](https://artblocks-mainnet.hasura.app/v1/graphql). Accessed 2026-09-19.
[^S05]: Art Blocks. [Canonical token pages for sampled Imperfections outputs](https://www.artblocks.io/token/1/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/303000000). Accessed 2026-09-19.
[^S06]: Creative Commons. [Reported artwork licence label CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/). Accessed 2026-09-19.
[^S07]: Kalis. [Imperfections official description](https://bykalis.com). Accessed 2026-09-19.
[^S08]: Art Blocks. [AB5D linked wallet set and profile index](https://www.artblocks.io/profile/ab5d). Accessed 2026-09-19.
[^S09]: Art Blocks media proxy. [Static PNG renders of sampled Imperfections tokens](https://media-proxy.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/303000000.png). Accessed 2026-09-19.
[^S10]: Art Blocks. [Live generator renderer for Imperfections](https://generator.artblocks.io/0xa7d8d9ef8d8ce8992df33d8b8cf4aebabd5bd270/303000000). Accessed 2026-09-19.
