Writing brush engines for fun and profit!

Video thumbnail (Frame 0) Video thumbnail (Frame 5651) Video thumbnail (Frame 9584) Video thumbnail (Frame 10166) Video thumbnail (Frame 11281) Video thumbnail (Frame 11729) Video thumbnail (Frame 12141) Video thumbnail (Frame 14878) Video thumbnail (Frame 16496) Video thumbnail (Frame 16988) Video thumbnail (Frame 17476) Video thumbnail (Frame 18231) Video thumbnail (Frame 18929) Video thumbnail (Frame 21433) Video thumbnail (Frame 22008) Video thumbnail (Frame 22684) Video thumbnail (Frame 23334) Video thumbnail (Frame 23959) Video thumbnail (Frame 24609) Video thumbnail (Frame 28266)
Video in TIB AV-Portal: Writing brush engines for fun and profit!

Formal Metadata

Writing brush engines for fun and profit!
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Among free software graphics application, Krita is unique in that its painting system is plugin-based: all Krita brush engines are plugins. Starting with the sumi-e hairy brush engine I worked on during the 2008 Google Summer of Code, I continued writing over half a dozen experimental, funny and useful brush engine for my Master’s Thesis at the VŠBTechnical University of Ostrava. This presentation will start with a live demonstration of these brush engines. The second part will be more technical: I will give an introduction into the art of writing brush engine plugins for Krita. It’s easy and fun, not difficult at all!
Keywords Libre Graphics Meeting (LGM)
Point (geometry) Pixel Implementation Group action Multiplication sign Student's t-test Field (computer science) Revision control Goodness of fit Forest Operator (mathematics) Energy level Contrast (vision) Endliche Modelltheorie Data compression Constraint (mathematics) Software developer Planning Line (geometry) Computer graphics (computer science) Computer animation output Game theory Object (grammar) Figurate number Freeware Pressure Arithmetic progression
Discrete group Point (geometry) Implementation Code Multiplication sign Projective plane Stress (mechanics) Interactive television Coordinate system Water vapor Vector graphics Revision control Particle system Computer animation Volumenvisualisierung Data structure Endliche Modelltheorie Pressure
Computer animation Configuration space Shape (magazine) System call Family
Population density Computer animation Number
Computer animation Multiplication sign Source code Pressure
Revision control Computer animation Sound effect
Rotation Area Pixel Texture mapping Channel capacity Weight Shape (magazine) Product (business) Revision control Particle system Computer animation Auditory masking Different (Kate Ryan album) Hypermedia Operator (mathematics) output Selectivity (electronic) Endliche Modelltheorie Pressure Traffic reporting
Area Randomization Pixel Scaling (geometry) Texture mapping Concentric View (database) Multiplication sign Adaptive behavior Shared memory Line (geometry) Shape (magazine) Diameter Particle system Computer animation Circle Lipschitz-Stetigkeit Spacetime
Logical constant Rotation Computer animation Weight
Arithmetic mean Computer animation Angle Weight
Particle system Game controller Randomization Computer animation View (database) Solid geometry
Rotation Pixel Multiplication File format Direction (geometry) Multiplication sign Computer simulation Usability Revision control Category of being Arithmetic mean Population density Computer animation Personal digital assistant output Right angle Pressure Form (programming)
Computer animation
Medical imaging Computer animation Linear regression Cuboid Data structure Software maintenance Disk read-and-write head Wave packet
Computer animation Transformation (genetics) Chain Flow separation System call
Default (computer science) Particle system Computer animation Water vapor Branch (computer science) Pressure
Pixel Simulation Population density Family Social class Number
Slide rule Pixel Patch (Unix) Set (mathematics) Shape (magazine) Solid geometry Operator (mathematics) God Algorithm Linear regression Software developer Denial-of-service attack Line (geometry) Cartesian coordinate system Process (computing) Computer animation Network topology Buffer solution Volumenvisualisierung Website Video game Procedural programming Musical ensemble Figurate number Pressure Writing Library (computing) Row (database)
we have and custody and I will be talking about
brushes include good morning everybody by doing of forest are known so why and I'm
actually student or Technical University of industrial rocking chair Republic I don't I come from Slovakia but we used to be Czechoslovakia so we understand each other so as the constraints Republic with no problems help did I get involved 3 times I started with the Google Summer of Code doesn't the top there was some idea and implement so me air brush engine for critical I didn't know what is so basically this a of Chinese or Japanese style of thinking I like the idea of and be of computer graphics and like to play with all algorithms and stuff so I pick it up I was lucky to get lots of use stop and I get another slot next year In 2009 I've been working on commas improvements 3rd and do you conventional of course their own kind of so you can see a model of your of public and you can see In contrast to the field of your that and some other improvements for economists there and then I decided to know what the users because I was shortly in my final level school so I have to prepare for so far have to choose a topic for is and I decided to new brush engines then I decide became this year 2010 community sponsor developer we decided to improve Creek created so that is usable for real artists basically when the people are working on during so we worked with nothing very well he gave us some input and we propose some action plan with the some points that you want to make and I was working full-time 2 months in the hole in and I will continue to work on a full-time greater for the next few months also because we have some money still what I'm going to talk about I will demonstrate aggression user implement for object up employment probably around 7 or 8 pressure genes and then I will we'll talk a little how to write your own version should include what's brushing genes basically this banking operation in game for the user see Russian gymnast tool is a gradual pixel brush for your razor or the cable and increase that we have this kind of stuff as genes so they bread bread but we know don't what's progression instead of brush pixel Burgess brush engine not duplicate tools from game is a bayesian June the . and why is that's so up because today we have to you can have free hand tools and you can have line tool recreate Bangalore tool for public school and you can use the painting operation with these tools my brain has 1 beak compression genes which creates every stroke figure out how they will start to
be hated Russia it was Google Summer of Code 2008 projects and the proposal simulates from the inside out Japanese painting and there was 1 particle for feature that while wanted from the world it is a great mind in the and and it is in the plantation so the water is inspired by the assessment he broke short article about Harry brush and basically this idea is working in non interactive way across like a vector graphics will you define some points and you defining pressure points and he's overeating render the stroke and then there is more interactive model from climate change and you can interactively being was from a style which is so we've heard of model and I take inspiration from old there is some implementation of coherent pressure from stress in indirect away as but it works only for small promises because it was in a way that it renders the stroke and then the clear the coming and printers and again I kind of try to mimic this behavior in experimental version gene where cleared economists at every stroke it is nanoparticle-based gene it means that it is not just to moon rubber-stamping of some or brush footprint but you have some particles they behavior they can scale they are oriented around the middle of the coordinate systems you drag them around the commands and I will show you how to create some some structure and what can you do it and as I was working on the suppression gene there was some region that mimics child so balding decided that we will have discretion gene also so it was it was stages of the paragraph and as the time goes became more general so I rename it from Sony aggression Jindal hairy brush because it's really particle-based and you can do much more than just simulate from Iast on trainees thinking so let's have some so I will select paragraphs and we have
some configuration here 1st he defines the
shape of the only brush and then you can scale the brother of the bristles there so from call and you can scale
than the bristles was from the center of of the brush there it became bigger this way but usually use smaller what values of then you can change the density today this is saying how many of bristles you in a rush if you use small number you have less bristles handed in the brush that we have some stuff like you can do it on the fly on the outside by single village and this make some here
it can react to to the pressure of the public and the size of
the rest can be changed by pressure basically we use the same source you can have a g times to change the size so what as the pointwise
became smaller and smaller and in so basically it's
a bristled makes the version gene where you can control the bristles and create a funny effects
political domestic production G and the next progeny spray brush basically was inspired by book reports somebody says that are a brush sucks so excited to make something new and something different from the usual way of doing it brush basically airbrushing difference of the works like that you know some brush mask footprint widow capacity and the it is graduating and creating the a versions of these weights I decided to implement differently decided to so if you have a particle based model that defines an area of your brush and you and spotted some particles in the area and the particle from it anything texture shape or pixel and so that I wanted to be very effective in the way because of course usually so when you paint your you control or posity or with pressure so I decided to not use operation and well you so you can control the use of traditional well you sense of and that means you can control this stuff with pressure of some of the input to deny others some funny rotations to the particles so 1 of the things in the in the particles are rotated in warriors ways you can create and simulate by yourself so basically where various media so I will demonstrate idea and select
good yeah the Russian genes include we plan to merge some of them because there are too many and they overlook the future's so basically you define
some area with diameter you can have a circle on character called shape the rotated began scale it in this kind of explanatory diameter and scale spacing is small and you can define how many particles you want and thank you can spread view time basically going use and share of pixel or can use of texture I will use the lips or lines with money you can have a random size of particles and here is this idea of patient you can use some constant adaptation
concentration and you can have a a little bit of
going around the motivation and mixed with constant and the random is the weight of the random rotation so if I could sold weight
rotated totally random when the lord of the the
way it is just a little bit random and mean
constant in a kind AG during angle and if
you've signed up for weight you just falls in the
original because then I can show you some called 1 additions because around here and it h
as we need to find some control how much you want to change the view or situation and people solid random or prosody so every particle as animal prosody and I want every particle in 1 . 2 have different colors
so basically creating really reach color but I
don't know if you can see it but I see that you can have the hominids more only next mentioned
United was just pure pixel brush I was trying to reinvent the wheel and not something you so basically I that also use traditional very formation to this 1 hour I added to the density property that can allow you to simulate child and cockles style and what is unique is that you can set up softness multiple meanings of the brush my career it's really powerful and you can control so fast by pressure not it's not possible in pixel brushing and them in different directions you so often this is my main features of whom I will fully then I have we have that the form Russia's was inspired by my Digital Image Processing listen Larry Lawrence scaling and rotation so I just right right brush engine than that takes the wire as input and transform most similar sucking improper applied in but they have to do to make it tool and that they should really do it because much more usable use cases I if you saw that by the what do he's correcting the painting with you with this filter and it is not very usable I think cricket has a different version is much more useful for it and you can't create observed Harvard that I so some winners nice pictures from our party's thank you can with then we have some product blush but I am running out of time so I will show some pictures
this is the 1st picture I saw holding always 2008 it was created with whom the song impression gene middle stages love affair what created this type of with some you know something about
changing brush lately help and in our our
hottest maintenance and launch created for in this image with paragraphs this new picture shows that you
can use box and so you can claim that box is a feature because I had box in my head regression 1 the bristles would not connected between the structure so he used this box to create the training and this is this to yes that Japanese thinking
chains pending created with headed brush miracle here seize spray brash and his separation
that transformation is used so it is very low it is also a call for more current peripheral with less work it's created just read spread much some Polish
artist created this water co-simulation with spray brush again and so use also the so pressure the and then and then In this
picture the here's being done with particle branch skip and basically this there's an old lady brush that there were created this 1 which our default
pixel brush but the the real details like the centered on the on the class is done with my brother engine and here is the of brushwood density feature
number of just took something from his furniture put into this campaign painting recalled simulation I don't know how where we times but
maybe questions for i can talk also about how to write a procedure for all the process any any questions and no yes or I have some of the regression basically I have to write engineers and look increase of 1 2 I lost my sound off and back so uh basically have to say that the depression genus flooding so you create a new plug figure you have to have some idea about how your painting algorithm will work and then you have to decide if you will do something in the style of rubber-stamping so that you define some shape and you just have a standard then you just need to implement to spend band of operation or you can define the behavior of 1 but when when the user is making a stroke it is sampled in 2 lines and you can define the the behavior the lines and just ran the some some shape into more pixel buffer and then we put it on a liar Duke announces the pixel offered to to spend their and basically you your pixel Austria creating thing the the line website to supporting libraries for you you can we support the abrashes of Photoshop abrashes population 6 7 amateur supporting Russia's and easily preventable can find some we stuff that can help you so you have been in line implemented to you defined some algorithm that render something to you all your pixel buffer and then you just need to serialize and the pressure things so that they can be reduced 2 weekends or 1 . is to make some of settings of the pressure of that engine you can save it and use it later and it is also used in the recording and that's all you need to know about how to make about changing I think any other questions that would be gave speaking microphone so I
wanted to know if you were happy with the API that cater provided or did you meet patches from the tree that developers to make your brush engine happen when I started there would be no hair brush go boarding was supporting military treatment in there so I'm not sure what he was doing was probably he was making something new new I was not very much of oriented in development slide in solid but basically for the idea need much up the improvements I was quite happy with that will die but there would or 2 of 3 reflect demands in the In the of are gene that much just haven't adding the futures was good thank you have we have 1 more question we can take the anyone who wants to ask questions well thank you might be all of the so is it possible to re-use like your regression genes for work right i and some other bank applications I because of life I will write the vaccine-gene I'd like to maybe support as many applications we date so it's just like a really application-specific work I do 1 thing for a crackdown and totally different for example or if it's like I can shared across the or I don't know what and there is no topic to show the coordinates so you would basically have to port brush engines between the applications it's not very hard to make it I usually I already ported some different goal to create and I think it's easy to fall back to different applications think basically your something into pixel buffer and with it so if Europe API allows you to render something into pixel buffer you're not thank you very thank you very much thank God you