Firstly I’d like to say thank you to everyone involved in darktable, congrats for the 3.6 release.
This is not a feature request.
TLDR: Just go to the HOW? section if you are not interested to read all. The HOW section is really what my question is about.
I have two use cases that might be able to be solved should we can make darktable run on either web or mobile.
Use case 1
I have a large pile of personal, not very high quality RAW photos in my NAS. Around few thousand from the last two years or so. I use NAS because I don’t have enough local space. And I also like the idea of having my personal cloud that I can access anywhere. (Even from different workstations as long as I keep the path the same). The library.db is also stored in NAS.
I use darktable to post process, cull and tag. My processing workflow is slower than the number of photos I take on a single outing, so I keep adding more and more into my processing backlog. But this is not really the issue I want to talk about
My problem is with photos stored in NAS, light table are slow to load. And thus culling and general DAM functionality are just slow. I think darkroom is doing just fine as I only operate on a single image.
Also, I like to view photos that I processed, rated, tagged, etc. I can do this via lighttable, but then again is slow process. I can export everything rated 4 or 5, then view it on another viewer (on my NAS photo viewer). But then I don’t have DT functionalities where I can just do another edit on that. I prefer to only have to export when I need to (e.g. when sharing photos or printing). For everything else, keep them in the master library unexported.
My humble idea:
If I can have darktable working on a server side in my NAS, then I can do my viewing, culling, rating, etc. web based. I assume the web based interface is nicer and faster than SMB protocol I use to open the library in NAS.
Also since DT can process the Light table thumbnails server side, I don’t need to stream RAW files to local before displaying. Huge win!
Use Case 2
My close relatives and family use Lightroom just because it is probably the best raw editor available in Smartphone. They like to take photos, transfer it to their phone, upload to lightroom cloud, process, then share on Instagram. It just so quick workflow from camera to Instagram Occasionally they use the dekstop version to access the same files stored on cloud.
I tried to convince them to try DT. I showed them the way I use DT. They are not convinced since they primarily still use phone and the cloud storage.
My humble idea:
If we can make a web version of DT, it is probably a step closer to make it work on mobile. Same with use case 1, we can run it on our NAS as our personal cloud.
HOW?
Okay so this is really what my question is. I know developers may or may not be interested building such features, but I’d like to understand how we can achieve that. I know a little about web development (but struggling at math), if it is easy enough then probably I will make a start myself.
- Does DT have some kind of API where we can call? Is the processing pipeline really separated from the UI stuff? Is calling darktable processing API from PHP (with PHP-C binding) something feasible? Or maybe other web oriented languange binding?
- On web or mobile based (client server) model, is it better to run that processing pipeline in server side or in the client side?
If we do it client side that means we need to rewrite that whole pipeline in the client side language(javascript or native mobile platform)
- If the aboves are feasible, then most of the effort will be in the UI rewrite?
If we want to start ‘lite’, maybe it is enough to just port the UI for some basic modules as a start. E.g. exposure, filmic, crop, color balance rgb, toneq. And obviously light table.
What do you guys think?