How Poly is changing 3D experience

How Poly is changing 3D experience 1

Google is known for its unique and revolutionary contributions in technology. You can talk about search engine, Email services, different APIs or plugins, AI, VR or AR, Google is unique everywhere.

Google recently launched online library where people can share, browse and remix 3D Models. These models are called Assets and can be created using Tilt Brush, Blocks, or any 3D program. These programs can be uploaded to Poly.

Google also allows user to  integrate these asset to their games or apps. These can be integrated at edit time or run time.

Edit Time

Edit time is useful when you are using fixed assets. For example — you are creating a small car racing game with fixed number of cars. So, you just need to download assets from Poly and import into your project. These assets will be bundled and shipped with the project app.

Run Time

Run time is used when assets are not fixed and scope is always expanding. For example — in racing game user is always selecting new car at each level. In this case Poly leverages user to download the asset at run time and use them.

Yesterday, Google announced an API named as Poly API which enables apps to search and integrate assets to Apps at edit or run time.

How Poly API Works

Poly API is a ReST based api that’s why it is cross platform and can be used by any platform or app by making simple request. However, Google has provided sample object and calling method for various platforms. But, if your platform is not listed it is very easy to call it because it’s an HTTP based Rest API that can be virtually called from any platform.

Bruno Oliveira, a Software Engineer at Google, listed some functionality allowed by AP

  • List assets, with many possible filters:
    • keyword
    • category (“Animals”, “Technology”, “Transportation”, etc.)
    • asset type (Blocks, Tilt Brush, etc)
    • complexity (low, medium, high complexity)
    • curated (only curated assets or all assets)
  • Get a particular asset by ID
  • Get the user’s own assets
  • Get the user’s liked assets
  • Download assets. Formats vary by asset type (OBJ, GLTF1, GLTF2).
  • Download material files and textures for assets.
  • Get asset metadata (author, title, description, license, creation time, etc)
  • Fetch thumbnails for assets

Poly is also available for Unity, Unreal and other platforms. Google has already released toolkit code for Unity and Unreal on GitHub. In which it wraps necessary API calls, download and convert assets. The Toolkit optionally also handles authentication for you, so that you can list the signed in user’s own private assets, or the assets that the user has liked on the Poly website. polytoolkit

Additionally, Poly toolkit also comes with editor where you can search necessary asset from Poly and import it directly into your Unity scene directly from the editor.

Poly Toolkit for Unreal wraps the API and performs automatic download and conversion of OBJs and Blocks models from Poly. It allows you to query for assets and filter results, download assets and import assets as ready-to-use Unreal actors that you can use in your game.

uneal

Poly for Mobile app Developers

Poly can also be used by Android and iOS developers. There is one sample code for Android and two for iOS developers.

Android sample includes basic sample code with no external dependency that shows how to use the API in conjunction with ARCore. The sample includes various functionalities like Asynchronous HTTP connections to the API, Asynchronous downloading of asset files, Conversion of OBJ and MTL files to OpenGL-compatible VBOs and IBOs, Examples of basic shaders, Integration with ARCore (dynamically downloads an object from Poly and lets the user place it in the scene).

iOS sample contains two samples one for SceneKit and another for ARKit, that shows how to build an iOS app that downloads and imports models from Poly.

Web developers can also use API using complete WebGL sample using Three.js, showing how to get and display a particular asset, or perform searches.