Short answer: you cannot convert a Procreate brush to a Krita brush, and any
site promising a one-click .brush → .kpp converter is selling you a ZIP
extractor with extra steps.
What you can do — and what most people actually want — is recover the textures out of a Procreate brush and rebuild the brush around them in Krita. The textures are the part with the character. The rest is settings you can dial in yourself in about five minutes, and which would not have survived a conversion anyway.
Why a real converter cannot exist
A brush in any of these apps is two different things bolted together:
- Textures — a shape (the stamp that gets stamped along your stroke) and usually a grain (the paper or bristle texture that shows through it). These are just images. They move anywhere.
- A configuration — spacing, jitter, pressure and tilt response curves, blend behaviour, wet-edge and smudge parameters, taper rules.
The textures are portable because a PNG is a PNG. The configuration is not, because it is a description of one engine’s behaviour. Procreate’s spacing value and Krita’s spacing value are numbers in two different renderers that do not agree on what a stroke is. There is no correct number to translate one into the other — only a number that happens to look close on one particular stroke.
This is the same reason a .abr import into Krita gives you Photoshop’s
shapes and not Photoshop’s brushes.
Anyone who tells you their converter preserves pressure dynamics is preserving a number, not a behaviour.
What you need
- The
.brushor.brushsetfile on a computer — not on the iPad - Any unzip tool
- Krita 5.x
A quick note on licences before you start: converting a brush you bought for your own use on another app you own is normally fine, but a lot of commercial brush licences prohibit redistribution in any form. Extracting textures to use privately is one thing; posting the result as a Krita pack is another. Check what you agreed to.
Step 1 — open the Procreate file as a ZIP
Both .brush (a single brush) and .brushset (a collection) are ZIP archives.
Rename the extension to .zip and extract it.
MyBrushes.brushset → MyBrushes.zip → extract
Inside a .brushset you will find a brushset.plist describing the set, and a
folder per brush. Inside each brush folder are the images — the shape and the
grain — as PNGs, plus an archive file holding the settings and a thumbnail.
Exact filenames have shifted between Procreate versions, so go by what the
images look like rather than by name: the shape is usually a soft white mark on
black, and the grain is usually a busy greyscale texture that tiles.
The settings file is a binary property list. You can open it out of curiosity. It will not help you.
Step 2 — get the shape in as a brush tip
In Krita, the image you stamp is a brush tip. A brush preset (.kpp) is
a brush tip plus all the settings around it. You are importing the former and
building the latter.
- Open the Brush Settings Editor —
F5, or the icon beside the brush preset dropdown in the toolbar. - Choose a Pixel Brush engine preset as your starting point.
- In Brush Tip, switch to the Predefined tab.
- Use the import button to load the shape PNG you extracted.
Krita accepts PNG, .gbr (GIMP) and .abr (Photoshop) as brush tips.
Two things to fix immediately:
- Invert if it looks wrong. Krita reads a predefined tip as luminance — black is opaque, white is transparent, which is the opposite of how Procreate shape files are usually authored. If your stroke comes out as a hole instead of a mark, invert the PNG and re-import.
- Trim the transparent margin. Procreate shapes often sit inside a lot of empty space. That space becomes part of the tip and makes the brush behave as if it were much larger than the visible mark.
Step 3 — put the grain back
The grain goes somewhere else: Texture, in the list of brush options down the left of the Brush Settings Editor.
- Enable Texture, and pick your grain PNG as the pattern.
- Scale controls how big the texture reads relative to the canvas.
- Brightness and Contrast are what make it subtle or aggressive — start low, most people overdo it.
- Set the texturing mode to Multiply for a paper-tooth effect, or Subtract for a harder, bitten-in feel.
If the texture appears to crawl along with the stroke instead of sitting still on the canvas, that is what most people mean when they say the converted brush “feels wrong”. Krita gives you a texture that is anchored to the canvas, which is usually what you want.
Step 4 — rebuild the feel
This is the part nobody can do for you, and it is the part that matters.
| Procreate | Krita equivalent | Notes |
|---|---|---|
| Stroke Path → Spacing | Brush Tip → Spacing | Lower spacing, smoother stroke, slower brush |
| Stroke Path → Jitter | Brush Tip → Randomness | Also see the Rotation and Size scattering options |
| Shape → Randomised / Rotation | Rotation | Set the sensor to Random or Drawing Angle |
| Apple Pencil → Size / Opacity | Size / Opacity, sensor = Pressure | Edit the curve, not just the on/off |
| Apple Pencil → Tilt | Size / Opacity, sensor = Tilt | Not every tablet reports tilt |
| General → Blend mode | Blending Mode | On the toolbar, not in the editor |
| Wet Mix | Colour Smudge engine | A different engine, not a setting |
That last row is the honest one. If the Procreate brush leaned on Wet Mix, you are not converting it — you are rebuilding it on Krita’s Colour Smudge engine, which behaves differently enough that you should treat the original as a reference image rather than a spec.
Draw a long, slow S-curve with a hard press in the middle. That single stroke exposes spacing, pressure curve and taper faster than any amount of squinting at settings panels.
Step 5 — save it properly
In the Brush Settings Editor, click Save New Brush Preset, give it a name
and a recognisable thumbnail. That writes a .kpp file into your Krita
resource folder, which is what you back up and what you share.
To move a whole set, use Settings → Manage Resources → Create Resource
Bundle and export a .bundle. That is Krita’s equivalent of a .brushset.
The part that should annoy you
You just did all of that because two apps that both stamp a PNG along a path decided their settings files should be mutually unreadable.
It is worth being clear that this is a choice, not a technical limit. When we
designed the .apexobrush format for Apex Olira, the requirement was that one
file has to import identically on iPadOS, macOS and Android — same textures,
same curves, same result — because the alternative is asking people to do this
every time they change device. It is an archive of the stamp textures and the
brush configuration together, and there is nothing platform-specific inside it.
That does not help you move a Procreate brush into Krita today. It is just the reason we think the step above should not have to exist.
Common problems
The stroke is a solid blob. Your shape is fully opaque. Invert it, or check you imported the shape rather than the grain.
The brush is enormous at size 20. Transparent margin around the shape. Crop it and re-import.
Everything looks flat and dead. You have the shape but no grain. Go back to step 3 — the grain is usually where a brush’s character lives.
The texture moves with the stroke. Check the texture options; Krita anchors patterns to the canvas by default, which is generally the more natural result.
Nothing happens when I import a .brush directly into Krita. It cannot
read it, and never will. Extract it as a ZIP first.
If you are here because you are leaving the iPad
This whole procedure exists because a brush library does not survive a change of app. If the change you are actually making is a change of platform, the decision has a different shape, and we have written it up separately:
- Is Procreate on Android? — the short answer and the evidence behind it
- Procreate alternatives for Android, compared — six apps, the business model of each, and the catch
- What Procreate costs in India — every figure in rupees, including the ones that are not the app