What is the PES file format?
The .pes file format is used by computer-aided embroidery software created by Brother Industries. .pes files store color palette data, pattern instructions, and operational commands for embroidery machines, including start, stop, and trim stitch commands.
Every .pes file opens with the ASCII magic bytes #PES at byte offset 0, followed by a 4-character version code - for example, #PES0001 (v1) through #PES0100 (v10/v11). The version is significant: older machines will often reject a newer .pes version and refuse to load the design. Internally, the file wraps a .PEC block containing the low-level stitch commands, along with an embedded monochrome thumbnail preview of the embroidery.
.pes files are generated by the PE-Design software tool available for select Brother sewing machines. The .pes standard is also recognized by machines from other manufacturers, for example Babylock and Bernina. Third-party tools such as Embird and Ink/Stitch can open and convert .pes designs as well.
A .pes file contains stitch instructions encoded as relative coordinates that are interpreted by the embroidery machine to sew the design onto a given surface. The format also supports color-change commands so the machine pauses and prompts the operator to swap thread before continuing. Designs are frequently converted from .DST or other embroidery formats, or digitized from vector artwork, before being saved as .pes.
Security & safety
RISK: LOWA PES file is passive stitch data - it contains no executable code, so opening one is safe. The real-world cautions are practical, not security: stitching a design that is too large for your hoop, or a PES version your machine doesn't support, can fail or damage the work - always check size and version first. Free 'PES to image' or 'photo to PES' web converters often disappoint (auto-digitizing is low quality); and only download designs from reputable embroidery sites. As always, confirm a file's real extension if it arrives from an untrusted source.
Format details
in a nutshellPrograms that open PES files
Technical details
deep spec| Format type | Binary machine-embroidery design (stitch data, color table, embedded preview) |
| Magic bytes | `#PES` (hex 23 50 45 53) at byte offset 0, immediately followed by a 4-character version code |
| Version encoding | 4-character ASCII string after `#PES`; e.g., `0001` = v1, `0060` = v6, `0100` = v10/v11 |
| Internal PEC block | Each `.pes` file embeds a `#PEC`-tagged low-level stitch-command block; the PES header stores the byte offset to it |
| Embedded thumbnail | 1-bit monochrome bitmap thumbnail (typically 48×38 px) stored in the PES header for on-screen design preview |
| Stitch coordinate encoding | Relative 12-bit signed offsets in 3-byte PEC records; unit is 0.1 mm (10 units = 1 mm) |
| Control commands | Dedicated PEC record codes for `jump`, `trim`, `color-change`, and `end`, embedded among stitch records |
| Thread color storage | Indexed 1-byte entries referencing Brother's proprietary thread color palette; one entry per color-change |
| Endianness | Little-endian binary throughout the file |
| Design bounding box | PES header stores design width and height in 0.1 mm units, used by the machine for hoop placement |
| MIME type | `application/octet-stream` (no registered embroidery-specific MIME subtype) |
| Cross-brand compatibility | Native to Brother and Babylock machines; also accepted by many Bernina embroidery systems |
| Version compatibility risk | Machines reject `.pes` files with a higher version than they support; save at the lowest version the design allows |
| Typical file size | A few kilobytes to roughly 300 KB, depending on stitch count and embedded thumbnail dimensions |
| Released | 1990s (Brother PE-Design); PES versions through v1-v11 |