GSoC final report: Krita


so the Google Summer Of Code 2009 ended. I have final report for you.

My GSoC project brings 3 important features for Krita 2.1:
– infinite canvas
– OpenGL tool overlay
– 3D brush visualization

Infinite canvas sounds little funny, but basically it is implementation of the canvas from KOffice libraries where the mouse and tablet events and mainly strokes are not cut by the border of the canvas. So you can start the stroke outside of the canvas. You also can paint outside of the canvas, because internally the layers in Krita are infinite. To check this, paint something on the border and use move tool to move the layer. You see what is painted outside of the canvas.

OpenGL tool overlay. Overlay is e.g. line you see when you use line tool. It is the preview of the line, which is going to be painted. If you enable OpenGL canvas, the tool overlays will be painted with XOR operation using OpenGL. I plan to also add support for brush outlines to be painted with OpenGL as this is much faster way of painting then Qt.

3D brush visualization is something handy when you own a tablet and you don’t paint on screen, but on a device which is in front of you. We inspired this idea by Bill’s Baxter work. You don’t have to watch your hands, you can see the 3D brush on the screen. I wrote obj parser. So we create model with materials in Blender, export it as obj file and every paintop can have it’s own model. enkithan made two models so far, thank you for them, they are very nice. If you own one of those Intuos Tables from Wacom, you will find it useful. At least I found it very nice.

3D brush visualization

Every feature is in a stable state but needs some polishing.Infinite canvas needs better zooming support, especially corners are not handled nicely. Tool overlay is a complicated matter for now, I plan to write one bigger blog post about this as it is complicated issue. And 3D brush need shadows so that you can have a better feeling of the angles.

This GSoC means a lot to me and gave me opportunity to see more from the Krita UI part. You can except more commits from me on UI part of the Krita. But I will focus on brush engines this year as my thesis is waiting for me.

Thanks to my mentor, Sven. Thanks to fellow KOffice and Krita hackers for answering my questions. It was nice.

Some videos showing the features:
Infinite canvas
OpenGL Tool overlay
3D Brush

This entry was posted in Krita. Bookmark the permalink.

6 Responses to GSoC final report: Krita

  1. Bugsbane says:


    Some nice new features. Thanks! Infinite canvas wins my award for most useful, while 3d brush is just plain cool (especially as it looks like it takes tilt into account as well as position). Do you need any other brushes created in Blender?

  2. LukasT says:

    @Bugsbane: just show up in #koffice and we can talk about it. I’m offline for next week as I’m on my holidays. But I believe that any Krita hacker can guide you. Or enkithan, who I trust in this area :)

  3. Dread Knight says:

    Really impressive work!

  4. lokimonster says:

    Very cool!
    3D Brush is great idea! There should bee some more simple looking brushes too with less overlaping, but it is great ^^ Brush rotation for flat brushes will be implemented to it too?

  5. LukasT says:

    @lokimonster: yep, I can add that in the future. I have pen with rotation support.

  6. lokimonster says:

    Happy to hear that :) Gimp 2.8 will be using tilt for mapping (important for simulating drawing) but rotation with flat brushes is very important for simulating real painting media.

    Your OpenGL Tool overlay is very cool too, Krita isn’t a demon of speed for now so are enhancements in this area are cool.

    I can help with 3D models too, if needed.

Leave a Reply