Skip to content

Releases: Jamster3000/Scout

Final version and support for Python version

17 Mar 15:10
87d6b9b

Choose a tag to compare

This is the python version of Scout. Python was originally the default choice due to CLIP models being directly supported with python's Pytorch library. Since then there's alternatives and my love for rust (still learning) has made this version obsolete, slow, and not-so user friendly.

This python version has the following pain points that I was never happy with, in such that python could not solve

  • One code file, messy and difficult to maintain or fix
  • Used Tkinter with CustomTkinter over the top which struggled to support large image grids and being able to scroll through them.
  • Indexing was optimized the most it could and was still too slow to do large number of images quickly.
  • There was no possible way to have this into an actual app. Pyinstaller and other installers didn't package the .dill files Pytorch wanted, thus instantly breaking.
  • To the above point, this also meant no mac, Linux or mobile support.
  • The user interface had little animation and just wasn't the most pleasant to use, even if the design was somewhat modern(ish) - (colour scheme was a default that the library had).
  • Wasn't really storage efficient as it generated thumbnails to make the search results render faster.

With that in mind, given me ascending the mountain (also known as a learning curve) of rust and my love for the language, I've decided to create a new and improved version using rust taking into account with all the above pain points.

With that in mind, below is this project's original requirements and reason for existing to finish off the end of this python version.


Originally, I had a large offline collection of top-down battlemap images used for TTRPGs online. But there was enough that it was hard to find the right ones quick enough, sometimes taking 20-40 minutes just to find one that was right. I had gone through more iterations of ideas and "solutions" for this problem than anything else I have before.

My first idea was to manually editing image titles and just list keywords then use the build in search in file explorer. I didn't even attempt this as it was too much manual work and too much to try and keep maintaining of.

The second idea, was obviously more programmable. So I created a C# windows form application (that I had recently used and learned how to make at the time), I had no knowledge of how to have this automatic like it is today, my only solution was making manual input as easy and quick as possible. This project was also the very first one that I used and learned SQL statements.

I eventually over the 3 ish years, I discovered OpenAI's CLIP models. By this timespan from the "image search" program (See my GitHub profile as it's still got it's repo) I had learned AI and models well enough that I created something in python to do it. Though this took several attempts because I wasn't sure how the model worked.