Intro Blog - Krita GSOC 2024

Intro Blog - Krita GSOC 2024

·

2 min read

Hi! Welcome to my blog on my project experience with Krita under GSOC!

Quick introduction: I'm Ken, an aspiring software engineer from New York and I'm super excited to work with the awesome Krita team to make Krita even cooler than it already is. Being in the GSOC program means I get to experience open-source development under the supervision of mentors (Tiar and Emmet O'Neill) and I'm sure I will learn a lot from them. This will be where I document my work for KDE's Krita program under GSOC.

And a quick recap of the project, I'm trying to implement an option in Krita called Pixel Perfect, which is an algorithm that visually smoothens pixel art curves. This is achieved by smartly removing corner pixels so that lines look less blocky.

As coding officially starts on May 27th here are a few things I need to straighten out:

  • How do we want the option to be officially implemented? In Aseprite it is just a checkbox on the top. It has been suggested that this option be put under the sharpness widget when creating a brush, alongside a check for 100% sharpness which is the pixel brush requirement

  • Where and how exactly do we want to create this algorithm? There are a few files that I noted that deal with brush presets and files that deal with producing actual artwork on the canvas. We need to figure out exactly how brushes in general work and then figure out how exactly we want this algorithm to interact with the brushes.

From what I've discovered, brush presets can be made custom and it seems that brush presets are just a bunch of settings from the editor mashed together with the ability to soften edges, change strength, set curvature settings, add a pattern etc...

Since a pixel brush is defined as part of a Pixel Engine, most likely we will have to make a setting for the Pixel Engine as a whole. Another question I have is how will this interact with non-pixel art brush presets (the brush that isn’t set to size 1 + 100% sharpness).

That's it for now, thanks for reading!