Skip to content

mdhvg/miscible

Repository files navigation

Miscible™

Miscible Header

Miscible™ is a next-generation, high-performance gallery application which brings on device semantic search and extensive filtering features to your local media. Built in C++, it delivers lightning-fast responsiveness and an incredibly light footprint all within a ~8MB binary. It brings the advanced features typically locked behind cloud-based commercial products like Google Photos, OneDrive, and Microsoft Photos to your local machine, completely offline and privacy-first.

Miscible™ Screenshot Miscible™ running on Windows 10

Why Miscible™?

I made this because nothing like this exists and I love taking pictures 📸

Note

Development Status: Miscible™ is currently in an active alpha stage, things are expected to fail/break. Make sure to report any findings on the issues page.

Development

Miscible™ only supports Windows and Linux because these are the only operating systems I have available, out of which Windows is the one I actively use to develop Miscible™ (for now), so Linux build is currently broken and outdated. (contributions are welcome)

Requirements

Setup

  • Recursively Clone the repo
git clone --recursive https://github.com/mdhvg/miscible
cd miscible
  • Run the setup script
python3 ./scripts/setup.py

OR

uv run ./scripts/setup.py

Build - Windows

Build script automatically detects installed compiler. Supported ones are msvc and clang-cl. Miscible.exe is built in (project root)/build directory.

./scripts/build.ps1 [debug|release|test] [msvc|clang-cl]

Build - Linux

TODO

Usage

  • From the first launch, Miscible™ will start downloading the laion/CLIP-ViT-B-32-laion2B-s34B-b79K automatically in the background.
  • To get some images displaying in Miscible™, click the ➕ button in the sidebar and select an and let it automatically scan the directories and populate the thumbnail previews.

Add images to miscible™

  • Use the Search/Sort/Add Filter buttons according to requirements to view results with different constraints (inclusion or exclusion).

Query Images in miscible™

  • Press Clear button to go back to viewing all images again.

Found bugs?

Create an issue and paste in the logs relevant to that bug.

Operating System Log file location
Windows %LOCALAPPDATA%/Miscible/logs/
Linux ~/.local/share/Miscible/logs/

Credits

Although there are many things that need refactoring to follow the style (#TODO), the code style and build procedure in this software is heavily inspired by @Casey Muratori's Handmade Hero series (YouTube).

A lot of core code snippets come from EpicGamesExt/raddebugger.

Other sources which were referenced

License & Trademarks

  • Code: Licensed under the GPL v3.0.
  • Trademarks: The name "miscible" is a trademark of Madhav Goyal. See TRADEMARK.md for details.

Releases

Packages

Contributors

Languages