Bryan Yung
Guestbook
First Light

Teaching firework chemistry through interactive 3D visualizations.

Timeline

2025

Role

Solo Developer

Tools

Swift, SceneKit, Swift Playground

For Apple's WWDC Swift Student Challenge, I built an interactive app to teach firework chemistry. The project was officially recognized by Apple.

First Light tutorial interface

Interactive tutorial system built with SceneKit. Materials slide in and out on a 3D table using SCNAction animations, teaching users which chemical elements produce specific colors. The challenge was synchronizing the 3D animations with the tutorial text while maintaining 60fps performance in Swift Playgrounds' constrained environment.

Firework creation interface

Ingredient selection interface for designing custom fireworks. Built with UIKit overlays on top of the SceneKit scene. Each chemical element is represented as a draggable 3D node with physics properties. The main technical challenge was implementing smooth drag-and-drop interactions between UIKit and SceneKit coordinate systems.

Complete workflow from ingredient selection to firework launch. The 3D scene uses SceneKit's particle systems for realistic firework explosions, with custom shaders for color mixing based on selected chemicals. Physics simulation handles the launch trajectory and explosion dynamics. All running in real-time within Swift Playgrounds' sandbox constraints.

Built entirely in Swift Playgrounds for WWDC Swift Student Challenge submission. The project required working within Playgrounds' limitations—no external frameworks, limited file size, and restricted API access. Used SceneKit for real-time 3D rendering, custom particle systems for explosions, and UIKit for the interface layer. The biggest challenge was optimizing performance while maintaining visual quality, especially with multiple particle emitters running simultaneously during firework displays.