Repository navigation
Native particles are now PaperConfetti’s default renderer, with 3D tumble and flat appearances. Existing pop() calls continue to work.
confetti.pop() // 3D tumble
confetti.pop(configuration: .init(appearance: .flat))Changes
- Independent parabolic rise/fall timing and a softly scattered blast edge.
- Varied cached starting orientations, shapes, colors and spins.
- Staged, pre-rolled launch clocks avoid brief cell birth windows during large burst preparation; cancellation also cancels pending launches.
- Updated example with a 3D/Flat picker and deliberate stress controls up to 5,760 pieces.
- SpriteKit/atlas experiments removed. Benchmarks exercise the shipping native implementation and retain a frozen 0.1 layer baseline.
- Expanded one-command physical profiling and visual-review tools, with local results and no package runtime dependencies.
Compatibility and validation
Requires iOS/iPadOS 16+ and Swift tools 5.9+. The method-based SwiftUI/UIKit API remains source-compatible; seeded trajectories intentionally change to the new flight model. Requests are capped at 6,000 particles as a safety bound, not a recommended workload.
Validation covers nine macOS physics tests, 18 iOS package tests, three example UI tests, ten numerical benchmark tests, 33 Python tests, profiling/study smoke tests, Release builds and DocC. The final native implementation passed all three physical iPhone pixel regression tests: repeated five-cannon 5,760-piece emission including a delayed commit, the 5,760-position grid, and the deliberately expired-window negative control with a live reference. Earlier native builds also completed a 12-trial 720/5,760-piece app-only screen. No new physical performance percentage or Instruments hitch result is claimed for the final startup refinement. These are correctness checks on the tested device, not a universal FPS or exact-count guarantee. Native emission is rate-based.
Hosted CI and exact-tag installation verification are recorded below. See VALIDATION.md for scope and evidence. Historical 0.1 CPU comparisons are explicitly labeled and are not claims about the new renderer.
Release verification
- Successful full preflight on Xcode 16.4 and 26.6 at the exact tagged commit
d19d55ed92bea23e6871905a9a2cb190f7c7f8e1. - Main CI and tag CI could not start because GitHub reported an account payment/spending-limit block. The owner explicitly approved this release using the successful checks on the identical commit; these blocked runs are not reported as passing.
- Fresh SwiftPM consumer resolved exact version
0.2.0to that commit and passed module, default 3D, flat, seeded-trajectory and 5,760-count checks. Bundled attribution matches the source notice. - Repository visibility remains private; access is required to resolve the package. No Wordie or App Store deployment is part of this package release.