Presentation: Integrating Hollywood Open Source with KDE Applications
My GSoC 2020 project, entitled “Dynamic Fill Layers in Krita using SeExpr”, enables artists to create for the first time procedurally generated content directly within the Krita painting suite. This work is powered by Disney Animation’s open source library, SeExpr.
SeExpr is an embeddable, arithmetic expression language that enables flexible artistic control and customization in creating computer graphics images. Example uses include procedural geometry synthesis, image synthesis, simulation control, crowd animation, and geometry deformation.
This presentation will outline the challenges and pitfalls of integrating a Hollywood studio’s published work with a cross-platform KDE application. Aspects reviewed will include adaptations to the build system, dependency management, platform support, and bug triage and fixing. For users, UI and UX design and implementation will also be addressed.
Layers are one of the core concepts of digital painting. They allow artists to control different parts of their artwork at once. A key feature of them is their ability to be resized, composited, renamed, grouped or deleted independently of the rest of the document.
Patterns and textures are also essential components of an artist’s toolbox, allowing them to represent the intricacies of a physical material. They come in two forms: bitmap textures, which are images contained in e.g. PNG or OpenEXR files, or procedural textures, which are generated on the fly using their mathematical representation.
KDE’s Krita painting suite supports patterns and textures through two types of layers, File and Fill Layers. However, neither of them let artists take advantage of procedurally generated content. My GSoC 2020 project, entitled “Dynamic Fill Layers in Krita using SeExpr”, allows artists to create dynamic content through a new, scriptable Fill Layer. To this effect, I integrated Disney Animation’s SeExpr expression language into Krita.
In this presentation, I will guide the audience through the pitfalls and challenges of integrating this library with the Krita codebase. Developers in the audience will be interested in learning how SeExpr’s build system, platform support, and dependencies were harmonized with Krita’s. The creation of its layer generator, and formal specification of its storage requirements, will also be addressed. Artists will be interested in how SeExpr’s UI and UX was adapted to suit their current workflow, as well as KDE’s accessibility and internationalization requirements.