中文 | Português | Español | 日本語 | Français | Deutsch | 한국어 | العربية
Perfect Grid is a free, open source desktop app for creating video contact sheets and preview thumbnails from local video files. Drop in a video, pick your layout, and export a high-quality PNG contact sheet.
Built for editors, collectors, archivists, and anyone who wants a quick visual summary of a video.

Example contact sheet generated with Perfect Grid.
- Generate high-quality contact sheets with advanced video metadata display (resolution, codecs, duration, file size, etc.)
- Fully customizable grid layouts
- Optional timecode overlays
- Smart frame selection with Refine Picks
- Save and reuse custom presets
- Batch processing
- Runs on Windows, macOS, and Linux
If you experience any errors, something doesn't work, or you have questions, please create an Issue to report it.
- Open Perfect Grid.
- Drag a video into the window.
- Adjust the grid layout and styling. If you change the layout, click Refresh Preview to regenerate thumbnails.
- Previews are lower quality on purpose — exports always use your selected quality setting.
- (Optional) Under the Range tab, use Refine Picks for smarter frame selection.
- Pick an export quality under Range: Fast (1080p), Detail (1440p), or Maximum (4K).
- Click Export PNG.
Download the latest release for your OS from the Releases page.
- Download
PerfectGrid-v0.1.2-macos-universal.zip. - Double-click to extract, then drag Perfect Grid into Applications.
- Open
Perfect Grid.app.
macOS will block the app on first launch since it's unsigned. Right-click → Open → Open to get past it. If it still won't open, run this in Terminal:
xattr -cr "/Applications/Perfect Grid.app"
- Download
PerfectGrid-v0.1.2-Windows-x86_64.zip. - Right-click → Extract All, then open the folder.
- Double-click
Perfect Grid.exe.
Windows SmartScreen may warn you since the app isn't code-signed. Click More info → Run anyway.
- Download
PerfectGrid-v0.1.2-Linux-x86_64.AppImage. - Make it executable and run it:
chmod +x PerfectGrid-v0.1.2-Linux-x86_64.AppImage
./PerfectGrid-v0.1.2-Linux-x86_64.AppImageNo install needed — FFmpeg and all dependencies are bundled. Works on most x86_64 distros (Ubuntu 22.04+, Fedora, Arch, etc.).
If you get a FUSE error:
sudo apt install fuse(Debian/Ubuntu) orsudo dnf install fuse(Fedora).
Everything runs locally. No analytics, no telemetry, no uploads. FFmpeg and FFprobe are bundled.
The app UI is available in 8 languages. Sheet filename rendering is a separate system — it draws filenames as pixels on the exported PNG, which requires script-specific font handling.
| Language | UI | On sheet |
|---|---|---|
| English | Yes | Yes |
| Chinese (中文) | Yes | Yes (macOS, Windows) |
| Portuguese (PT) | Yes | Yes |
| Spanish (ES) | Yes | Yes |
| Japanese (JA) | Yes | Yes (macOS, Windows) |
| French (FR) | Yes | Yes |
| German (DE) | Yes | Yes |
| Korean (KO) | Yes | Yes (macOS, Windows) |
| Arabic / RTL | — | Yes |
| Hebrew | — | — |
| Thai | — | — |
| Devanagari (Hindi, etc.) | — | — |
Linux non-ASCII filename rendering is not currently supported — filenames in non-Latin scripts will show as boxes. This will be fixed in the next release!
- Supports MP4, MOV, MKV, AVI, WebM, and anything FFmpeg can read.
- AV1 and VP9 decoding can be slow on older hardware.
- macOS builds are unsigned — see install note above.
For Developers
python -m pip install -r requirements.txt
PYTHONPATH=src python -m perfect_grid.appFor full Arabic/RTL filename support when running from source:
pip install arabic-reshaper python-bidiBuild scripts are in scripts/. GitHub Actions builds Windows and Linux releases automatically on tagged pushes. macOS is built manually.
Please let us know if you experience any bugs or errors by creating an Issue. The most useful information to include is your OS, video format, and whether the issue was in preview, refine, export, or batch.
See CONTRIBUTING.md for more.
MIT. See LICENSE.