Swiftpack.co - Package - piemonte/Poly


Poly is an unofficial Google Poly SDK, written in Swift.

This library makes it easy to integrate with Google Poly while providing a few additional client-side features.

Build Status Pod Version Swift Version GitHub license

| | Features | |:---------:|:---------------------------------------------------------------| | 🔍 | 3D model search | | ⬇ | 3D model download management | | 📦 | advanced 3D data caching | | 📡 | Poly reachability support | | 🐦 | Swift 4 |


Before you begin, ensure that you have read Google’s Poly documentation, understand best practices for attribution, and have generated your API key.

Quick Start

# CocoaPods

pod "Poly", "~> 0.0.1"

# Carthage

github "piemonte/Poly" ~> 0.0.1

# Swift PM

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/piemonte/Poly", majorVersion: 0)

Alternatively, drop the source files into your Xcode project.


The sample project provides several examples aside from the documentation and readme.

Import the library.

import Poly

Setup your API key.

Poly.shared.apiKey = "REPLACE_WITH_API_KEY"

List assets using keywords.

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.

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 it's resources for rendering, either using the asset identifier or the asset model object itself.

Poly.shared.download(assetWithIdentifier: "10u8FYPC5Br", progressHandler: { (progress) in
}) { (rootFileUrl, resourceFileUrls, error) in
    if let rootFileUrl = rootFileUrl {
        let node = SCNNode.createNode(withLocalUrl: rootFileUrl)

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.


You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.



Poly is available under the MIT license, see the LICENSE file for more information.


Stars: 9
Help us keep the lights on


Used By

Total: 0