A macOS screensaver that simulates a split-flap mechanical display — the satisfying flip-card boards once found in airports and train stations around the world.
Built entirely in Swift using the native ScreenSaver framework and Core Animation.
The display cycles through two alternating phases:
- Idle shuffle — individual panels drift to random characters at a natural, staggered pace
- Wave update — a left-to-right wave sweeps across all panels in a coordinated flip
Each character flip is animated mechanically: the top flap falls, then the new bottom flap rises, matching the physics of a real split-flap unit.
- macOS 12 or later
- Xcode 14+
Using Make (recommended):
# Build and install to ~/Library/Screen Savers/
make install
# Build only (Release)
make build
# Build Debug
make debug
# Uninstall
make uninstallUsing Xcode:
- Open
SplitFlap.xcodeproj - Select the
SplitFlapscheme - Build (⌘B)
- Copy
SplitFlap.saverfrom the build products to~/Library/Screen Savers/
- Open System Settings → Screen Saver
- Select SplitFlap from the list
| File | Purpose |
|---|---|
SplitFlapView.swift |
Principal screensaver class, registered with macOS |
CharacterGrid.swift |
Manages the grid of individual panel cells |
CharacterSet.swift |
Defines the character alphabet and ordering |
SplitFlapPanel.swift |
Renders a single split-flap cell with CALayers |
FlipAnimator.swift |
Drives the mechanical flip animation via CABasicAnimation |
DisplayClock.swift |
Orchestrates idle and wave phases with a dispatch timer |
Part of OMT Global
A father-and-son open-source project.