I was working on GIF Enjoyer, and I was finishing up the last of the features I wanted to add for the year.
It occurred to me that I had been using base zero for frame numbers the whole time. It didn't feel right to make it base 1, but I added the code to make it possible in the future.
(It was just a 0 or 1 value the widgets could reach for, and it would just add the number to any frame number it displayed, without touching the actual underlying frame number values.)
I was reminded that, yeah, this is partly an easy-to-use GIF scrubbing app. But it's also sort of an informative look into more of the inner workings of GIFs. I recall a time when even if I was into programming, I had no idea how exactly GIFs stored their frame intervals apart from the fact that one was stored for each frame. (You can see this clearly when you open a GIF in Photoshop)
This was the spirit behind this tooltip that appears when the framerate doesn't add up to a whole number:
In the same vein, I think users can tolerate base zero, as a statement that "hey, this is how GIFs work. This is how programs deal with GIF frames".
On the other hand, if the animator were trying to match the animation frame-for-frame, having GIF Enjoyer be base zero and their animation app be base one, will make their process more error prone.
You know what though? Screw it. That's a good enough reason. I'll just add it.












