Skip to contents

artpixeltrace provides certificate generation and image verification for digital artwork authenticity within the Artalytics platform. It enables PDF certificate of authenticity generation, perceptual hashing for duplicate detection, and Procreate canvas signature validation.

Installation

# Install from GitHub (requires GITHUB_PAT)
pak::pkg_install("artalytics/artpixeltrace")

System requirements: LaTeX (tinytex), ImageMagick, FFTW3. See DESCRIPTION for full list.

Environment Variables

artpixeltrace requires environment variables configured through its dependencies (artcore, artutils).

Database (via artcore)

Variable Description
ART_PGHOST PostgreSQL database host
ART_PGPORT PostgreSQL database port
ART_PGUSER Database username
ART_PGPASS Database password
ART_PGDATA Database name

CDN (via artcore)

Variable Description
ART_BUCKETS_KEY_ID S3-compatible storage access key ID
ART_BUCKETS_KEY_SECRET S3-compatible storage secret key

Quick Example

library(artpixeltrace)

# Step 1: Verify canvas has artist signature
is_signed <- isCanvasSigned("path/to/artwork.procreate")

# Step 2: Compute perceptual hash for duplicate detection
hash <- image_phash("path/to/artwork.png")
hash$art_hash    # "a1b2c3d4e5f6"

# Step 3: Generate certificate of authenticity
cert <- renderCertificate(
  artist = "746bxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  artwork = "99xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  saveDB = TRUE,
  saveCDN = TRUE
)
# Certificate now available at cert$path_pdf

Package Hierarchy

artpipelines / modUpload (consumers)
        |
   artpixeltrace (this package)
        |
   artutils (data access layer)
        |
   artcore (database/CDN infrastructure)

artpixeltrace depends on artutils and artcore. It is used by: - artpipelines - Artwork verification pipeline - modUpload - Artwork upload module

Documentation

Development

For AI agent instructions and coding standards, see AGENTS.md.

# Run tests (requires database/CDN access)
devtools::test()

# Full package check
devtools::check()

Proprietary - Do Not Distribute