I’m delighted to say that development on Photonix has really picked up pace in the last couple of months. I have some new help in the form of Gyan who has been crunching through a backlog of features with me. There’ll be further details in an upcoming post about him and his role. For now I’m making a commitment to summarize the work that has been completed each month.
This first monthly update (January 2021) is released a few days into February and covers some of December but I felt it necessary to document as I know there will be many more things to write about by the end of this month.
Our demo server is always running the latest software so you can go there and play along.
So let’s get to it, feature by feature…
This feature was a suggestion by a user called MrColumbo. A prevalent way for photographers to separate the wheat from the chaff is to tag each photo with a star rating from 1 to 5 (0/untagged is also an option). This is now possible in Photonix too and is displayed and editable from two screens — the thumbnail list and the detail view of a photo. Thumbnails only show the star rating when the photo has one, so if you don’t use star ratings then they won’t get in your way.
Hovering over a thumbnail’s bottom-left area shows the stars to let you select one (requires a cursor, i.e. desktop/non-touch screen). Clicking the same star as is already attached to a photo, removes the rating. Clicking a thumbnail to view the full-screen photo and then scrolling down to see the extra info now shows the 5 star icons. They will all be hollow until assigned to a photo and the same process applies for removing the rating as on the thumbnails.
The star rating really becomes useful when you start to filter by the ratings you want. Maybe you want to see the best photos to share and print, or maybe you just want to find the worst ones for a clear-out. The filter section gives you control to select your desired range.
Range value sliders
This has a direct benefit to the star rating feature mentioned above. Certain types of photo attributes are numeric in nature — aperture, shutter speed, ISO sensitivity, focal length, star rating and so on. When searching for photos based on these attributes you often aren’t interested in an exact value but a range. For example, if I’m looking for photos taken outside in bright sunlight then I might want everything taken with an ISO sensitivity of 200 and below. If I want photos where the subject is far away (with a long lens) then I might want to filter by a focal length of 100mm or more.
It would be arduous to select all individual values used in the whole collection so a slider makes more sense. Our slider has two handles so you can also select just mid-range values and ignore the extremes.
Basic text search
This is a user interface component that was never fully implemented as intended. Although visually a search bar, in practice it was actually just showing which tags/attributes were currently being filtered and allowed you to remove them easily. Now you can start typing the name of a tag that has been assigned to your photos — whether added manually or automatically by Photonix’s image analysis (AI). The results of your search will update as you are typing so it’s quick to see how many you have and whether you need to narrow or widen your search.
Thumbnail lazy loading
This is a performance feature for when you have lots of images in your collection. There will be more work to come in the area of performance but this is a good step in the right direction. You can imagine that when you have thousands of photos in your library, the thumbnails roll all the way off the bottom of your screen and you can’t see them all at once. Well, you don’t want your browser to try and download all those thumbnails if you’re not even going to look at them. These thumbnails are small in filesize compared to the full photos but all this data adds up. It would use up your bandwidth and slow down your browser. Our thumbnail browser now waits until a thumbnail is visible in the browser window or is close to becoming visible (just past the bottom of the screen) before downloading it.
This feature was contributed by user EduFdezSoy in this pull request. It’s kind of a funny story. I was writing tickets one Sunday evening for Gyan to work on in the coming week. Within a few hours the task had already been completed by the Open Source community. We’re very appreciative and it meant Gyan got to use that extra time elsewhere. Thanks EduFdezSoy!
This is a feature that had been on the backburner for a while. Basically, until now tags were only added by our automatic image analysis. Now people can add their own when they click into the photo detail and scroll down. These manually-added tags are first-class citizens of the app meaning you can filter and search by them, just like any other type of tag.
The frontend for this one was developed a while ago but now it’s connected up to the backend. On first run of the system it allows the primary user to create their account/password, create their primary library, configure importing and select which image analysis algorithms get applied.
These screens will be extended in future when new features get added. We don’t want to make the setup process too drawn out but we want to make sure the user has the system configured how they want (and expect) it. Eventually we want to also highlight the main parts of the user interface to get users familiar with the main features that they’ll use day-to-day.
Not a glamorous feature but a necessary one. This is the first attribute a user can manage about themself and warranted a new modal window popup. This caused us to refactor code (tidy it up) to make sure there was a single component for launching these modal popups in a consistent way. This new modal component is also used for the settings and onboarding process. We were also careful to make sure the password can’t be changed in demo mode ;)
Other minor fixes
- Handling metadata exposure of decimals over 1 second #167
- Handling metadata ISO values that are not just numeric #168
- Small images not being imported #166
- Custom loading screen when backend server is still starting up #150
- Apollo JWT refresh token bug #143
I hope this has been somewhat interesting and you’ll listen in for the next one. If you have any feedback please get in touch via our social media channels and please help others to discover the project. Thanks for reading.
Header photo by Hu Chen