Skip to content

Mundam is an ultra-fast, privacy-focused desktop application designed for concept artists, illustrators, and designers. It replaces clunky file managers with a high-performance visual engine capable of handling thousands of assets. Featuring real-time folder watching, advanced metadata logic, and broad support for professional formats.

Notifications You must be signed in to change notification settings

marcusagm/Mundam

Repository files navigation

Mundam Logo

Mundam

Mundam is a high-performance, local-first image reference manager designed specifically for artists, concept designers, and illustrators. It allows you to organize, tag, and view massive collections of reference images with zero lag, keeping your workflow uninterrupted.

Built with Tauri v2, Rust, and SolidJS, Mundam combines the raw power of native code with the reactivity of modern web interfaces.


πŸš€ Key Features

  • Extreme Performance:

    • Virtualized Masonry Grid: Handles folders with thousands of images at a silky smooth 60fps.
    • Parallel Processing: Uses multi-threaded CPU acceleration (Rayon) to generate high-quality WebP thumbnails in the background without freezing the UI.
    • Smart Caching: Thumbnails are generated once and persisted. The incremental indexer tracks file changes instantly.
  • Artist-Centric Design:

    • Distraction-Free UI: Minimalist dark mode interface that puts your art first.
    • Local First: No cloud uploads, no subscriptions. Your images stay on your disk.
    • Real-Time Watcher: Drop images into your folder, and they appear in the library immediately.
  • Efficient Indexing:

    • Duplicate Detection: (Planned) Hash-based tracking to avoid duplicates.
    • Metadata Preserved: Automatically reads modification dates and file specs.

πŸ›  Tech Stack

  • Frontend: SolidJS, TypeScript, Vite
  • Backend: Rust (Tauri v2)
  • Database: SQLite (via sqlx & tauri-plugin-sql)
  • Styling: Vanilla CSS (Scoped, Variable-based)
  • Architecture:
    • Custom thumb:// and orig:// protocols for secure asset loading.
    • Upsert-based indexing for robust crash recovery.
    • Rayon-powered worker threads for heavy image lifting.

πŸ“¦ Installation & Development

Prerequisites

  • Node.js (v18+)
  • Rust (v1.70+)
  • macOS / Linux / Windows (Build tools required)

Getting Started

  1. Clone the repository

    git clone https://github.com/marcusagm/Mundam.git
    cd mundam
  2. Install Frontend Dependencies

    npm install
  3. Run in Development Mode This command starts the Vite server and the Tauri Rust backend simultaneously with hot-reload enabled.

    npm run tauri dev
  4. Build for Production

    npm run tauri build

    The binary will be available in src-tauri/target/release/bundle/.


🧩 Architecture Highlights

This project intentionally diverges from typical Electron/Web apps to prioritize performance:

  1. Optimistic Updates: The indexing worker communicates directly with the UI store via granular events, eliminating database polling and ensuring instant visual feedback.
  2. Blocking Placeholders: The UI intelligently hides original high-res images until the lightweight thumbnail is ready, saving significant RAM and CPU during rapid scrolling.
  3. Self-Healing DB: The internal SQLite database handles schema creation and migrations automatically on startup (create_if_missing).

πŸ—Ί Roadmap

1. Library & Location Management

  • Location Management: Select and monitor local folders.
  • Real-time Watcher: Auto-sync new files, renames, and deletions.
  • Drag-and-Drop: Import folders via drag-and-drop.
  • Integrity Checks: Detect and handle broken paths or moved libraries.

2. Tag System (Taxonomy)

  • Hierarchical Tags: Parent/Child tag structures (Tag Tree).
  • Tag Management: Rename, merge, and move tags; custom colors.
  • Assignment: Bulk tagging, auto-complete suggestions.
  • Tag Search: Quick filtering of the tag list itself.

3. Media Visualization

  • Masonry Layout: Optimized virtualized grid for variable aspect ratios.
  • Progressive Loading: Async thumbnail generation and "lazy" original loading.
  • Slide/Inspection Mode: Fullscreen viewer with zoom/pan and navigation.
  • File Actions: "Open in Explorer", "Copy to Clipboard".

4. Search & Filtering

  • Basic Search: By filename.
  • Advanced Criteria: Filter by resolution, file type, dates, or tag logic (AND/OR).
  • Smart Collections: Saved searches that auto-update (Smart Folders).

5. Metadata & Extras

  • EXIF/IPTC: Auto-read camera data and creation dates.
  • Custom Properties: User-defined fields (Notes, URL source).
  • Web Clipper: Browser extension integration for direct imports.

6. Infrastructure & Internals

  • Parallel Indexing: Rayon-powered background worker for thumbnails.
  • Resilient Database: SQLite Upsert logic for crash recovery.
  • Backup System: Automated database snapshots.
  • Format Support: Extensive support for 3D, Fonts, RAW, and Vectors.

🎨 Supported Formats

Mundam provides extensive support for various media types, categorized by their rendering and thumbnail generation capabilities.

Total registered formats: 137 extensions

  • Native/Full Support: 98 (Thumbnail processing + Interactive visualization)
  • Basic Support: 39 (Visualization available, thumbnails via format icons or stubs)
  • Testing Base: 206 formats monitored for future expansion.

πŸ–ΌοΈ Images

Category Formats Status Notes
Standards jpg, jpeg, jpe, jfif, webp, png, tiff, gif, bmp, ico, tga βœ… Full support (Thumb + View).
Design psd, psb, afdesign, afphoto, afpub, xmind, aseprite, kra, xcf, clip βœ… Full support (Thumb + View).
RAW dng, cr2, nef, nrw, rw2, raf, orf, pef, erf, sr2, srf, cr3, crw, arw, 3fr, srw, kdc βœ… Full support (Thumb + View).
RAW (Stubs) braw, r3d, ari, gpr, iiq, x3f, dcr, fff, iiq, mos 🚧 Planned support.
Specialized pam, pbm, pgm, pnm, ppm, cur, heic, heif, avif, exr, dds βœ… Full support (Thumb + View).
Vectors svg βœ… Full support (Thumb + View).
Publishing indd, idml, sketch, fig, cdr, pdf, mdp 🚧 Planned support.
Adobe/OS ai, eps πŸ‘οΈ View usually works via WebView/OS.

🧊 3D Models

Category Formats Status Notes
Standard 3D glb, gltf, obj, fbx, stl, dae, 3ds, dxf, lws, lwo πŸ‘οΈ View only (Thumbnails pending).
Project blend πŸ‘οΈ View as image (Internal preview).
USD & CAD usdz, usd, usda, usdc, step, stp, iges, igs 🚧 Planned support.

πŸ”‘ Fonts

Formats Status Notes
ttf, otf, ttc, woff, woff2 βœ… Full support (Thumb + View).
eof 🚧 Planned support.

🎬 Video & Audio

Category Formats Status Method
Native Video mp4, m4v, mov, qt βœ… Native browser playback.
Transcoded Video webm, wmv, asf, mkv, flv, f4v, avi, divx, mxf, ts, mts, vob, m2ts, 3gp, 3g2, wtv, rm, rmvb, ogv βœ… HLS Streaming.
Linear Video swf, m2v, mpg, mpeg, mjpeg, mjpg, hevc, h264, h265, y4m βœ… Linear HLS for legacy/raw formats.
Video Projects aep, prproj, fcpxml, drp 🚧 Planned support (Icons).
Native Audio mp3, wav, aac, m4a, m4r, flac, mp2 βœ…* Native browser playback.
Transcoded Audio opus, oga, ogg, wma, ac3, dts, wv, aifc, amr, ape, spx, ra, mka, aiff, aif, caf, aax, mid, midi, bwf βœ…* HLS / Linear HLS Streaming.

Legend:

  • βœ… Full Support: Thumbnail generation and interactive visualization.
  • βœ…* Audio Support: Interactive visualization with format-specific icons as thumbnails.
  • πŸ–ΌοΈ Thumb Only: Thumbnail available, but no deep inspection/view.
  • πŸ‘οΈ View Only: Interactive visualization available, but no thumbnail.
  • 🚧 OS Dependent: Behavior varies depending on system-level codecs/WebView.
  • ❌ No Support: Currently not supported for preview or view.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Mundam is an ultra-fast, privacy-focused desktop application designed for concept artists, illustrators, and designers. It replaces clunky file managers with a high-performance visual engine capable of handling thousands of assets. Featuring real-time folder watching, advanced metadata logic, and broad support for professional formats.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published