Sunday, August 17, 2025

Picasa Replacement Project - Update 4 - Roadmap + Component Breakdown

The other day, I went through and did an initial breakdown of the components that would need to be developed as part of my "Picasa Replacement" project, in order to have a workable alternative.

I made this breakdown as a way of going in more level-headed about what exactly I was about to lock myself into (and hopefully convince myself against rashly diving into headfirst), as I was definitely getting "the itch" to just dive right in and build "just the basic photo management tool" part (i.e. "part 4", with "part 1" thrown in to have anything to show, and part 2 inevitably having to be done to before I could even contemplate setting up part 4), with the idea that the actual non-destructive image editing engine would be more of a slow burn afterwards (i.e. the exposure + colour edits would then be ported over as-time-allows, once I had the functional media management tool that I needed first)

(*) I must admit, I have also been slowly digging through Darktable's source code, trying to figure out how much of the iop code can be harvested + refactored into powering the core of my own pipeline  (as some of those operations are really powerful in the ways I want, but simply using the sidecar files to pass data to it doesn't seem as viable an option as I had though, given the horrid way it handles storing state - i.e. obscure hashed / binary-dump data in the sidecar files, coupled with only the database actually having the most recent settings once it loads a file once) 

Anyway, here is the breakdown notes from my notebook, in case anyone else would like to attempt this (or join in the efforts at some point).

 (TBH:  Seeing this breakdown is and should be very sobering... It is probably a decent 4-5 years of man-effort - assuming semi-consistent progress at a fast rate gets made even - to get to a somewhat useful point.  Hence why I wouldn't really recommend anyone attempts this on a whim!) 

 

1) Media Indexer + Database

Need a thing that can: 

   * Find new files 

      Asynchronously, automatically, and with little intervention (other than telling it what *NOT* to index and/or what locations to monitor). This is a real strength of Picasa, but a massive archilles heel of Darktable

    * Generate & store thumbnails - Including not only for JPG/PNG images, BUT also any RAW files that may be present, and/or then also any videos + GIF's...

    * Be able to ingest + adapt existing edit + rating history from Picasa .ini files and Sidecar Files

    * Optionally just ingest an existing database from another app to quickly seed up its own one 

 

2) Main UI Shell

This is the main UI interface application / shell, that sets up all the infrastructure boilerplate that any decent GUI app inevitably requires.

It will have 3 main workspace-modes:

   A) Browse / Manage / Filter - This one is for managing all the media you have on your machine, breaking it down into folders, filtering those to only the good ones OR partitioning out sets out for editing / export / special uses, and also various searching + viewing needs

 

   B) Non-Destructive Editing - This is the built-in editing mode for applying all the common basic edits you need to do

 

   C) Create -  This is for creating all the things you'll often want to do with your photo sets, e.g.

        * "Collagen"  - Collage / Mosaic Generation Tool  (which can also be used standalone + cross platform)

        * Animated GIF's / Stop-Motion Videos for sequences 

        * "Passport / ID Photo Tool"  - i.e. A built-in utility for checking that your self-captured photos match the standard requirements

        * Contact Sheet / Album Exports (?)

        * Auto-Generated Summary Videos on Demand 

 

3)  Folder List widget / Main Album Navigation

     This is relatively straightforward... I hope!

 

4) Image / Folder-Contents Infinite-Scroll View

This is a *REALLY BIG JOB*, but also the real heart of the tool for part A

Todo's here:

 * 4a) Layout algorithm for showing the thumbnails (e.g. handling spacing when different combinations of horizontal and vertical aspect ratio iamges are present) 

 * 4b) Metadata Display in the grid  (e.g. Stars/Rating + Type  + Sequence-Tagging + Maybe Identifiers)

 * 4c) Edit phase/pass filtering  (i.e. being able to persistantly whittle down a folder to show only the top-flagged images for export / sharing, while also being able to drop down to see earlier supersets as needed to fetch / check on if there were any hidden gems missed)

* 4d) Continuous folder-to-folder scroll + layout (i.e. can just scroll through the collection, seeing images grouped by folders, but otherwise being able to see everything as part of one large continuous chronologically-ordered-folders presentation.  This needs:

      i) Folder banner-headers, vs the individual image grids

      ii) Smooth loading of thumbnails for next/prev (and beyond) folders, with never any loading-buffering-repopulation shenanigans

      iii)  Memory management stuff for handling all these thumbnails

 

5) Editing UI

* Color managed display

* Realtime preview of the editing operations, without fully bogging down your machine

* Single vs batch editing modes

* Overlay widgets + interactive manipulators

 

6) Image Editing Operations

 Figure out how to implement the image editing code / port relevant stuff from Darktable + Raw Therapee + etc.

 

7) File Export 

File/folder output naming rules + other quality presets management

No comments:

Post a Comment