GitPedia

Poly

🦕 Unofficial Google Poly SDK in Swift – search, discover, and download 3D models and scenes

From piemonte·Updated April 9, 2026·View on GitHub·
·Archived

`Poly` is an unofficial [Google Poly](https://poly.google.com) SDK, written in [Swift](https://developer.apple.com/swift/). The project is written primarily in Swift, distributed under the MIT License license, first published in 2018. Key topics include: 3d, 3d-models, 3d-objects, arkit, art.

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 5.0

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, 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 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. Documentation is generated with jazzy and hosted on GitHub-Pages.

Resources

License

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

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from piemonte/Poly via the GitHub API.Last fetched: 6/28/2026