GSoC/2020/StatusReports/LeonardoEmanuelSegovia: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2020‎ | StatusReports
Line 38: Line 38:
=== AppImages support in ARM ===
=== AppImages support in ARM ===


=== Status ===
== Status ==
* 4.3 branch: awaiting review
* master branch: awaiting review


=== Links ===
* SeExpr-based Fill Layer generator: feature complete, '''awaiting review'''
* Proposal: https://summerofcode.withgoogle.com/projects/#6114015970852864
* Creation and management of SeExpr scripts: feature complete, '''awaiting review'''
* Phabricator task: https://phabricator.kde.org/T13097
* Integration tests: '''WIP''', missing tests for the Resources system
* SeExpr changes: https://invent.kde.org/lsegovia/seexpr/-/compare/master...amyspark%2FT13097-gsoc2020-seexpr
* User documentation: '''WIP''', not yet uploaded
* Merge requests: [https://invent.kde.org/graphics/krita/-/merge_requests/380 !380], [https://invent.kde.org/graphics/krita/-/merge_requests/411 !411]
* Feature support status review: '''blog post published''', no fixes proposed
* Blog posts: https://www.amyspark.me/blog/category/gsoc/
* Multithread support for Fill Layers: feature complete, '''awaiting review'''
* ARM support for AppImages: '''blog post published''', no fixes proposed
 
== Deliverables ==
 
* Phabricator task: [https://phabricator.kde.org/T13097 T13097], see in particular subtask [https://phabricator.kde.org/T13337 T13337] for the preset management UI
* Krita Artists threads: [https://krita-artists.org/t/first-alpha-of-my-gsoc-project-procedural-texture-generator/8127 “First alpha of my GSoC project: procedural texture generator”], [https://krita-artists.org/t/procedural-texture-generator-example-and-wishes/7638 “Procedural texture generator (example and wishes)”]
* Fixes and improvements to SeExpr are available at [https://invent.kde.org/lsegovia/seexpr/-/compare/master...amyspark%2FT13097-gsoc2020-seexpr my clone on KDE Invent]
* Merge requests for the SeExpr generator: [https://invent.kde.org/graphics/krita/-/merge_requests/380 !380], [https://invent.kde.org/graphics/krita/-/merge_requests/380 !411]
* Merge request for multithreading Fill Layers: [https://invent.kde.org/graphics/krita/-/merge_requests/412 !412]
* Feature support list is available as a [https://docs.google.com/spreadsheets/d/1Z4bOJuF-NnIqn6SZwQkDxDa5xMkLQvFetNLiLhlfLjo/edit?usp=sharing Google Docs file]
* Blog posts are available [https://www.amyspark.me/blog/category/gsoc/ at my site]

Revision as of 16:10, 19 July 2020

Dynamic Fill Layers in Krita using SeExpr

Abstract

Layers are one of the core concepts of digital painting. They allow artists to control different parts of their artwork at once, for instance, color, lighting, lineart, as well as texture. 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 using patterns and textures through two types of layers, File or Fill Layers. However, neither of them let artists create dynamically generated content: File Layers are inherently static, and Fill Layers support only color fills (like Paint Layers) or basic pattern rendering.

The goal of this project is to let artists create dynamic content through a new, scriptable Fill Layer. To this effect, I integrated Disney Animation’s SeExpr expression language into Krita.

Components

This project is divided into the following objectives or goals:

  • SeExpr-based Fill Layer generator
  • Creation and management of SeExpr scripts
  • Integration tests
  • User documentation

Side goals included:

  • Feature support status across all our platforms
  • Multithread support for Fill Layers
  • ARM support for AppImages (including this project’s deliverables as well)

Fill Layer generator

WIP: https://phabricator.kde.org/T13337

Integration tests

User documentation

Multithreaded Fill Layers

AppImages support in ARM

Status

  • SeExpr-based Fill Layer generator: feature complete, awaiting review
  • Creation and management of SeExpr scripts: feature complete, awaiting review
  • Integration tests: WIP, missing tests for the Resources system
  • User documentation: WIP, not yet uploaded
  • Feature support status review: blog post published, no fixes proposed
  • Multithread support for Fill Layers: feature complete, awaiting review
  • ARM support for AppImages: blog post published, no fixes proposed

Deliverables