Brushfactory › Formats › .kpp
What is a .kpp file?
A .kpp file is a Krita brush preset — and the neatest trick in any of these formats: it is a PNG image. Rename one to .png and any image viewer will open it and show you the preset's thumbnail.
What's inside one
An ordinary PNG of the preset thumbnail. That is what makes the file browsable — the settings ride along inside it.
preset chunkA compressed PNG text chunk holding the settings as XML: the brush engine, its parameters, and one block per sensor curve.
version chunkUsually 5.0. The value matters — a preset marked 2.2 makes Krita skip its embedded resources entirely.
Tip images and patterns live inside the XML as base64 text, each with an md5 checksum, so a .kpp is self-contained. A .bundle is simply a zip of many .kpp files.
A default curve is written as no curve at all. Krita omits the <curve> element when a sensor's response is the straight 0,0–1,1 line. An absent curve therefore means linear, not unset, and reading it as missing data is how a converted brush ends up with no pressure response at all.
How to open it
Krita imports .kpp through Settings › Manage Resources…, or you can drop the file into your Krita resource folder and restart.
Converting .kpp
Out of Krita: Krita → Photoshop, Krita → Procreate, Krita → Clip Studio Paint.
Into Krita: Photoshop → Krita, Procreate → Krita, Clip Studio Paint → Krita.
What survives each trip, and what does not, is set out on the fidelity report.
Common questions
Everything on this page is taken from the reader that
parses the format in Brushfactory itself
(brushfactory/formats/kpp.py), which was built against the
applications' own source and against real files, not from a
specification document.