PackText

A packing engine for words, emoji and images

PackText

0 pieces placed in 0.0 ms measured live, time inside PackText only

01

Any shape

Hand it an outline and it fills it edge to edge.

0 pieces in 0.0 ms

02

Words, emoji, images

Anything you can rasterize is a piece. Bring your own.

0 pieces in 0.0 ms

03

Fast

Pieces and the board are 1-bit bitmaps, so a fit test is a few ANDs.

0.0ms 0 pieces, 0 µs each

Pieces
What the packer sees

04

The engine

A small C++ core with no dependencies. It runs here as WebAssembly, and natively inside Word Mess on iPhone, iPad and Mac.

…

packtext.wasm, the whole engine, as this browser received it

Core
C++20, about 3,000 lines, no dependencies.
Board
1 bit per pixel, 64 pixels to a machine word. An 800 by 600 board is 60 KB and sits in L1 cache.
Fit test
Bitwise AND over a 3-level mipmap. The coarse levels reject most candidate spots before the full bitmap is touched.
Search
A precomputed Archimedean spiral outward from the origin. A rectangular spiral is available.
SIMD
NEON on Apple silicon and WebAssembly SIMD on this page: 128 bits per operation on the collision, stamp and mask paths.
Pieces
Any bitmap. Text set by Core Text or FreeType, or alpha you bring; this page rasterizes on a canvas.
API
C, 25 calls: boards, shapes, masks, place, test, stamp, remove.
Runs on
This page as WebAssembly. Word Mess on iPhone, iPad and Mac.
Word Mess app icon

Built for Word Mess

Every level of Word Mess is a word cloud packed by PackText: a fresh mess of words in mixed faces and angles, laid out the moment you tap play. Find the words before the clock runs out.

  • Over a million downloads
  • Featured by Apple as a Staff Favorite and in New Games We Love
  • Four modes: Find, Rhymes, Categories and a bonus round
  • Rebuilt from the ground up in 2026 for today's iPhone and iPad
Download on the App Store

iPhone, iPad and Mac with Apple silicon.