MetaDashbord:
I enjoy photography and often find myself with over 5,000 images when I get home. I’ve been searching for a tool that shows which shooting settings I use most. That info is really useful for spotting trends, such as which lenses I reach for most and at what focal lengths, apertures, ISO values, and shutter speeds. These insights help me decide which lenses to buy.
I started with a simple Python script that invoked ExifTool on every image file in a folder to pull out focal length, aperture, exposure, ISO, and model data and rendered a basic ASCII progress bar in the terminal. It quickly became obvious, that spawning ExifTool once per image and counting files through repeated directory walks was too slow for libraries with more than a couple thousand images. I fixed this by switching to a single ExifTool pass that outputs metadata for every file and throttling progress updates to every 50 images kept the UI responsive without overwhelming the UI thread.
Once performance was acceptable, I focused on usability. I designed a dark-mode Tkinter interface with grouped panels for folder selection and metric choice, added a sleek, border-free entry and dropdown, and built real-time plotting using Matplotlib. ISO and shutter-speed distributions posed a unique challenge—linear histograms crushed most of the buckets in the graph so I implemented categorical bar charts based on my camera a Sony A6400’s native ISO and exposure increments.
Code can be found here Github