[Mypaint-discuss] Brushpack file format

Elliott Sales de Andrade quantum.analyst at gmail.com
Tue Apr 16 19:51:17 UTC 2013


Hopefully, speaking as a user of Linux apps in general, and not as a
developer (as best I can):

On 16 April 2013 05:15, Boudewijn Rempt <boud at valdyas.org> wrote:
> Hi,
>
> On the last day of LGM, the mypaint, gimp, tupi and krita people got together, originally to take the first steps towards integrating the MyPaint brush engine in our applications. This quickly led to a discussion centered on how to share mypaint brushpacks between applications, which got generalized into a design session on a bruskpack file format we can share between apps like krita, gimp and mypaint.
>
> Here's the proposal, now that I've got network again:
>
> Use-cases:
>
> * we want a file format that can pack brushes into a single, complete package that artists can share, install and use directly.
>
> * users can decide whether to download an e.g. mypaint brushpack and install it for mypaint only, or in a shared location so other applications that can use that brush type can load it as well. Sharing is opt-in.
>
>
> Installation locations:
>
> Following the create spec:
>

I guess this spec is new, since I don't see it on freedesktop's wiki.

> /usr/share/create/brushpacks: global location for shared brushpacks. If a distro creates a repo package of a brush pack, it should be installed here.
>
> /usr/share/apps/$APP/...: global location for application-specific brushpacks. Here the brushpacks bundled with an application are stored
>

My /usr/share directory is already subdivided by application-specific
directories. Why do we need the extra 'apps' directory?

> $HOME/$APP_DATA_DIR/...: e.g. .kde/share/apps/krita/brushpacks: here the user installs brushpacks that she doesn't want to share with other applications
>

Hopefully this .kde bit is just an old KDE thing, because it'd be nice
if it followed XDG and was $HOME/.local/share/$APP.

> $HOME/.local/share/create/brushpacks: here the user can install brushpacks they want to share between application.
>
> On windows, the windows equivalents are used, on OSX ditto.
>
> Brushpack format:
>
> * A zip file that is unzipped on installation.
>
> * The zipfile contains one or more toplevel directories: every toplevel directory is a brushpack in its own right. The application should use the directory name as a tag or identifier for the brushpack in the gui.
>
> * the toplevel contains a manifest.xml file that contains author, copyright and license information.
>

Shouldn't this be part of the brushpack? It seems like the directory
is "the thing", and the zip file is just a convenient transport.
* Say you install a bunch of zip files by extracting them to one of
the directories above. Now the manifest.xml is just for the last zip
file and you lost all the rest.
* Say you decide to move a brushpack from local to global. What do you
do with manifest.xml? Do you even remember it exists?
* Say someone makes a "super mega brushpack collection" containing
several brushpacks from different authors (which may or may not be OK,
but it depends on the license). I'd lean towards the brushpack authors
being the ones who require credit and not the collection author
(though the collection author might warrant some credit for finding
all the brushpacks).

> * Allowed licenses are
>         - proprietary
>         - public domain
>         - CC-BY-*
>

Isn't "public domain" kind of spotty in some regions? I thought that's
why CC-0 was created. IANAL though; things may have changed.

> Example:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <document-info>
>  <about>
>   <title>Oils</title>
>   <description></description>
>   <date>2013-04-06T17:12:10</date>
>   <creation-date>2013-02-03T22:01:18</creation-date>
>   <url>where you would get a new version</url>
>   <license>public domain</license>
>  </about>
>  <author>
>   <full-name>John Doe</full-name>
>   <url>http://johndoe.deviantart.com</url>
>   <email></email>
>  </author>
> </document-info>
>
> * The brushpack directories can contain a tags.xml file that contains tags for the containing brushes, following the gimp tagging format.
>
> * A brushpack directory contains all the necessary subfolders following the CREATE spec with the necessary resources to create the brushes. It is up to the application to decide whether to show brush-specific resource (patterns, gradients, brush tips) in the generic gui.
>
> Example:
>
> deevad.zip for Krita contains
>
> /manifest.xml
> /deevad/
> /deevad/tags.xml
> /deevad/brushes/gimp (contains .gbr files)
> /deevad/patterns (contains patterns for textured brushes)
> /deevad/gradients/ (contains gradient color sourcess)
> /deevad/krita_paintoppresets (contains krita paintop presets)
>
>
> For gimp, it would be more like:
>
> /manifest.xml
> /deevad/
> /deevad/tags.xml
> /deevad/brushes/gimp (contains .gbr files)
> /deevad/gimp_gdyn
> /deevad/gim_gtp
>
> For mypaint
> /manifest.xml
> /deevad/
> /deevad/tags.xml
> /deevad/mypaint_myb
>
> Note that we didn't decide on a namespace/naming convention for the kpp, gtp, myb etc directories. It might also be good to fix brushes/gimp to follow any new convention (since brushes/gimp can contain abr, gbr, vbr and gih files, at least).
>
> Brushpacks should not be mixed: so no mypaint brushes and gimp brushes in one brushpack.
>

Depending on how many you download or create, this may or may not be
annoying. I don't really know the differences, so maybe an artist
wouldn't bother to create brushpacks for all three, but then again,
maybe someone would, and it would be simpler to distribute them all in
one file. Your first use case was a "single, complete package", after
all.

>
> Mimetype and extension:
>
> mimetype: application/x-create-brushpack+zip
> extension: .brushpack
>
>
> --
> Boudewijn Rempt
> http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl
>

-- 
Elliott


More information about the kimageshop mailing list