[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Re: Whither Krita?
From:       Cyrille Berger <cberger () cberger ! net>
Date:       2009-09-16 10:34:36
Message-ID: 200909161234.36744.cberger () cberger ! net
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On Tuesday 15 September 2009, Boudewijn Rempt wrote:
> > So far Krita is development platform for me as I can test many algorithms
> >  in it.
>
> That is something you and Cyrille have in common at least :-)
Yes, and I want more people to see it that way, I will now dissert on that, 
and do a bit of commercial advertisement for some of my recent work :)

On the lack of developers, I will note that the core Gimp development team 
isn't much bigger than ours, but they do have a more broader range of skilled 
person (UI designer, documentation writers, etc) that we trully lack. What 
they have, though, is many developers contributing a single plugin/scriptfu, 
see their plugin registry [1]. Using the advanced search of the site, it's 
possible to do some statistics, they have around 371 plugins, 274 of them are 
scripts, of the 97 remaining plugins, most are plugins written in C but some 
are collections of scripts or are a binary for a C plugins. But the important 
thing is that 73% of extensions are not written in C.

I don't have statistics for Photoshop, but one of its most famous extension is 
the "Filter factory" [2], introduced in 1994, it allowed to write plugins with 
only very limited knowledge, for instance for the invert filter you just have 
to write:
r: 255-r
g: 255-g
b: 255-b
a: a
I have no idea how many filters were created using "Filter factory", but when 
you google for them you can easily find collections containing hundred of them, 
and you can even find a gimp plugin to execute those filter [4] (and I have a 
TODO item to make a FF to Shiva converter).
More recently an other similar plugin was released "Filter forge" [3], you 
make your filters using a graph interface, if you go to their official website, 
you can see that more than 3000 filters were made with that tool !

I think, you understand where I am going to. C/C++ are too difficult for many 
people, especially for artists, that would most likely want to download a 
sample somewhere, modify a few lines and then apply it.

This is what motivated me to create the scripting plugins for Krita 1.5. At 
that time I had hope it would be fit for every tasks, including writting 
filters. But because I couldn't make it fast enough, I decided it wasn't fit for 
the job, and that we would need something else, something specialized in image 
processing. That's when I got interested by AMPAS CTL, and later by the Hydra 
language (now called pixels blender [5]). And started OpenGTL.

So my vision for making Krita easy and fun to extend:
* scripts (ruby/python/js): extends the UI (new dockers), allow to create 
chains of effects (ie blur, then translate, then change color, or draw a sky of 
starts)
* macro to create chains automatically or using a GUI
* CTL, to write colorspaces, brushes, composite ops, single pixel operation
* Shiva to write generators and filters (and maybe later composite stack, etc)
* graph based filters (not really started)

My main mistake in implementing that vision is that I attacked too many of 
those tasks at the same time, to my defense, the scripting plugin in 1.6 was 
quiet good, but it didn't survive the port. So in 2.0, we had hybrid CTL/C++, 
in 2.1, we will get CTL/XML color spaces, shiva filters/generators and macro 
recording of filters.

For 2.2, I will keep building on that vision, and adding things as time goes.

[1] http://registry.gimp.org/
[2] http://www.thepluginsite.com/knowhow/ffpg/ffpg.htm
[3] http://en.wikipedia.org/wiki/Filter_Forge
[4] http://registry.gimp.org/taxonomy/term/363
[5] http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit
-- 
Cyrille Berger

[Attachment #5 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" \
"http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" \
content="1" /><style type="text/css">p, li { white-space: pre-wrap; \
}</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; \
font-weight:400; font-style:normal;">On Tuesday 15 September 2009, Boudewijn Rempt \
wrote:<br> &gt; &gt; So far Krita is development platform for me as I can test many \
algorithms<br> &gt; &gt;  in it.<br>
&gt;<br>
&gt; That is something you and Cyrille have in common at least :-)<br>
Yes, and I want more people to see it that way, I will now dissert on that, and do a \
bit of commercial advertisement for some of my recent work :)<br> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>On \
the lack of developers, I will note that the core Gimp development team isn't much \
bigger than ours, but they do have a more broader range of skilled person (UI \
designer, documentation writers, etc) that we trully lack. What they have, though, is \
many developers contributing a single plugin/scriptfu, see their plugin registry [1]. \
Using the advanced search of the site, it's possible to do some statistics, they have \
around 371 plugins, 274 of them are scripts, of the 97 remaining plugins, most are \
plugins written in C but some are collections of scripts or are a binary for a C \
plugins. But the important thing is that 73% of extensions are not written in C.<br> \
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;"><br></p>I don't have statistics for Photoshop, but one of its most \
famous extension is the "Filter factory" [2], introduced in 1994, it allowed to write \
plugins with only very limited knowledge, for instance for the invert filter you just \
                have to write:<br>
r: 255-r<br />g: 255-g<br />b: 255-b<br />a: a<br>
I have no idea how many filters were created using "Filter factory", but when you \
google for them you can easily find collections containing hundred of them, and you \
can even find a gimp plugin to execute those filter [4] (and I have a TODO item to \
make a FF to Shiva converter).<br> More recently an other similar plugin was released \
"Filter forge" [3], you make your filters using a graph interface, if you go to their \
official website, you can see that more than 3000 filters were made with that tool \
!<br> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;"><br></p>I think, you understand where I am going to. C/C++ are too \
difficult for many people, especially for artists, that would most likely want to \
download a sample somewhere, modify a few lines and then apply it.<br> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;"><br></p>This is what motivated me to create the scripting plugins \
for Krita 1.5. At that time I had hope it would be fit for every tasks, including \
writting filters. But because I couldn't make it fast enough, I decided it wasn't fit \
for the job, and that we would need something else, something specialized in image \
processing. That's when I got interested by AMPAS CTL, and later by the Hydra \
language (now called pixels blender [5]). And started OpenGTL.<br> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>So \
                my vision for making Krita easy and fun to extend:<br>
* scripts (ruby/python/js): extends the UI (new dockers), allow to create chains of \
                effects (ie blur, then translate, then change color, or draw a sky of \
                starts)<br>
* macro to create chains automatically or using a GUI<br>
* CTL, to write colorspaces, brushes, composite ops, single pixel operation<br>
* Shiva to write generators and filters (and maybe later composite stack, etc)<br>
* graph based filters (not really started)<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;"><br></p>My main mistake in implementing that vision is that I \
attacked too many of those tasks at the same time, to my defense, the scripting \
plugin in 1.6 was quiet good, but it didn't survive the port. So in 2.0, we had \
hybrid CTL/C++, in 2.1, we will get CTL/XML color spaces, shiva filters/generators \
and macro recording of filters.<br> <p style="-qt-paragraph-type:empty; \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>For 2.2, I will keep \
building on that vision, and adding things as time goes.<br> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>[1] \
http://registry.gimp.org/<br> [2] \
http://www.thepluginsite.com/knowhow/ffpg/ffpg.htm<br> [3] \
http://en.wikipedia.org/wiki/Filter_Forge<br> [4] \
http://registry.gimp.org/taxonomy/term/363<br> [5] \
                http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit<br>
-- <br>
Cyrille Berger</p></body></html>



_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic