Skip to contents

artpipelines orchestrates the end-to-end processing of digital artwork submissions for the Artalytics platform. It handles Procreate canvas validation, asset uploads to CDN, metadata extraction, AI-powered style classification, benchmark calculations, and database population.

Installation

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

Environment Variables

artpipelines requires environment variables from several dependency packages.

Required (via artcore)

Variable Description
ART_PGHOST PostgreSQL host
ART_PGPORT PostgreSQL port
ART_PGUSER PostgreSQL username
ART_PGPASS PostgreSQL password
ART_PGDATA PostgreSQL database name
ART_BUCKETS_KEY_ID DigitalOcean Spaces access key ID
ART_BUCKETS_KEY_SECRET DigitalOcean Spaces secret key

Required for AI Features (via artcurator)

Variable Description
ARTCURATOR_PROVIDER AI provider: gemini (default) or openai
ART_GEMINI_KEY Gemini API key (if using Gemini provider)
ART_OPENAI_KEY OpenAI API key (if using OpenAI provider)

Optional

Variable Description
ART_OPENSEA_KEY OpenSea API key for NFT integration (via artopensea)

Quick Example

library(artpipelines)

# Validate a Procreate canvas before processing
canvas_check <- assess_procreate_canvas("path/to/artwork.procreate")
canvas_check$classification
# "DEFINITELY_CREATIVE" / "PROBABLY_CREATIVE" / "INDETERMINATE" / "NOT_CREATIVE"

# Run the full artwork processing pipeline
result <- run_pipeline(
  artist = "746b8207-72f5-4ab6-8d19-a91d03daec3d",
  artwork = "99a61148-1d3b-4340-8cf6-92ad26046b0f",
  collection = "77102117-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  artist_name = "Artist Name",
  art_title = "Artwork Title",
  art_story = "Artist's description of the piece",
  file_image = "/path/to/main.png",
  file_canvas = "/path/to/canvas.procreate",
  file_video = "/path/to/timelapse.mp4",
  zip_frames = NULL,
  file_stats = "/path/to/stats-screenshot.png",
  file_variants = NULL
)

# Result contains all generated data.tables for database population
names(result)
# artwork_index, artwork_stats, artwork_paths, artwork_hash,
# artwork_styles, artwork_profiles, artwork_colors, ...

Package Hierarchy

appPlatform / mod* packages (application layer)
        |
    artpipelines (this package)
        |
artutils, artpixeltrace, artcurator, artopensea, artbenchmark
        |
    artcore (infrastructure layer)

artpipelines depends on multiple domain packages and orchestrates their functions into cohesive workflows.

Documentation

Development

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


Proprietary - Do Not Distribute