Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month 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 6 years ago)
- Default Branch: master
- Last Pushed: 2020-11-03T06:59:12.000Z (about 4 years ago)
- Last Synced: 2024-09-23T08:02:26.386Z (3 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.
[![Build Status](https://travis-ci.org/piemonte/Poly.svg?branch=master)](https://travis-ci.org/piemonte/Poly) [![Pod Version](https://img.shields.io/cocoapods/v/Poly.svg?style=flat)](http://cocoadocs.org/docsets/Poly/) [![Swift Version](https://img.shields.io/badge/language-swift%205.0-brightgreen.svg)](https://developer.apple.com/swift) [![GitHub license](https://img.shields.io/badge/license-MIT-lightgrey.svg)](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.