Skip to content

Repository files navigation

Vividarium

Vividarium

A local-first desktop workbench for biological photo libraries and taxonomy

Release Downloads Platform Built with Tauri License

Download | Changelog | Documentation

Why Vividarium?

Biological photo collections often combine three different kinds of information: files on disk, taxonomy data, and names encoded in filenames. Keeping those sources aligned becomes difficult as a collection grows, taxonomy changes, or several photo libraries need to share one knowledge base.

Vividarium brings that work into one native desktop application:

  • Photo libraries - register independent libraries, browse folders and thumbnails, inspect metadata, and keep original files local.
  • Automatic indexing - opening an unindexed library starts background filesystem, metadata, and mapping stages while existing data and unrelated tabs remain available.
  • Taxonomy workbench - search and navigate taxa, edit name groups, run formatted updates, or replace a taxonomy through SQL Import or Direct Import.
  • Photo-to-taxon mapping - match configurable filename fields against scientific, Chinese, and English names, review ambiguous results, and override mappings explicitly.
  • Consistent rename tools - rename one photo or a directory selection from accepted taxonomy names with audit history and rollback.
  • Large-library navigation - cursor-paged lists, virtualized views, resizable workbenches, keyboard navigation, and map browsing for geotagged photos.
  • Local-first operation - SQLite databases, thumbnails, metadata, and operation history remain on the user's computer.

Product Tour

Explore the photo and mapping workflows in the light theme, then the taxonomy and customization workbenches in the dark theme.

Folders - Light theme
Browse indexed photos, open the photo context menu, and inspect the full image.

Vividarium Folders workspace in the light theme, showing a photo list, context menu, and full-image view
Taxon Tree - Light theme
Navigate photographed taxa alongside a virtual thumbnail grid.

Vividarium Taxon Tree workspace in the light theme, showing a taxonomy hierarchy and photo grid
Map - Light theme
Browse geotagged photos on an interactive map with an image preview.

Vividarium Map workspace in the light theme, showing geotagged photo markers and an image preview
Mapping - Light theme
Review ambiguous filename matches and map photos directly to taxa.

Vividarium Mapping workspace in the light theme, showing a photo and candidate taxa
Taxonomy Search - Dark theme
Search names, inspect the hierarchy, and maintain complete taxon records.

Vividarium Taxonomy Search workspace in the dark theme, showing search results and taxon details
Custom SQL - Dark theme
Query accessible taxonomy and file data with structured, exportable results.

Vividarium Custom SQL workspace in the dark theme, showing a query and tabular results
SQL Import - Dark theme
Build, validate, and apply a replacement taxonomy from staged SQL sources.

Vividarium SQL Import settings in the dark theme, showing staged sources, SQL, and validation results
Hooks - Dark theme
Customize Rhai parsers and verify their behavior with project tests.

Vividarium Hooks settings in the dark theme, showing a Rhai parser and passing project tests

Highlights

Browse and inspect photos

  • Folder tree, photographed taxon tree, global search, taxon Photo Sets, and MapLibre map.
  • Synchronized list, thumbnail grid, and full-image selection.
  • Copyable EXIF and file metadata, native file-manager actions, and shared photo context menus.

Build and maintain taxonomy

  • Scientific, synonym, Chinese, and English name groups with authority, source, and geological range metadata.
  • Search by accepted names or aliases with autocomplete and hierarchy navigation.
  • Preview-first formatted updates, prepared apply, configurable CSV delimiter, and concise rule help.
  • Readable Custom SQL plus staged SQL Import and validated Direct Import workflows.

Review every mutation

  • Rename History and Taxonomy History with selection, formatted audit JSON, CSV export, replayable taxonomy input export, and rollback.
  • Background-operation status for long-running imports, mapping, refresh, and update work.
  • Tab-scoped status messages so completed work remains visible when returning to a tab.

Download and Installation

Download the latest packages from GitHub Releases.

Platform Requirement Package First launch
macOS Apple Silicon macOS 11 or newer Vividarium_<version>_aarch64.dmg Open Privacy and Security and allow Vividarium after the first blocked launch.
Windows x64 Windows 10 or 11 Vividarium_<version>_x64-setup.exe Confirm the SmartScreen warning. WebView2 is installed if missing.

Release packages do not require Python, Node.js, Rust, SQLite, or a separate database server on the destination computer. Current macOS and Windows packages are not notarized or signed with a paid platform certificate, so the operating system may request manual trust confirmation.

Quick Start

  1. Open Vividarium and create or register a Photo Library.
  2. Open Settings > Taxonomy Databases and populate the taxonomy with SQL Import or a compatible Direct Import database.
  3. Configure filename matching under Settings > Naming.
  4. Let the first background index and mapping pass finish, then review the Mapping workspace. Reopening a library or using Refresh reconciles later filesystem changes.
  5. Use Folders, Taxon Tree, Search, or Map to browse the indexed collection.

Vividarium does not copy or upload original photos while indexing. Filesystem and metadata work runs in bounded background batches, and the initial index does not pre-generate the library's thumbnails. Lists and grids load cursor pages on demand; thumbnails are created only near the visible area. Actions explicitly labeled Rename do rename files on disk and record the operation in Rename History.

Taxonomy Data Sources

Vividarium does not bundle or redistribute a taxonomy dataset. You can build a knowledge base from your own licensed sources and transform it through SQL Import, or import a SQLite database that already follows the Vividarium taxonomy schema.

For a concrete data-acquisition reference, see BioLib Peeker. It is a separate personal project that crawls and organizes BioLib taxa and synonyms into source datasets. Its output is useful as an input reference, but it is not a ready-made Vividarium Direct Import database; adapt it through SQL Import or another schema conversion step first.

Always follow the source website's terms, licensing, rate limits, and redistribution rules. BioLib Peeker is not affiliated with or endorsed by BioLib, and neither project grants rights to third-party taxonomy data.

Map Providers

OpenStreetMap is available without configuration. Tianditu can be selected under Settings > Map when OpenStreetMap tiles are unavailable. Tianditu requires a browser-side application token (tk); Vividarium stores it in local application metadata and masks it in the interface.

Privacy and Storage

  • Original photos remain in the selected Photo Library directories.
  • Metadata, taxonomy, registered libraries, settings, and history are stored in local SQLite databases.
  • Vividarium has no account system and no application cloud sync.
  • Network access is used only for selected map tiles, update checks, and links that the user explicitly opens.

Vividarium 3.0.0 databases use schema 2. Vividarium 3.1.0 automatically upgrades supported schema-2 metadata, taxonomy, and Photo Library databases to schema 3. The upgrade is forward-only: databases opened by 3.1.0 are not supported by Vividarium 3.0.0.

Architecture

Vividarium uses React and TypeScript for the desktop UI, Tauri 2 for the native adapter, and a Tauri-independent Rust core for SQLite and domain services.

React feature domains
        |
Typed frontend API wrappers
        |
Tauri command adapters
        |
vividarium-core domain services
        |
Local metadata, taxonomy, and photo-library SQLite databases

See Architecture, Desktop Frontend, and the Backend API index.

Development

Prerequisites

  • Rust 1.85 or newer
  • Node.js 24 or newer and npm
  • Tauri 2 platform prerequisites
  • Tauri CLI 2

Run locally

cargo install tauri-cli --version "^2.0" --locked
cd apps/desktop
npm ci
cargo tauri dev

Development builds store application data in the repository data/ directory. Set VIVIDARIUM_DATA_DIR to use another location.

Verify

cargo test --workspace --locked

cd apps/desktop
npm run test:desktop
npm run build

Build release packages

./scripts/build-macos.sh

On Windows PowerShell:

.\scripts\build-windows.ps1

See Building and Releasing for signing variables, artifact locations, and the complete release procedure.

Contributing

Bug reports, documentation corrections, and focused pull requests are welcome. Please run the Rust workspace tests, desktop tests, and production frontend build before submitting a change.

License

MIT Copyright (c) Yunfan Bao.

About

A local organism taxonomy database and photo management app built with React and Rust using Tauri.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages