Skip to content

nuit-dhiver/Open-Museum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Museum

Open Museum is a project dedicated to capturing and maintaining 3D models of monuments and public art using 3D reconstruction.

Project Goals

The primary aim of this project is to document and preserve 3D models of world's cultural and artistic heritage. By leveraging modern photogrammetry techniques, we hope to make high-quality 3D models of monuments and public art widely accessible.

Explore & Download the Models

All 3D models are available on the website. You can browse and interact with them directly:

  • Browse & download models: Visit openmuseum.io
  • Models are available in .GLB and .USDZ for different Web, Apple Ecosystem and Android

Asset Storage

Large files (3D models and images) are hosted on external storage to keep the repository lightweight.

The storage URL is configured via the PUBLIC_ASSETS_BASE_URL environment variable:

# Copy the example env file
cp .env.example .env

# Set the storage URL (current: Firebase Storage)
PUBLIC_ASSETS_BASE_URL=https://open-museum-885a1.firebasestorage.app

Local Development

  • With remote assets: Set PUBLIC_ASSETS_BASE_URL in .env and assets load from Firebase
  • With local assets: Leave PUBLIC_ASSETS_BASE_URL empty and place asset files in public/models/ and public/images/works/ (these directories are gitignored)
  • Switching providers: Just change the URL — file paths are resolved at build time via src/utils/assets.ts

Gallery Thumbnails (Build-Time Optimization)

Work-page gallery images now use generated .webp thumbnails for initial render and only load the full-size photo when the user opens the lightbox.

  • Generator script: pnpm thumbs:generate
  • Script source: scripts/generate-work-photo-thumbnails.mjs
  • Auto-run before build: prebuild runs the generator automatically
  • Output directory: public/images/thumbnails/works/

The generator reads all photos arrays from src/content/works/*.json (gallery photos only), then:

  • fetches originals from PUBLIC_ASSETS_BASE_URL when set (Firebase-compatible URL handling), or
  • reads originals from local public/ when external storage is not configured.

Optional tuning via environment variables:

  • WORK_THUMBNAIL_WIDTH (default: 900)
  • WORK_THUMBNAIL_QUALITY (default: 72)
  • WORK_THUMBNAIL_CONCURRENCY (default: 4)

CI Asset Health Check

The deployment workflow includes an automated changed-page asset validation step:

  • Command: pnpm test:assets:changed
  • Script: scripts/ci/asset-health-check.mjs
  • Scope: validates only pages affected by changed content/routes in the current deployment diff
  • Checks:
    • poster assets (e.g. <model-viewer poster> and og:image)
    • photo assets (<img src>)
    • 3D model sources (<model-viewer src> and ios-src)

If validation fails, the workflow:

  • fails the build before deployment,
  • emits GitHub Actions error annotations per failed asset,
  • uploads asset-health-report.md as a workflow artifact,
  • writes the same report to the workflow step summary for quick triage.

How to Contribute

Feel free to contribute to this project in any way you can. Whether it's capturing new models, improving existing ones, or sharing feedback, your help is greatly appreciated!

If you have any questions or suggestions, don’t hesitate to contact me.

Support Us

Your support means a lot! Here’s how you can help:

  • Make a donation.
  • Star this repository ⭐
  • Make a donation.
  • Share the project with others
  • Make a donation.

License

Code (website / software)

All source code (Astro/TypeScript/CSS/JavaScript) in this repository is licensed under the MIT License. See LICENSE.

3D models and media

All 3D models, scans, textures, and other non-code assets in this project are licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).

Thank you for your interest in Open Museum!

About

Open Museum is a project dedicated to capturing and maintaining 3D models of monuments, public art and cultural heritage globally using 3D reconstruction.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors