My submission to the 2024 Swift Student Challenge, which was selected as a Distinguished Winner!
I started by modeling my submarine and research sea base with clay, then captured using Reality Composer Object Capture.
I painted the textures for these models using Procreate with Apple Pencil.
For terrain, I used crowdsourced bathymetry data of the sea floor. The data started in the form of a heat map, which I converted to a height map and smoothed with a gaussian filter before generating a 3D mesh from it. It took some trial and error to ensure the resulting USDC is detailed but reasonably sized.
For rendering the game, I used RealityKit, which I used for the first time. I have played with SceneKit in the past, but I really enjoyed the additional capabilities of RealityKit 2.
To achieve a realistic underwater effect, I used a Metal post-processing shader to render distortion, "dust" particle effects, and an underwater hue.
For the UI, I used SwiftUI and used TipKit for the tutorial.
I'm sharing this for educational purposes only; please reach out if you'd like to reuse some part of this.