Cap shared hall lights (no per-painting spots) so MeshStandard walls stay within WebGL limits, tuck classical/neoclassical details into engaged corner pilasters, and document the light budget.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hall frames use thumbs only (never multi-MB originals). Preload no longer blocks open; texture downloads are queued; boot overlay no longer waits on HDR Environment.
Co-authored-by: Cursor <cursoragent@cursor.com>
Clicking a movement opens ArtistFilterModal to choose artists before the gallery. Large halls no longer permanently blank frames when texture loads exceed the overlay deadline; fall back thumb to full to on-demand API.
Co-authored-by: Cursor <cursoragent@cursor.com>
Staff accounts use admin/curator roles and fine-grained flags; transitions connect source-to-target with color gradients and stream cutout masks so overlaps stay seamless.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add Inputs/gariff_influential_painters_influences.xlsx for curator import, document Inputs/Output conventions, and let non-overlapping movements share horizontal lanes on the timeline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prod env files now win over root .env so harmonize:db can open gallery_prod after gallery_dev; tour_stops gains updated_at; halls no longer block the overlay on every painting texture. Docs cover the fixes and one-artist image pull from prod; Duccio painting assets synced from TrueNAS.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep Loading gallery until Environment and gl.compileAsync finish (with timeouts), GPU-upload painting textures before dismiss, and drop Canvas shadow maps.
Co-authored-by: Cursor <cursoragent@cursor.com>
Paintings get editable curator notes with brass plates in the 3D hall, and visit order now uses the far/end wall between left and right.
Co-authored-by: Cursor <cursoragent@cursor.com>
Document the inverted InfluencePictureLamp mount so link indicators match the intended fixture orientation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Visitors walk published tours in a 3D hall with stop notes; curators edit drafts via Tour editor. All galleries (artist, movement, tour) place the first work left of the entrance view and the last on the right.
Co-authored-by: Cursor <cursoragent@cursor.com>
CSV/JSON/XLSX mapping wizard expands artist-level rows to all paintings, blocks duplicate file/data imports via content and payload hashes, and documents the workflow in influence-import.md.
Co-authored-by: Cursor <cursoragent@cursor.com>
UI chrome via react-i18next, catalog text in entity_translations with ru.wikipedia seeding, locale-aware search, and Translations page for publish workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Public GET /api/search over artists, movements, and paintings with a debounced header bar on the timeline; Back to Timeline resets zoom and gallery session.
Co-authored-by: Cursor <cursoragent@cursor.com>
Uploads and fixes now bust browser cache via file-mtime keys in API
responses. Debug upload shows a centered loading overlay and blocks search
while uploading. Prod DB restore skips curator_audit_log.
Co-authored-by: Cursor <cursoragent@cursor.com>
Display Loading gallery and Loading paintings in the canvas area while the WebGL scene initializes and wall textures resolve, and document the behavior.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Show loading markers while the catalog, portrait thumbnails, and 3D
halls load so users know loading is still in progress.
- Recover the 3D hall from a lost WebGL context by remounting the canvas
with a fresh context instead of leaving a permanent dark window, and
guard the HDR environment map behind an error boundary.
- Show movement streams whose span overlaps the view even when their
artists lived outside the visible time range.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load the home-page catalog once with a lightweight artists API, batch pan/zoom updates per frame, use dynamic year labels, and speed up movement-flow zoom. Add sync-image-paths and fetch-artist-images plus docs for the post-seed pipeline.
Restore seed-wikipedia.js and seed-catalog-data.js so npm run setup works on a fresh clone. Point nginx at the Vite dev client and allow the public hostname in Vite config.
DELETE /api/paintings/:id removes works and image files with gallery refresh and catalog navigation; Show more opens the search modal on load; documentation updated for migrate schema and debug workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate Inputs/PainterPalette.csv for artist metadata and influence links, add db/schema.sql with server/migrate.js, letterbox influence panel thumbnails, and refresh Titian/Pontormo images.
Co-authored-by: Cursor <cursoragent@cursor.com>
Configure hosting for gallery.mysuperlab.netcraze.pro and LAN access, enhance movement gallery textures with period-appropriate painted materials, dedupe influenced-by API responses via painting_influence_sources, and refresh several painting image files.
Co-authored-by: Cursor <cursoragent@cursor.com>
Movement galleries split large catalogs into chronological wings (~55 works), use era-themed 3D interiors with side-wall windows, wing navigator on the back exit, and front archways between wings. Also adds painting annotations, timeline event guides, portrait hover highlights, and documentation/API updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extends the debug panel on painting detail and artist bio with a 20-result search picker, local image upload, and clear-to-empty-frame workflow, plus API routes, artist checkup migration, and documentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add parquet floor, museum-style exit, movement-tinted walls, and gold/black
frames with gallery sync after Fix it. Debug panel gets Checked and Fix it
buttons; documentation and image-fetch reliability updates included.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce checkup_checked/checkup_fixed on paintings with Checkup page filters and API. Fixed paintings auto-mark as reviewed. Add find-duplicates tooling and document debug/checkup workflow. Include Botticelli and Michelangelo image fixes from checkup.
Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-queue Google-family searches for filtered rows with Fix-it support; include corrected painting images from checkup workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support artist and movement influence links with web discovery, a developer checkup table with gallery/detail thumbnails, and debug image search with fix-it workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
Timeline: era and historical-event click-to-zoom, event markers from historical-events.ts. Movement flow: shared zoom/pan, viewport-fit layout, curved lineage streams, hover-to-reveal artist lifespans on stacked lanes. Docs updated. Includes batch-fetched paintings and regenerated thumbs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expand the gallery with prev/next browsing and fullscreen detail view, golden influence lamps and chronological wall layout in 3D halls, and scripts/docs for catalog expansion, influence edges, and multi-source image fetching.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add multi-row dynamic halls, eye-level camera, canvas covers for missing works, preserved view when returning from detail, and corrected image overrides for Kauffman and Raphael. Update documentation and add fetched painting assets.
Co-authored-by: Cursor <cursoragent@cursor.com>