Last weekend I attended this years Krita Sprint. It was once again taking place in Deventer. This was my third Krita Sprint in Deventer and as usual the sprint was really great. With every sprint there are a lot of new team members that you meet and also some that you have known for several years.
I arrived on Friday evening (a lot later than anticipated due to an airconditioning failure on the train to Deventer). Due to the heat outside the whole team was in the basement of the church under Boudwijns house. There was no heat or daylight and this time even WLAN access, so perfect hacking conditions. I spent most of the evening catching up the stuff that already been discussed. After luch I did some hacking on the remote control. I also added some functionality to make it possible to pick the correct internal color from the canvas from the new color dialog.
On Saturday we had lots of discussions about various topics. I demonstrated the early stage of my remote control experiment. With remote control it’s possible to export properties of Krita as variables that other applications or devices can access. As protocol it currently uses OPC UA using the implementation from Open62541, which allows to use variables and methods to be used over the network. For now it does support changing brush size, opacity and flow.
We had some discussion of the organization of bugs and features and the way they go from brainstorming to final release. In the beginning this was mostly by one developer who picked up a task and developed it. Now we have a lot more people with different interests working on Krita so the development of a feature is a lot more distributed than it used to be. New features are running through different phases from brainstorming to UI design to development to testing and finally documenting and release. Now that 3.0 is out, the next Krita releases will be coming out much faster and more incrementally.
We had a discussion about the future of the resource framework. Resources used to be a small part of Krita with just a couple of brushes, gradient and patterns. Over time it was extended again and again to adjust it to upcoming requirements. We added brush presets, workspaces, palettes, bundles are most stuff. On top a tagging system was implemented. There used to be only a few resources, but now you can have a big collection and Krita still loads everything at startup which causes a long startup time and use more memory. We discussed using database to cache a preview of the resources and manage the resources. However this is a very complicated problem so it will need further planning and a lot of development.
The biggest discussion on Saturday was about the vector graphics improvements that are coming to Krita. Krita used to have vector graphics integration since 2.0, but it used to come out of the productivity applications world which had a couple of downsides for Krita. The vector graphics part was integrated on a low level, but in the user interface there is currently still a disconnect between the pixel and vector world. For example the way you pick a color is different when you have a vector graphics selected. The plan is to unify that and make the transition more seamless. Beside that we also discussed how we the Krita brush engines could be extended into the vector world. As part of the vector work I took over the stop-based gradient editor which is currently undergoing UI design.
A lot of the discussions and more bugfixing continued until I had to leave again on Sunday afternoon. I want to thank Boud and Irina for organizing the sprint and KDE e.v and Krita foundation and all the community members for supporting us.