I’d like to share PaperConfetti, an MIT-licensed Swift package for paper-confetti effects on iOS and iPadOS 16+. It grew out of the need for a performant and lifelike confetti celebration in my app Wordie.
Repository:
The package has no external dependencies. It provides thirteen paper silhouettes, flat and 3D appearances, and configuration for multiple cannons, launch positions, delays, colors, and motion.
The SwiftUI interface uses a ConfettiController with pop() and cancel(), attached through confettiOverlay(_:). Each new pop replaces the active burst. The wrapper handles Reduce Motion and scene inactivity, while UIKit clients using ConfettiLayerView supply those policies themselves.
Both appearances use the same CAEmitterLayer-based renderer. Preparation happens when a burst starts, followed by Core Animation playback.
The project grew out of my work on Wordie and an earlier physics contribution to ConfettiSwiftUI. PaperConfetti focuses on paper shapes and excellent performance; it doesn’t provide text or emoji particles.
I’ve also published a walkthrough covering stable coordinates, emission timing, negative-control tests, and the limits of the performance measurements:
I’d welcome discussion of the controller/overlay API and lifecycle behavior, particularly cancellation and integration with changing parent layouts.