https://github.com/piemonte/Poly
  
  
    🦕 Unofficial Google Poly SDK in Swift – search, discover, and download 3D models and scenes 
    https://github.com/piemonte/Poly
  
3d 3d-models 3d-objects arkit art augmented-reality google google-poly ios iphone mixed-reality poly swift wavefront wavefront-obj
        Last synced: 7 months ago 
        JSON representation
    
🦕 Unofficial Google Poly SDK in Swift – search, discover, and download 3D models and scenes
- Host: GitHub
 - URL: https://github.com/piemonte/Poly
 - Owner: piemonte
 - License: mit
 - Archived: true
 - Created: 2018-05-01T20:56:27.000Z (over 7 years ago)
 - Default Branch: master
 - Last Pushed: 2020-11-03T06:59:12.000Z (about 5 years ago)
 - Last Synced: 2025-03-02T07:39:12.841Z (8 months ago)
 - Topics: 3d, 3d-models, 3d-objects, arkit, art, augmented-reality, google, google-poly, ios, iphone, mixed-reality, poly, swift, wavefront, wavefront-obj
 - Language: Swift
 - Homepage: http://poly.google.com
 - Size: 563 KB
 - Stars: 88
 - Watchers: 10
 - Forks: 14
 - Open Issues: 0
 - 
            Metadata Files:
            
- Readme: README.md
 - License: LICENSE
 
 
Awesome Lists containing this project
- awesome-swift - Poly - Unofficial Google Poly SDK – explore the world of 3D. (Libs / Augmented Reality)
 - awesome-swift - Poly - Unofficial Google Poly SDK in Swift – search, discover, and download 3D models and scenes ` 📝 8 months ago ` (Augmented Reality [🔝](#readme))
 
README
          # Poly
`Poly` is an unofficial [Google Poly](https://poly.google.com) SDK, written in [Swift](https://developer.apple.com/swift/).
This library makes it easy to integrate with Google Poly while providing a few additional client-side features.
[](https://travis-ci.org/piemonte/Poly) [](http://cocoadocs.org/docsets/Poly/) [](https://developer.apple.com/swift) [](https://github.com/piemonte/Poly/blob/master/LICENSE)
|  | Features |
|:---------:|:---------------------------------------------------------------|
| 🔍  | 3D model search  |
| ⬇  | 3D model download management |
| 📦 | advanced 3D data caching |
| 📡 | Poly reachability support |
| 🐦 | [Swift 5.0](https://developer.apple.com/swift/) |
Need a different version of Swift?
* `5.0` - Target your Podfile to the latest release or master (will push when Cache updates)
* `4.2` - Target your Podfile to the `swift4.2` branch
## Important
Before you begin, ensure that you have read Google’s Poly [documentation](https://developers.google.com/poly/develop/), understand best practices for attribution, and have generated your API key.
## Quick Start
The sample project provides several examples for integration.
You can install the dependencies with the command `pod install` or by running the makefile commands `make setup && make pods`.
```ruby
# CocoaPods
pod "Poly", "~> 0.4.0"
# Carthage
github "piemonte/Poly" ~> 0.4.0
# Swift PM
let package = Package(
    dependencies: [
        .Package(url: "https://github.com/piemonte/Poly", majorVersion: 0)
    ]
)
```
Alternatively, drop the [source files](https://github.com/piemonte/Poly/tree/master/Sources) into your Xcode project.
## Examples
Import the library.
```swift
import Poly
```
Setup your API key.
```swift
Poly.shared.apiKey = "REPLACE_WITH_API_KEY"
```
List assets using keywords.
```swift
Poly.shared.list(assetsWithKeywords: ["fox"]) { (assets, totalCount, nextPage, error) in
	// assets array provides objects with information such as URLs for thumbnail images
}
// you may also query for the data directly for your own model creation
Poly.shared.list(assetsWithKeywords: ["fox", "cat"]) { (data, error) in
}
```
Get independent asset information.
```swift
Poly.shared.get(assetWithIdentifier: "10u8FYPC5Br") { (asset, count, page, error) in
	// asset object provides information such as URLs for thumbnail images
}
// you may also query for the data directly for your own model creation
Poly.shared.get(assetWithIdentifier: "10u8FYPC5Br") { (data, error) in
}
```
Download a 3D asset and its resources for rendering, either using the asset identifier or the asset model object itself.
```swift
Poly.shared.download(assetWithIdentifier: "10u8FYPC5Br", progressHandler: { (progress) in
}) { (rootFileUrl, resourceFileUrls, error) in
    if let rootFileUrl = rootFileUrl {
        let node = SCNNode.createNode(withLocalUrl: rootFileUrl)
        self._arView?.scene.rootNode.addChildNode(node)
    }
}
```
The API also provides private object loading but additional endpoints may need to be added. Auth support is setup and available via the `authToken` property.
## Documentation
You can find [the docs here](https://piemonte.github.io/Poly). Documentation is generated with [jazzy](https://github.com/realm/jazzy) and hosted on [GitHub-Pages](https://pages.github.com).
## Resources
* [Poly iOS Quickstart](https://developers.google.com/poly/develop/ios)
* [Poly API Reference](https://developers.google.com/poly/reference/api/rest/)
* [Poly Google Developer Website](https://developers.google.com/poly/)
* [Poly iOS Sample Project](https://github.com/googlevr/poly-sample-ios)
* [Swift Evolution](https://github.com/apple/swift-evolution)
* [NextLevel](http://nextlevel.engineering/) Media Capture Library
## License
`Poly` is available under the MIT license, see the [LICENSE](https://github.com/piemonte/Poly/blob/master/LICENSE) file for more information.