Annoucement of dtLapse

What has started out as a simple python script (here) has grown into a piece of software that I’m proud to release to the public today.

The purpose of dtLapse is similar to what LRTimelapse is to Lightroom: enhance, facilitate and ease the creation of timelapse videos with darktable. DtLapse supports various algorithms for interpolating and smoothing darktable’s module parameters based on a set of keyframes.

You can find it here:

Jochen Keil / dtlapse · GitLab

I hope you will find it useful!



This looks amazing, thank you for sharing!

1 Like

This is so awesome. Will definitely try it out soon.

1 Like

@AxelG has been wanting something like this for a while.

Sounds great…I had been intending to ask around about whether something like this existed, and now I don’t have to! Thanks!

1 Like

I’m going out to shoot tonight!
Where can we donate?!

1 Like

Can you please tag releases? That would help packages to provide dtlapse packages.

Very nice !
Do you have some timelapses of yours made using this script? I’m curios what is possible with DT and this automation script :blush:

1 Like

I think installation went well. I’m on Linux Mint 20 (Ubuntu 20.04) and need to install python3-venv but after that I got no errors creating my virtual environment. At this point I guess I run to install it? When I run python3 I get the following:

dave@dave-desktop:~/dtlapse$ python3
Traceback (most recent call last):
  File "", line 13, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'

I have no idea what numpy is.

Numpy is a python library for numeric computing, you could install it either using pip (or pip3).
Just execute: pip3 install numpy

Alternatively there is usually a package for your distribution called pytho3-numpy or something.

1 Like

Could you maybe give a short intro/use case of this?

Edit: I was lazy and didn’t read your original topic. If I understand correctly it is a way to animate/keyframe/smoothen adjustments such as exposure and white balance over your set of images?
Maybe you could add a short explanation to your (otherwise very comprehensive) readme, for those who don’t know what LRTimelapse is.

Anyway, I will give this a try soon!

Hi David,

thank you for trying it out!

Actually, after installing python3-venv, you need to set up a venv like so:

$ cd dtlapse
$ python3 -m venv env
$ source env/bin/activate
$ pip install -r requirements.txt
$ ./ ...

But never mind, I will wrap this in a shell script, so it’ll be more convenient.

Noted. Actually I wanted to tag a release, but I felt unsure where to start. Maybe 1.0.0 is a good start for a first version :slight_smile:

Wow, thank you very much! I feel very honored! If you really feel like this is worth a donation, feel free to use Paypal:

But please give it a spin first and see if it’s useful for your work! :slight_smile:

The version does not really matter. You can start with 0.0.1 or 1.0.0. just increment them if you change things. A good indicator which number to change when can be found here

While we are at it … assigning a license and adding copyright headers.

1 Like

Yes, that kind of the idea of it. I thought I gave enough motivation in the readme file, but apparently there’s room for improvement :slight_smile:

Let’s assume you’ve taken a (very short) timelapse consisting of 10 frames. If you’d take your pictures as they were using an automatic algorithm (e.g. your cameras jpeg routine) you might notice that brightness and color flicker. This does not happen always and depends heavily on how well your camera’s light meter and white balance algorithm works but it happens.
Back to your frames. You start working on your first frame in darktable and once you’ve got a result you’re happy with you just copy the entire history stack over to your other pictures.
But no, what happened? The highlights are blown out and the colors look totally off, even stronger for every picture. The lighting conditions changed rapidly during your shot and your edit of the first frame doesn’t fit your last frame. How can you fix that without tediously working on every single frame?
It actually pretty easy. You just declare frames 1,4,7 and 10 as keyframes, do your editing there and interpolate the module parameters for 2,3,5,6,8 and 9. So, instead of editing 10 frames, you’re now down to 4.

I hope this clarifies things a bit. If not, feel free to ask again :slight_smile:

Looking forward to hear back and see the results!

Thanks, I will adopt that!

Good reminder! I should know better, since that’s actually part of my day job. :see_no_evil:

1 Like

Here’s my youtube channel. Basically anything there has been created with this script / algorithm in one way or the other.

For final editing I use shotcut.

My workflow basically looks like this:

Edit keyframes in darktable → run dtlapse → export 16 bit TIFFs → create FFV1 video with ffmpeg → create proxy video (*) with ffmpeg → edit video in shotcut → export shotcut project with FFV1 to 4k

(*) A full res (6000x or even 8000x) FFV1 file can be several GBs in size making totally unusable for editing. That’s why I usually edit in 1080p H264 or so.


Your readme mentions that the goal is similar to LRtimelapse, but I didn’t know what that was. For me it would help if you, before describing what keyframes are, mention why you would want them.

But now that I have watched an LRT tutorial I think it’s very cool to do something similar in darktable so I will definitely give this a try. And maybe I’ll start some hacking on a tone equalizer module, because I use that quite a lot in my editing.

One more thing: filmicrgb’s parameters are going to change quite a bit in the upcoming 3.2 release, so that is probably going to require some tweaking.

Cool tool, thanks for publishing!

1 Like

I’m working on making the iop parameter description dependent on the modversion. I saw the change to filmicrgb already and I hope the parameter’s still scale easily. If not, then I might get a headache :grimacing:

Very cool! Let me know if you need help!