SwiftGlobe
An interactive 3D globe in SceneKit for iOS, watchOS, tvOS, and MacOS X. Built in Swift 5 with XCode 11.4.
Requires iOS 11, tvOS 11, macOS 10.13 (High Sierra)




Features
- Targets for macOS, iOS, & tvOS
- Visual quality
- mountains cast shadows (implemented with a normal map)
- water is reflecty, land is matte (implemented with metalness & roughness maps)
- detailed milkyway in the background
- use high-quality earth texture on macOS (looks great on retina displays, even when zoomed in)
- Accurate modeling
- earth's axis varies by the current day of the year (north pole gets more sun in the summer, less in the winter)
- tilt the milkyway relative to the solar system's orbital plane
- Interactive
- support pan & zoom gestures
- support tvOS remote, too (pan & zoom)
- glowing dots for markers
TODOs
In no particular order:
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
- WWDC 2013 session 'What's new in SceneKit' (session, video, & demo source all very helpful)
- WWDC 2016 session 'Advances in SceneKit Rendering' (especially physically based materials)
- InfiniteRed's interactive seven-foot globe (built with SceneKit & physics)
- Milkyway Skymap
- Earth texture by Jim Hastings-Trew at planetpixelemporium.com