Krita/Lukas

From KDE Community Wiki

Previous experience with Krita

Lukas Tvrdy first joined Krita when it was still in its rough stages, back in 2008. Prior to his sponsored development in 2010, he worked on Krita as part of GSoC 2008, GSoC 2009 and his Master thesis, implementing many of Krita's paintops such as the Deform Brush, Hairy Brush, Dyna Brush, Spray Brush and Grid Brush, as well as adding additional features such as 3D brush visualization, the ability to draw outside the canvas, and more.

Even after the sponsored development period, Lukas continues to work part-time on Krita, coding new features (mirror mode, offset mode for seamless textures etc.), adding new brushes (Experiment brush, multi-brush etc.), improving performance and fixing many bugs.

In 2009, Lukas' dedication and skills convinced the community to sponsor him to work full time on Krita for a period of several months. This duration was then extended thanks to additional donations.

Duration: 24 weeks, from 25 January 2010 to 28 September 2010 (with breaks in-between)

Highlights:

  • Huge performance boosts
  • Wrote, integrated and/or improved many features into the Pixel Brush: Custom and Predefined brushes, Soft and Gaussian modes for the autobrush, density, scatter, HSV dynamics, Airbrush mode, sharpness and more
  • Many improvements to other brushes: Deform brush, Smudge brush, Hairy brush, Spray brush and more
  • New brush: Sketch brush
  • Support for Photoshop and Gimp brushes
  • Global pressure mapping and dynamic brush outlines
  • Many bug fixes


Weekly breakdown (non-exhaustive, as Lukas worked on other features and bugs in parallel to the action plan)

(Click links in first column for weekly summaries)

Week Summary
Week 1 Wrote 10 benchmark classes to test for bottlenecks and improve speed.
Week 2 Improved the autobrush, resulting in changes leading to a 6x speed improvement in painting.
Week 3 Added basic support for Photoshop and Gimp brushes.
Week 4 Optimized iterators to improve performance. Better Photoshop brush support.
Weeks 5&6 Better Photoshop brush support, better Autobrush performance, better Flood Fill tool performance, and rewrote the Deform brush.
Week 7 Made Smudge Brush 12 times faster.
Week 8 Wrote benchmarks for composite operations. Wrote Curve and Gaussian brush modes for Autobrush, and added density, jitter parameters and HSV dynamics.
Week 9 - (2) Implemented mirror image (flip image). Improved hairy brush.
Week 10 Default presets for brushes. Work on performance regression.
(Weeks 11~23) Sponsored Development was put on hold as Lukas worked on his Master of Science.
Week 24 Better Photoshop brush support, added Airbrush mode for brushes.
Week 25 Better Photoshop brush support, more work on Spray brush.
Weeks 26&27 Better Photoshop brush support, brush mirroring, built Krita on Windows.
Week 28 Lots and lots of bug fixing.
Week 29 More bug fixing and performance improvements.
Week 30 Work on custom brush tips and added new features.
Week 31 More work on custom brush tips and predefined brush tips.
Weeks 32&34 Implemented global curve for pressure mapping. Option to change canvas border. Improved color picker. Brush clean-up: merge Soft Brush and Chalk into Pixel Brush, ported Density and Scatter (Jitter), added sharpness and fade. (Week 33 was holiday)
Weeks 35&36 Fixed issues in Paintops. Implemented dynamic brush outline. Fixed issues with deform brush, hairy brush, line tool and offset. Implemented multiply composite op for alpha colorspace. Added selection awareness to Composite Copy.
Week 37 Brush rendering, UI and performance fixes.
Week 38 - (2) Fixes to the Smudge Brush, ported the Sketch brush to Krita.