Torch: A convivial design platform for mobile augmented reality apps

About Torch

Torch is building a collaborative AR design platform for mobile and tablet apps. Based in Portland, Oregon and founded in 2016, Torch uses Google Cloud Platform to support prototype design and sharing, and to embed AR apps.

Industries: Technology, Other
Location: United States

Torch is building an immersive augmented reality design platform where developers prototype, build, and publish 3D apps for tablets, phones, and eventually headsets.

Google Cloud Results

  • Streaming diversely typed assets from Cloud Storage to support near real-time sharing of AR prototypes
  • Using Google Cloud Firestore to orchestrate asset availability, updating data in the cloud or on mobile clients
  • Focusing on building new platform features rather than managing infrastructure

Building AR prototypes within hours instead of days

Torch has created an augmented reality (AR) design platform where developers prototype, build, and publish 3D apps for tablets, phones, and eventually headsets. With the number of devices capable of running AR apps approaching one billion, Torch is betting that industries will deploy mobile AR to more intuitively convey information, when and where it's needed.

To help make this happen, the firm has redesigned the creator-client collaboration experience to make it easier to conceive, refine, pitch, and subsequently publish AR products.

Torch surveyed hundreds of designers to help create its solution — a convivial toolset and environment that supports real-time sharing. "We have thousands of users, and our weekly average metrics are in line with some of the biggest 3D design platforms out there right now," says Torch CEO Paul Reynolds.

Aside from gaming, the AR market for wayfinding apps, industrial training, and assisted diagnostics is growing. Torch believes that mobile AR amounts to a significant new UI technology — a breakthrough in how to use devices to effectively engage and orient people. The key for Torch was fixing the AR design environment.

Boosting creative collaboration

Lacking file standards and shared AR tools, most design and development for 3D was, until recently, created with a mouse and keyboard in 2D. Prototyping relied on complex game development software or, often, pencil and paper.

"The technical barriers to sharing an immersive application prototype to a non-savvy user are considerable, which means that many promising AR ideas might never see the light of day," says Paul.

The cloud promised to help meet the biggest challenge — streaming large, non-standardized assets responsively to designers. 3D assets are typically larger than 2D objects and come in a myriad of file formats. In addition, images, movies, gifs, and audio present problems when displaying in AR formats. Capturing, rendering, and displaying assets smoothly can quickly overwhelm device processing.

To address the challenges, Torch crafted a streaming solution using Google Cloud Platform (GCP).

"We're basically building a path layer on top of Google Cloud Platform, so that people can deploy actual 3D apps with Torch, running on GCP."

Paul Reynolds, CEO, Torch

Going native: responsive cloud streaming

Torch initially built an on-device web app with a custom browser to a Rails application. Asset processors converted objects to web-friendly formats, while WebGL performed 3D rendering. The first cloud implementation of the platform was Rails on Heroku dynos.

A re-evaluation of the stack in early 2018 prompted Torch engineers to port all of its Rails code to a Firebase and Google Kubernetes Engine (GKE) solution. "We chose Firebase mainly because of Cloud Firestore, and how easy it makes it to write code that is constantly receiving data live," says Josh Faust, Torch CTO. Cloud Firestore notifies the app about an asset's status as it moves through the processing pipeline, supports live collaboration between users, and rolls up changes to objects without additional database polling.

Torch created a hybrid native app that could leverage GCP solutions to transform and stream diverse 3D assets to designers.

Torch uses Google Kubernetes Engine and Container Registry in GCP for asset processing and communicates with Google Cloud Functions over Cloud Pub/Sub. Inside Kubernetes, a load-balanced Go app manages tasks. The main task is ingesting 3D assets using C++ importers and processors. The assets are dispatched to Cloud Storage, from which mobile clients can stream assets directly. The rest of Torch data, including scene and project storage, resides in a Cloud Firestore database.
Torch uses Google Kubernetes Engine and Container Registry in GCP for asset processing and communicates with Google Cloud Functions over Cloud Pub/Sub. Inside Kubernetes, a load-balanced Go app manages tasks. The main task is ingesting 3D assets using C++ importers and processors. The assets are dispatched to Cloud Storage, from which mobile clients can stream assets directly. The rest of Torch data, including scene and project storage, resides in a Cloud Firestore database.

GKE processes assets and communicates using Cloud Pub/Sub with Cloud Functions. Inside Kubernetes, a load-balanced Go app manages tasks. The main task is ingesting 3D assets using C++ importers and processors. This is the code that performs mesh conversions, model transformations, image manipulation, and video conversions. The assets are then dispatched to Cloud Storage, from which mobile clients can stream assets directly.

"We can allocate more of our funds towards developers who are building features as opposed to running infrastructure, which is vital for startups."

Paul Reynolds, CEO, Torch

The rest of Torch data, including scene and project storage, resides in a Cloud Firestore database. Torch uses TypeScript in Cloud Functions to handle transactional processing and to cloak proprietary APIs.

The mobile app is written in React Native using TypeScript, allowing Torch to share code between Cloud Functions, the native application, and the Torch administrator site. Torch customized its Firestore implementation: instead of using Firestore directly, a typed database layer acts as Firestore proxy for website, mobile app, and Cloud Functions processing.

The result is a hybrid local device/cloud workflow for designing AR applications. The solution takes advantage of the strengths of each of its computing platforms: designers build AR prototypes and storyboards on their local devices, while cloud storage and processing enable instant sharing and collaboration.

Firestore plays a central role in orchestrating asset availability, reading and reacting to data updates in the cloud or on mobile clients. Firestore notifies and then propagates those changes to clients in near real time.

Torch uses Firebase Crashlytics, Stackdriver Logging, and Stackdriver Monitoring to track and support its deployments and the overall solution.

"Crashlytics has been a huge help for us," says Ian Plosker, Torch Director of Cloud Engineering. "Its easy integration and the ability to insert custom events are huge because we're a native app, but also have multiple other languages that we're running."

Streamlining operations by 30 percent

Driven by initial successes and client requests, Torch is now pursuing opportunities that will extend its mission as a 3D prototyping platform to hosting embedded AR apps from its cloud-based solution. One opportunity involves a visualization app for developers of build-to-suit commercial space. The app would help clients visualize a variety of build-out options.

Separately, Torch is in the initial stages of providing a wayfinding app for a firm that manages several multi-purpose stadiums. A Torch app is also being developed for use as a standalone concierge to guide clients through an innovation center in Europe. And a global consultancy is using Torch to develop AR-assisted sales and teaching tools for pharmaceutical and medical device firms as well as for caregivers.

These opportunities affirm a key Torch design decision. Put off by complex gaming-focused 3D platforms, Torch set out to create a 3D development platform with an SDK that was lighter weight and easier to embed. Torch executed on its design by leveraging the cloud for asset processing and more. "We're basically building a path layer on top of Google Cloud Platform, so that people can deploy actual 3D apps with Torch, running on GCP," says Paul.

"Google Cloud Platform has reached the point where it has everything we need. It isn't a jumble of confusing services like those offered by other providers. It also performs well, and we are highly confident in its ability to scale."

Paul Reynolds, CEO, Torch

Torch also credits its cloud solution for giving its staff of only six developers and three designers the time to extend its mobile AR platform. "With Google Cloud Functions and Kubernetes, we know we don't have to manage infrastructure or cloud functions," says Paul. He estimates that GCP helps Torch save about 30 percent on operations alone. "We can allocate more of our funds towards developers who are building features as opposed to running infrastructure, which is vital for startups."

"We're very much in the center of the UI revolution that's making more 2D and 3D experiences available using mobile. Google Cloud Platform is an integral part of helping us achieve our goals," says Paul. "Google Cloud Platform has reached the point where it has everything we need. It isn't a jumble of confusing services like those offered by other providers. It also performs well, and we are highly confident in its ability to scale."

Contributors to this story

Paul Reynolds: Torch Co-founder, CEO. Paul was Senior Director of SDKs and Apps at Magic Leap and President of Blast Off.

Tony Falco: Torch Co-founder, Operations. Tony was CEO and Co-founder of Orchestrate.io and President of Basho Technologies.

Josh Faust: Torch Co-founder, CTO. Josh was lead SDK Engineer at Magic Leap and Senior Software Engineer at Suitable Technologies and Willow Garage.

Ian Plosker: Torch Director of Cloud Engineering. Ian was a founder and CTO at LexiconAI and Director of Technical Architecture and Shared Services at CenturyLink.

About Torch

Torch is building a collaborative AR design platform for mobile and tablet apps. Based in Portland, Oregon and founded in 2016, Torch uses Google Cloud Platform to support prototype design and sharing, and to embed AR apps.

Industries: Technology, Other
Location: United States
Google Cloud Platform logo

12 Months FREE TRIAL

Try Kubernetes Engine, BigQuery, and other Cloud Platform products with $300 in free credit and 12 months.

TRY IT FREE
Google Cloud Platform logo

12 Months FREE TRIAL

Try Kubernetes Engine, BigQuery, and other Cloud Platform products with $300 in free credit and 12 months.

TRY IT FREE