A SceneKit and Metal Powered interactive globe for UIKit and SwiftUI
dot-globe
A SceneKit and Metal Powered interactive globe for UIKit and SwiftUI
Features
- Display an interactive 3D globe
- Customize the appearance of the globe, including earth color, glow color, and reflection color etc.
- Control the radius of the earth and size of the dots on the globe.
- Enable/disable particle effects, such as stars.
- Works with SwiftUI.
TODOs:
- Add animation and interaction with the globe
Showroom
earthmap.mp4
Usage
UIKit
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
// initialize controller here
let globeController = GlobeViewController()
globeController.earthColor = UIColor(red: 0.0, green: 0.482, blue: 0.871, alpha: 1.0)
globeController.glowColor = UIColor(red: 0.0, green: 0.22, blue: 0.482, alpha: 1.0)
globeController.reflectionColor = UIColor(red: 0.0, green: 0.482, blue: 0.871, alpha: 1.0)
present(globeController, animated: true, completion: nil)
}
}
Customization:
- dotCount: Amounts of dots used to draw the earth map, adjust it for your needs
- earthRadius: Adjusts the radius of the earth in the globe.
- dotSize: Sets the size of the dots displayed on the globe, by default, it is (0.005 / 1.0).
- enablesParticles: Enables or disables particle effects, by default, background is starry.
- particles: Sets the particle system for the globe’s background.
- background
- earthNode: You can directly access to the earthNode to customize the earth itself
- earthColor: Sets the color of the earth on the globe.
- glowColor: Sets the color of the earth’s glow effect.
- reflectionColor: Sets the color of the earth’s reflection effect.
- glowShininess: Adjusts the shininess of the earth’s glow effect.