Vol. 01 · No. 01 · The cold-open issue · Spring 2026
TestFlight beta · macOS 15+ · Multi-Video Grid Player

Your media.
All at once.
Alive.

flexGrid is a native macOS multi-video grid player. Drop any folder onto the window and the cultivated first batch is playing in about a second and a half — even on a folder of twenty-five thousand files. Up to nine cells on Free, sixteen on Plus, and an entire engine quietly making sure none of them stutter.

No accounts· Zero telemetry· Keyboard-first· One-time upgrade· macOS 15+ · Liquid Glass + on-device AI on macOS 26
flexGrid
SmartShuffle · Seen 0/20
Grid
Aspect
0 locked0 picks9 cells visible
R Shuffle the grid
L Lock the hovered cell
F Fullscreen the hovered cell
P Pick this one for later
1 + + 9 Set grid size
+ K Command Palette
+ + Present mode
+ + M Open Moments
+ 1 + + 9 Recall a Moment
+ + I Paneless mode
A Aspect Match: Preferred
+ A Aspect Match: Strict
B Blackout the room
Z Freeze every cell
Space Play / pause
+ Step pages
+ E Export current grid as PNG
R Shuffle the grid
L Lock the hovered cell
F Fullscreen the hovered cell
P Pick this one for later
1 + + 9 Set grid size
+ K Command Palette
+ + Present mode
+ + M Open Moments
+ 1 + + 9 Recall a Moment
+ + I Paneless mode
A Aspect Match: Preferred
+ A Aspect Match: Strict
B Blackout the room
Z Freeze every cell
Space Play / pause
+ Step pages
+ E Export current grid as PNG
Native macOS
SwiftUI, AVFoundation, Metal. Not Electron. Not a browser in a trench coat.
Private
No accounts, no analytics, no network calls for features. Your files stay where you put them.
Adaptive
Reads memory pressure at the kernel and tunes itself across four tiers. The fan stays quiet.
Gapless
AVPlayerLooper under every cell. The loop seam isn't fixed — it isn't there.
01. Cold open

Drop a folder. The first batch is already playing.

flexGrid's scanner is progressive. You don't sit through a loading bar. The cultivated first batch fires in about a second and a half, even on a folder of twenty-five thousand files. The rest streams in behind it — the way it should have always worked.

Drop a folder. The grid starts playing.
Drop a folder anywhere on the window
1 · Empty2 · Drop3 · Scan4 · Play
Most video playersStitched

Naïve looping seeks back to frame zero. The decoder catches up, the player blinks, the audio clicks. You stop noticing it; you never stop seeing it.

AVPlayerLooperSeamless

AVPlayerLooper keeps a second media replica running across the loop boundary. There's no seek, no rebuffer, no flash. The seam isn't fixed — it isn't there.

02. Free is generous on purpose

A real app, not a demo.

The whole engine ships in Free — nine cells, gapless loops, borrowed-player fullscreen, Siri & Shortcuts, the Folder Tree side panel, the persona picker, the time-aware greeting. No watermark, no fourteen-day flirt, no "Plus required" sneer hidden behind a checkbox.

Full feature catalog →
Free

Persona picker on first launch

Six cards on your first run — Visual Creator, Home Ambience, Photographer, Educator, Media Explorer, Art Installation. Pick one and flexGrid sets the grid size, the loop behaviour, and the playback defaults to match. You can switch personas any time, or ask Siri to switch you.

Free

Drop a folder. The grid is already playing.

Drop any folder onto the window — one tile, four tiles, up to nine on Free. The cultivated first batch is on screen and playing in about a second and a half, even on a folder of 25,000 files. The rest streams in behind it. No loading bar. No project file. No mascot.

Free

Seamless loops, under every cell

Naïve looping seeks the player back to frame zero, which produces a tiny black flash and an audio click every time. flexGrid uses AVPlayerLooper under every cell, with a second media replica running across the loop boundary. The seam is gone — you literally cannot see it happen.

Free

Fullscreen that doesn't make you wait

Click any tile and the fullscreen overlay borrows the player that was already running in the cell. No rebuffer, no poster frame, no spinner. Transport bar with scrubber, ±10s skip, volume that survives across sessions, three ways out (collapse, click-outside, ESC).

Free

Background audio, your way

A separate audio track for the room — MP3, M4A, WAV, FLAC, AIFF, AAC — or one toggle to unmute every video at once. The simultaneous-audio toggle is off by default; the cacophony warning is real. Volume persists across sessions.

Free

Liquid Glass, where you have it

Dynamic Liquid Glass UI on macOS 26 with accent-color palettes. On macOS 15 (Sequoia), the same panels gracefully fall back to a calmer treatment. Same app from one source — no Electron, no web wrapper.

03. Plus tentpole · new in 1.1

Editorial Layout — your folder, as a magazine.

Fourteen curated templates. Two to six cells. Vision-aware hero placement. Density knob. Structure lock-and-cycle on auto-advance. The folder reads like a spread you laid out on purpose — because the engine just did.

Editorial Layout · Hero + three4 cells · 14 templates total
Hero · vision-picked

Editorial Layout · Plus

Magazine pages, from a folder.

Fourteen curated templates. Two to six cells. Vision-aware hero placement. A density knob to trade calm for variety. Lock the structure and let auto-advance cycle the contents inside it.

Landscape window. One hero cell, three supporting frames stacked.

  • Templates bias to your window shape automatically.
  • Vision tags decide which cell becomes the hero.
  • Structure lock keeps the layout while the contents cycle.
04. Plus — where the engine shows off

Sixteen cells. Vision-aware framing. Magazine pages.

Plus is a one-time purchase — no subscription, no membership cult. The grid grows to 4×4, SmartShuffle deals every item before any repeat, Vision tags filter by what's actually in the frame, and Smart cell display reframes each cell around the moment.

See pricing →
Plus

Bigger grids, more room to breathe

Plus unlocks twelve- and sixteen-tile grids (up to 4×4) and lifts every limit. A folder of two photos still works. A folder of fifty thousand also works.

Plus

Editorial Layout — magazine pages from a folder

Fourteen curated templates with two to six cells: hero plus supporting frames, mosaic spreads, magazine-style grids. Vision-aware slot assignment picks the right hero. A density knob (2–6 cells) trades calm for variety. Lock the structure and let auto-advance cycle the contents inside it.

Plus

Smart Layout Presets

Three content-aware layout buttons. flexGrid reads your media's aspect ratios — portrait, landscape, mixed — and recommends Portrait Gallery, Landscape Theater, or Uniform Stack. Click the one that fits the room you're in.

Plus

Aspect Match

Cells prefer matching aspect ratios when filling, in two strengths — Preferred (suggests; can mix) or Strict (only ever a perfect fit). Per-cell or grid-wide. Photos stop landing in places where they had to be pillarboxed within an inch of their lives.

Plus

SmartShuffle

Treats your library like a competent card dealer. Every item gets dealt before any repeat (bag-draw), and the deck stays balanced across folder source, aspect, duration, kind, and a sliding window of what just played. The result feels hand-curated because the math is doing the curating.

Plus

Vision tags · 18+ on-device filters

Filter by what's actually in the frame — faces, bodies, text, animals, scenes, brightness, monochrome, horizon tilt, blur or smudge, letterbox bands, composite detection, even feature-print similarity. The Vision framework does the work on-device. A status-bar pill shows analysis progress without nagging.

05. SmartShuffle, visualised

A shuffle that covers your library before it repeats.

Every candidate is scored against a sliding window of what just played — kind, aspect, source folder, date, duration — and bag-drawn so every item plays before any repeat. The radar at right is that scoring, animated. The highlighted axis is whichever dimension is currently the most decisive.

  • Bag-draw: every item plays before any repeat.
  • Pre-warms the next three batches in the background.
  • Press R — the second shuffle is faster than the first.
File typeAspect ratioSource folderDateDuration
kind95
aspect87
folder76
date83
duration50
06. Smart cell display

One Smart mode, not six toggles.

Per cell, every frame: if the aspect matches, fit. If Vision finds a subject, frame around it. If a center crop is safe, take it. If none of that works, zoom out so the edges stay visible. A tightness slider and a Top / Center / Bottom anchor handle the rest.

Vision saliency
Smart cell display
3 : 4 (cell 16 : 10)
Subject found

Per-cell, every frame

A small decision tree, not six toggles.

  1. 1
    Aspect matches
    Fit — no crop needed.
  2. 2
    Subject foundNow
    Frame around the subject.
  3. 3
    Center crop safe
    Subject survives a clean center crop.
  4. 4
    Safe fallback
    Crop would clip — zoom out to keep edges visible.

Tightness slider and Top / Center / Bottom anchor when you want the framing nudged further. Otherwise the cell sorts itself out.

07. Built on Apple

Native because it is — all the way down.

SwiftUI for the surface, AVFoundation for every player, Vision for fourteen on-device detectors, FoundationModels for AI captions on Apple Intelligence, and the Mach kernel for memory pressure. Not bolted on. Made of.

SwiftUI AVFoundation Vision FoundationModels Core Image VideoToolbox App Intents StoreKit 2 Core Spotlight Mach kernel

In one sentence

Every scanned photo is handed to one VNImageRequestHandler that fans out to fourteen concurrent detectors; while those run, a single CGContext render of the same image feeds four pixel-domain analyses on a shared RGBA buffer.

That's how the wall stays cool while the library walks itself through your Mac's on-device intelligence.

08. Under the hood

A lot of work went into making this look easy.

A dozen specific decisions about how to play sixteen videos at once on a Mac without setting it on fire. Mostly invisible. Quietly the entire point.

01 of 12

Plays before the folder finishes loading

The scanner runs progressively. A cultivated first batch lands in ~1.5 seconds even on a folder of 25,000 files, and the rest streams in behind it. Instant playback isn't gated on scanning being done.

You don't sit through a loading bar. Drop the folder, the grid plays, the library catches up underneath.

02 of 12

Seams that aren't there

Every cell uses AVPlayerLooper, which keeps a second media replica running across the loop boundary. No seek, no buffer, no black flash.

Looping a video most places gives you a tiny stutter you stop noticing. Here, you literally cannot see it happen.

03 of 12

Fullscreen, with no rebuffer

Click a tile and the fullscreen overlay borrows the player that was already running in the cell. The same engine just changes where it's drawing — implemented as an in-window ZStack overlay, not a system panel.

No rebuffer, no poster frame, no spinner. The grid keeps its place. You walk away and back.

04 of 12

Reads the room — at the kernel level

MemoryMonitor pulls live numbers straight from the Mach kernel: task_info for resident memory, thread_info for per-thread CPU. The same data Activity Monitor uses.

flexGrid tunes itself across four graduated tiers — Normal, Elevated, High, Critical — trimming caches, recycling off-screen players, and skipping the pricey stuff. You don't have to babysit a settings panel.

05 of 12

AVPlayers don't get destroyed — they get reused.

A PlayerPool keeps a small set of media players warm and recycles them across cells. When a tile changes content, the least-recently-used off-screen player has its URL swapped in — same engine, new file, no setup cost.

Spinning up a fresh AVPlayer drags a whole decode pipeline behind it. Recycling is why a sixteen-tile grid feels like four.

06 of 12

Schema-v8 metadata cache

Every scanned file's metadata persists across launches — aspect ratio, duration, codec, frame rate, Vision tags, saliency rectangles, pixel dimensions. Change detection compares (fileSize, dateModified) and only re-reads what actually changed.

Big folders that took seconds the first time load in milliseconds the next. The library remembers itself.

None of these are flagship features on their own. The flagship is that you don't have to know about any of them.

docs/HELP_AND_PROMOTIONAL_MATERIALS.md
09. Use cases

Same app. Different rooms.

The self-running gallery for a long Sunday

Smart Layout Presets reads your folder's aspect ratios and picks Portrait Gallery, Landscape Theater, or Uniform Stack. Auto-Advance turns the timer up. Paneless mode hides every toolbar. The wall runs itself; you go make coffee.

The magazine spread that builds itself

Editorial Layout finds the hero, places the supporting cells, and locks the structure. Auto-advance keeps the templates and just cycles the contents. The folder reads like a magazine.

The photo cull you've been ducking

Sixteen frames at once. Lock the keepers. Pick the maybes with P. Moments collects everything for the review pass, ⌘1–9 jumps you back to any saved wall, and a collage export ends the meeting on a clean PNG.

The lobby display that minds its own business

Countdowns, clocks, auto-advance, and a grid that keeps itself together without needing an intern or a sacrificial browser tab. Pick a persona and the defaults are already right.

The lecture with actual production value

Scenes saved as Moments, the side pane open to your notes, Present mode (⌘⇧↩) cleans the chrome, and the Command Palette is two keys away. It looks less like a slideshow and more like you planned your life.

The reference wall for everything you remember loving

Vision tags filter the grid to faces, brightness, or scenes. Smart cell display reframes each one around the subject. Subject Cutout floats the keepers above the layout. Then export the contact sheet, on transparent PNG, for the file you'll never name correctly.

Pricing

Free is real. Plus is one-time. Everyone relax.

No subscriptions, no membership cult, no little renewal email arriving at 4:12 a.m.

Free
A real app. Not a bread crumb trail.
$0
  • Grid sizes 1–9 tiles (one to nine cells)
  • Persona picker on first launch · cultivated first batch in ~1.5s
  • Drag-and-drop loading; instant playback while the folder is still scanning
  • Seamless gapless looping under every cell (AVPlayerLooper)
  • Borrowed-player fullscreen — no rebuffer, no spinner
  • Background audio + optional simultaneous-audio toggle
  • Liquid Glass UI on macOS 26 · graceful fallback on macOS 15
  • Siri & Shortcuts integration (9 App Intents)
  • Folder Tree side panel · grid padding · keyboard-first navigation
  • Up to 1,000 scanned items per folder · 100 favorites · 1 source per collection
Request beta access
Most popular
Plus
Where the engine starts to show off.
One-time purchase
Price set at launch · StoreKit 2 non-consumable IAP · no subscription
  • Grids up to 16 tiles (4×4)
  • Editorial Layout · 14 curated templates · 2–6 cells · Vision-aware hero
  • SmartShuffle — bag-draw, multi-dimensional library coverage
  • Smart Layout Presets · Aspect Match (Preferred or Strict)
  • Vision tags — 18+ on-device filters · status-bar progress pill
  • Smart cell display · framing tightness · subject anchor
  • Smart Captions via FoundationModels (macOS 26 + Apple Intelligence)
  • Subject Cutout & Magic Layer · Smart Collections
  • Moments (Picks + Sessions) · Cmd+1–9 recall · Pick Tray drawer
  • QuickFill cells · FlexLayout editor · Grid Designer
  • Countdown timers · Command Palette ⌘K · Present mode ⌘⇧↩
  • Side pane reader (ePub / PDF) · In/Out points · fade & dissolve
  • Paneless mode · window clone · performance indicator
  • PNG grid export · transparent collage · Drag OUT · Set as Wallpaper
  • Spotlight indexing (opt-in) · `flexgrid://` deep links
  • Unlimited scanning · unlimited favorites · multi-source collections
Request beta access

One app. The upgrade unlocks features in place — no separate download, no migration.

In the margin

Frequently asked.

Which Macs does flexGrid run on? +

macOS 15 (Sequoia) or later, on Apple Silicon or any Intel Mac with Metal. Liquid Glass UI, Smart Captions, Subject Cutout, and the on-device AI features want macOS 26 with Apple Intelligence. Everything else is less emotionally needy.

Do I need an account? +

No. There is no sign-in screen because there is no sign-in cult. No accounts, no sync, no analytics, no network calls for features. Your Mac already knows enough about you.

Is it a subscription? +

Absolutely not. Free is a real tier, not a bread crumb trail. Plus is a one-time purchase through StoreKit 2 — price set at launch. You buy it once and then everyone can go lie down.

What's the difference between Free and Plus? +

Free is a fully functional multi-video grid player — drop a folder, play up to nine tiles, shuffle, lock, loop, go fullscreen, automate with Siri & Shortcuts, all of it. Plus unlocks bigger grids (up to sixteen), Editorial Layout, SmartShuffle, on-device Vision tags, Smart cell display, Smart Captions, Subject Cutout, Smart Collections, Moments, Command Palette, Present mode, FlexLayout editor, Grid Designer, PNG/collage export, Drag OUT, Spotlight indexing, and the unlimited-everything caps.

What media formats are supported? +

Video: MP4, MOV, M4V, AVI, MKV. Images: JPG, PNG, HEIC, GIF, TIFF, WebP. Background audio: MP3, M4A, WAV, FLAC, AIFF, AAC. ePub and PDF in the side pane. RAW images aren't in v1. If your Mac can play it, flexGrid can usually turn it into a wall.

What's the difference between this site and apps.pixelantern.com? +

apps.pixelantern.com is the studio surface for everything pixeLantern makes. flexgrid.pixelantern.com is just for flexGrid — more room to show what the app actually does, including an Experience page that's the closest thing to running it without a Mac in front of you.

An invitation

Open it. Bring a folder. See what happens.

The TestFlight beta is free while we polish the launch build. You'll know within a minute whether flexGrid is your thing — which is more than most software relationships will offer you in the first year.