Skip to main content
Ctrl K

Pure3D

A web platform for exploring 3D digital collections and editions in cultural heritage.

2
contributors
427 commitsLast commit ≈ 5 days ago2 stars0 forks

Description

Netherlands eScience Center

Pure3D

License Research Software Directory

A web platform for exploring 3D digital collections and editions in cultural heritage, with interactive viewing powered by Smithsonian Voyager.

Visit Pure3D · Documentation

Built with SvelteKit 2, Svelte 5, Tailwind CSS 4, DaisyUI, PocketBase and Bun.

Local development

Install Bun, Docker with Docker Compose, and mkcert, then run:

git clone https://github.com/PURE3D-EU/pure3d.git
cd pure3d
cp .env.example .env
# Set unique local POCKETBASE_ADMIN_PASSWORD and MINIO_ROOT_PASSWORD values in .env.
make dev

Open https://127.0.0.1:60020. This provisions the local PocketBase and MinIO services, installs Voyager, and starts the Docker frontend. Certificate setup may require administrator approval. Local commands use local services even if an existing .env points to production.

Private seed data and 3D assets are not included; obtain them from a project maintainer. For setup details, asset provisioning, local ORCID sign-in and alternative workflows (including a native Bun frontend), see Development.

Production access is explicit: make dev-prod connects a local frontend to live services; changes affect production data. See Live OVH opt-in.

Security policies

  • Keep credentials, database backups, private assets and service data out of Git. Use private .env files and never reuse production credentials for development.
  • Bind local services to loopback and require explicit service passwords. Production access, hook deployment and schema migrations require separate authorisation; frontend releases do not deploy backend protections.
  • Enforce permissions and private-record/file access in PocketBase, not just the UI. Reviewer verdicts follow the review workflow; unsafe raw storage deletion is disabled.
  • Clear private browser state on account changes. Gemini API keys stay in memory and are sent in request headers, not URLs; unowned legacy gallery images are quarantined rather than deleted.
  • Run real-backend security journeys in CI with a checksum-pinned PocketBase binary. Review dependency advisories and verify affected feature workflows; passing checks is not a complete security assessment.

Removing a backup from the current tree does not erase old commits. Historical credential exposure needs a reuse assessment, rotation where necessary and separately approved history cleanup. See Security hardening for applied controls, verification evidence, remaining advisories and deployment limitations.

Documentation

  • Development — setup, commands, configuration, certificates and assets
  • Testing — feature tests and backend verification
  • Roles and permissions — access control
  • ORCID — authentication configuration and operations
  • Open calls — CMS administration and migration
  • Releases — automatic releases from main and GitHub Pages deployment
  • Documentation index — architecture, PocketBase and Voyager guides

Licence

Apache 2.0.

Keywords
No keywords available
Programming languages
  • Svelte 56%
  • TypeScript 34%
  • JavaScript 7%
  • CSS 1%
  • HTML 1%
  • Other 1%
License
Not specified
</>Source code

Participating organisations

Netherlands eScience Center

Contributors

Contact person

Jesse Gonzalez

Jesse Gonzalez

Research Software Engineer
The Netherlands eScience Center
0000-0002-2170-3253Mail Jesse
Jesse Gonzalez
Research Software Engineer
The Netherlands eScience Center
0000-0002-2170-3253
Carsten Schnober
Carsten Schnober

Related projects

PURE3D 2.0

Building a Sustainable and Open Infrastructure for 3D Scholarship

Updated 4 months ago
In progress

Dynamic3D

Real-Time Simulation and Analysis for 3D Scholarly Editions

Updated 18 months ago
In progress

Paradata in 3D Scholarship

Intellectual Transparency and Scholarly Argumentation in Digital Heritage

Updated 12 months ago
Finished