An open description of the files Procreate (by Savage Interactive) writes: .procreate artwork, .brush and .brushset brushes, and .swatches palettes. The maker does not publish these formats. These notes come from decoding public sample files and reading open-source readers, and every claim says whether it was verified and where it comes from.
Not affiliated with Savage Interactive. Procreate is a trademark of Savage Interactive Pty Ltd.
.procreateartwork- Container: ZIP entries, layer folders, tile names
- Tiles: LZO1X and Apple LZ4, premultiplied RGBA, masks
Document.archive: NSKeyedArchiver keys for the document, layers and groups- Orientation and flip
- Colour profile
- Blend mode integers, with Photoshop names and PSD keys
- Clipping, masks, alpha lock, text
- Time-lapse video segments
- Decoder libraries and their licences
- Unknowns
.brushand.brushsetbrushes.swatchespalettes
- A
.procreatefile is a ZIP. Document.archiveinside it is an NSKeyedArchiver binary plist. Its root object,SilicaDocument, holds the canvas size, tile size (256), orientation, colour profile and the layer tree (unwrappedLayers, top layer first).- Each layer with pixels has a folder named by its UUID, holding tiles named
<column>~<row>. Row 0 is the bottom of the canvas. Empty tiles are left out. - Tiles are compressed either as raw LZO1X (
.chunk) or in Apple's LZ4 frame format (.lz4). One file, and even one layer, can mix both. - Pixels are 8-bit RGBA with premultiplied alpha; layer masks are 8-bit single-channel.
- Blend modes are integers (
extendedBlend, falling back toblend). 19 is Shade since Procreate 5.4. QuickLook/Thumbnail.pngis a ready-made preview, longest edge 1024 px.- The time-lapse is stored as numbered H.264 MP4 segments in
video/segments/.
Details, sources and statuses are in docs/procreate.md.
A longer walk-through with diagrams and the bytes of two sample files: Inside the .procreate file format.
All checks use files that anyone can download:
.procreate: the four demo files in axaril/silicatedemo_files/at commit0e12deb(MIT)..brushand.brushset: CC0 sets listed in docs/brushes.md..swatches: the four files in szydlovski/procreate-swatchestest/sample/at commit25f7d08(MIT).
- verified: seen in source code that runs, or checked by decoding the sample files.
- not verified: from documentation, a third-party reader or inference, not confirmed against a real file.
- present: the key exists in the samples, but its meaning is not confirmed.
These notes build on the open-source readers that came first, above all Silicate (MIT), and on procreate-to-tif, procreate-rs, ProcreateViewer, import_from_procreate and procreate2psd. Links and commits are in docs/procreate.md.
toPSD, a browser converter from .procreate to layered PSD, built on these notes.
Found a file that behaves differently, or can answer one of the unknowns? See CONTRIBUTING.md.
The documentation is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You may share and adapt it, including commercially, as long as you give credit and link back.