2 KiB
Web UI v1
Milestone 7 is one FastAPI application serving both a built React/TypeScript frontend and a JSON
API. It reads existing processed artifacts without mutating them. Only weighted-similarity query
results are written, under data/cache/weighted-similarity/.
User flows
/searches title, artist, classification, and object number; it also offers a deterministic seeded random entry point and corpus coverage figures./artwork/:idpresents the image and bilingual metadata, a proportional weighted-palette strip, weighted feature values, user-triggered sonification, and similarity tabs./aboutexplains provenance, interpretation, missingness, and the distinction between source, derived features, and artistic mappings.
Color similarity is the default. Visual-character and geometry profiles remain separate. The
weighted-color profile is labelled as a slower, explicit deep comparison; it is never launched by
page load or tab hover. Its exact result is cached by canonical entity ID and the SHA-256 of
similarity-profiles-v2.json, so profile changes invalidate old cache entries.
Audio never autoplays. Play and stop controls are keyboard accessible, palette values have visible text labels, focus indicators are explicit, and reduced-motion preferences disable decorative motion. Missing physical geometry is shown as unavailable rather than inferred from pixels.
API
GET /api/healthand/api/statsGET /api/artworks?q=&limit=&offset=&classification=&has_physical=&chromatic=GET /api/artworks/random?seed=GET /api/resolve/{object_number}(retains ambiguous object-number groups)GET /api/artworks/{smk_entity_id}GET /api/artworks/{smk_entity_id}/similar?profile=color|visual|geometry|weighted-color
The compact web catalog is reproducibly built with smk web-catalog. Application startup fails
with an explicit artifact list when required processed files are absent; it never rebuilds or
downloads analytical data automatically.