Ansel, a photo organizer software for linux

Hi,

I’m new on the forum.

For the past few months I’ve been working in my spare time on a digital photography management software for Linux.

This program aims to provide a usable photo organizer app on linux for professionals. It currently features:

  • Non destructive editing via external editor
  • Diff view (before & after the editing)
  • RAW extraction (get a JPG from a raw file & displays it).
  • Tag pictures
  • Flag pictures
  • Navigate pictures through various criteria: date, flag, tag, processed…
  • Much more to come…

I’ve made the decision to publish my work as an open source software under the MIT license.

It’s still very much an early alpha, but any inputs are welcome.

The source code is available here: https://github.com/m0g/ansel
And the current release (v0.1) is available here: https://github.com/m0g/ansel/releases

Thanks.

3 Likes

Hi @m0g, welcome to the community! Also - way to make a splash with a neat looking contribution right out of the gate! :smiley:

Looks very nice! Is it or will it be color managed?

Hey!

Welcome/
Great to see a dedicated DAM program which leaves the editing to external programs!
I hope to find time to test it within the next week.

Is the idea for it to run cross-platform?
Will it handle metadata from sidecar files in the XMP standard?

Hi and thanks for your inputs.

Cross platform

Ansel being based on the electron framework, it won’t be difficult to port it to other operating systems. Ansel relies on libRAW (raw processing) and libudev (device management) bindings. In order to ensure optimum portability, libRAW shall be embedded in the app and equivalent to libudev shall be found on Windows & OSX.

XMP standards

I’m not familiar with the XMP standards, I will investigate it.
So far, Ansel is supporting various exif data (aperture, shutter speed, ISO, creation date, orientation & focal length) depending on the camera.

Color management

Same with color management, I’m not familiar with it and will investigate it.

XMP is the de facto standard way of storing and exchanging metadata.
I ask about cross-platform because I generally recommend digiKam, but it hasn’t had an update on Windows for ages and I don’t think that will change, so Windows users don’t have a good libre DAM option as far as I’m aware.

Color management needs to be done right, I say this because its often done wrong. Shoot if you have questions :slight_smile:

[quote=“m0g, post:5, topic:1017”]
Same with color management, I’m not familiar with it and will investigate it.
[/quote]It will probably be fairly problematic. Afaik electron is built on top of blink (the google chrome engine). So doing it right might mean adding color management to chrome which. :confused:

Still it sounds like a cool project and electron should make it fairly easy to extend and make pretty. :slight_smile:

Edit: Actually never mind the fixing all of chrome thing. It could probably be done just for the images.

I’ve just tried to start ansel but got this error:

$ ./ansel 
A JavaScript error occurred in the main process
Uncaught Exception:
Error: libraw.so.9: cannot open shared object file: No such file or directory

I’ve installed all packages with:
$ sudo apt-get install libudev-dev libraw-dev

But I think I’ve a to new version:

$ locate libraw.so
/usr/lib/x86_64-linux-gnu/libraw.so.10
/usr/lib/x86_64-linux-gnu/libraw.so.10.0.0

Could could perhaps document the version you need?

Hi @Tobias,

can you tell me what linux distribution you are running?

Have you tried installing libraw9 or libraw10?

sudo apt-get install libraw9

or

sudo apt-get install libraw10

Hi,

I’m using Ubuntu 15.10 (latest) and it only has libraw10.

$ apt-cache search libraw
libiec61883-0 - an partial implementation of IEC 61883
libiec61883-dev - an partial implementation of IEC 61883
libraw-dev - raw image decoder library (development files)
libraw-doc - raw image decoder library (documentation)
libraw10 - raw image decoder library
libraw1394-11 - library for direct access to IEEE 1394 bus (aka FireWire)
libraw1394-11-dbg - debugging symbols for libraw1394-11
libraw1394-dev - library for direct access to IEEE 1394 bus - development files
libraw1394-doc - Reference manual and documentation about libraw1394
libraw1394-tools - library for direct access to IEEE 1394 bus (aka FireWire)
digikam - digital photo management application for KDE
libkdcraw-data - RAW picture decoding library -- data files
libkdcraw-dev - RAW picture decoding library -- development files
libkdcraw23 - RAW picture decoding library
libkdcraw23-dbg - RAW picture decoding library -- debugging symbols
libraw-bin - raw image decoder library (tools)
librcc-dev - Library for autoconvert codepages development files
darktable - Virtual lighttable and darkroom for photographers

You need to install libraw10

I have libraw10 installed, you are lokking for libraw.so.9 and not libraw.so.10. Have a loook at the error message is posted.

Hey @Tobias,

I’ve poked around with Ubuntu 15.10 in a virtual machine.

Right now it seems I can’t compile the node.js libRaw bindings against the libRaw version shipped in Ubuntu Wily.

So for now, I can’t get Ansel to run on Ubuntu 15.10.

Hey @m0g,

thanks for the work. I hope you can find a solution. Perhaps you can add a build flag to disable the libraw functions. That would make Ansel less useful, but I could at least play with it.

Non-destructive infers that the original data will not be touched … If you are not using ‘sidecar’ XMP files how are you tagging?

Since you deliver a 60mb (I assume) statically compiled binary anyways, couldn’t you just statically link in libraw too?

@davidvj all the relevant information (including versioning) are stored in a SQLite database. In future releases, I want to be able to read the tag from the XMP as well as to write them.

@Jonas_Wagner I have been working on it in the past. But I couldn’t manage to get node-gyp to properly compile and link the library: GitHub - m0g/node-libraw at batteries

edit: typo

Regarding XMP and other metadata, check out the MWG Guidelines. Following those is critical, I think, for any management application.

Hi m0g,

I what ways will Ansel differ from the capabilities of DigiKam as a DAM, which is what I am using currently?

Hey @Gewitty,

Ansel is more thought as a replacement for Shotwell. I was just growing tired of all the crashing and the general slowness.

Considering Digikam I never really bothered to really try it. Maybe the UI is a bit confusing or it simply takes time to understand it.

The things I am really interested into, and that Ansel currently supports are versioning and diff view.

Another feature to come is collection (like in Lightroom), but I haven’t worked on it yet.

So both Shotwell & Lightroom are a source of inspiration.

But then honestly, the best way to make yourself an opinion is to try it.

For @asp and @davidvj, I have started working on the XMP tag import using exiv2