P20 / PROJECT

SMK Playground

An exploratory art-data project combining reproducible SMK dataset processing, perceptual color analysis, artwork similarity and deterministic sonification.

Conceptual illustration connecting an abstract painting to color-palette swatches, a color-space cloud and sound waves.

Looking at a collection through color

SMK Playground investigates visual and color features in artworks from Statens Museum for Kunst. It combines an auditable analytical pipeline with a small exploratory web application for color search, similarity, weighted palettes and deterministic data sonification.

Rather than beginning with a large search platform, the project first establishes a versioned data foundation. Its published documentation separates raw source snapshots, canonical artwork records, per-artwork features and corpus-relative normalization so that each result can be traced back to its inputs.

A reproducible analytical foundation

The bulk workflow starts from local Danish and English SMK snapshots. Language variants are joined using stable artwork identity rather than assumed row ordering, preserving provenance and making disagreements inspectable.

Language-independent visual features are calculated once. Corpus-dependent normalized values belong to named, frozen profiles, so a change in collection membership does not silently redefine the underlying per-artwork measurements.

Perceptual color, similarity and sound

  • Color calculations move from sRGB through linear RGB into OKLab and OKLCH for perceptual analysis.
  • Feature outputs include weighted palettes, color statistics, palette spread and entropy, dimensions and available visual features.
  • Deterministic exact-distance profiles support color, visual-character and geometry-oriented comparisons.
  • Separately cached enrichment adds weighted palettes and palette-transport similarity without changing the bulk-derived artifacts.
  • The browser application connects these data explorations to deterministic sonification.

From pipeline to exploratory application

The implementation uses Python, streaming ingestion, Polars/PyArrow, Parquet and DuckDB for processing. The application combines FastAPI and React in a single service and reads prepared analytical artifacts through a compact catalog.

The README reports milestones 0–7 complete, including audits, stable source pairing, frozen corpus membership, feature extraction, normalization and similarity profiles. Running the interface still requires the locally prepared artifacts; cloning the source alone does not provide the large input snapshots or a ready-made analytical dataset.

Designed for transparent exploration

The repository documents data quality, rights, dimensions, source disagreements and normalization choices alongside the implementation. This makes the project interesting not only as an interface to art data, but also as an example of keeping analytical assumptions visible.

The featured illustration expresses the connection between art, color and sound. It is not a reproduction of an SMK artwork or a screenshot of the application.

Explore the repository

Read the source code and project documentation for the latest implementation details and setup instructions. This description is based on the public repository reviewed on October 29, 2026.

Project at a glance

Requirements / platforms
Python data-processing environment, local SMK source snapshots and processed artifacts; Docker Compose for the FastAPI and React application.
Technologies
DuckDBFastAPIOKLabParquetPolarsPyArrowPythonReact
Project categories
Art and visualizationOpen data