kra_imp

In the rhythm of household duties, one often loses the privilege of dedicating time to personal ambitions and projects. I don't agree with that.

Everything is a matter of scale and planning. I used to be able to spend a lot of time working through brute force, but that didn't necessarily mean I was any closer to achieving my goals. Today, I'm a little wiser and can break tasks down into smaller parts, which themselves turn out to have its own added value. That's exactly the case with kra_imp, a library that, in the future, is meant to become a component of a larger whole.

Instead of creating a frame-by-frame animation editor from scratch, I decided to use an existing one and simply import files in the native format. Krita seemed like a solid choice. I discovered that the .kra file format didn't have an importer that could handle this use case. The format didn't look overly complicated, and I thought others might benefit from such a tool as well. That's when the idea shifted from solving a personal problem to contributing something back to the open-source community.

The library only supports a small piece of the .kra format, but it does the one thing no other library can: it imports animations. It took a few evenings of coding, and since I wanted to share it with the world, I made sure to do it right. I designed an API that's easy to extend, added CMake scripts for painless integration, wrote unit tests that helped catch some bugs, and set up GitHub Actions. There's not a lot of code overall, most of the effort went into planning and designing it properly. And yes, there's documentation (my personal weak spot). The library is not perfect, but it's decent, especially for a first release.

This project won't change the world, but it feels good to build something not just for work or personal use, but for others too. After so many years of using open-source code, it was time to give something back. Even if no one else ever uses kra_imp, I can say one thing with confidence — I've contributed.