Part 0: A high level intro to the latest AR framework

Before WWDC19, myself and other Augmented Reality (AR) enthusiasts were anticipating many updates to SceneKit to come along with some shiny new ARKit features; however this was not the case.

Instead Apple decided to create a whole new framework to implement AR, and dubbed this new framework RealityKit. Here we have a whole new rendering engine, made from the ground up with AR not just in mind, but as the top priority. Although there may be some features missing; with this as v1.0 I have high hopes that this will become the standard for high-performance AR. …

Agora UIKit Makes Video Streaming Easier Than Ever

When setting up your own streaming application with Agora, a few technical steps might slow you down. Now with Agora UIKit for iOS and macOS you can create an application as easily as placing a UIView, NSView or SwiftUI View.

banner image, showing a live streaming app
banner image, showing a live streaming app

Recording and streaming a live feed from your app can be difficult, especially if you want to reach a global audience with little to no latency. The Agora Voice and Video SDK is perfect for reliably sending low-latency messages to a global audience, where you can have one or more people streaming their feeds.


In this tutorial, you learn how to create an application that enables users to be either a streamer or an audience member in a session. The setup is very similar to creating a video call with Agora, with a slight difference of roles: audience and broadcaster.


Creating a live audio streaming application is easier than ever with Agora. Within minutes, you can create an app where users can join channels to listen to a university lecture or a panel of experts in a field, or to listen to the live stream of a podcast.

In this guide, we’ll walk through how to get a live audio streaming application up and running, while using the Agora RTM SDK to sync information such as usernames.


Importing and generating models with RealityKit

There are two main ways of adding models to your RealityKit scene, importing from a USD (usd, usda, usdc, or usdz) or a Reality file, or creating a mesh using the MeshResource generators provided with Xcode. There are a few shapes that can be generated via the MeshResource generators, other shape must be imported via a USDZ model or experience file from Reality Composer.

This post also includes examples of how to import USD files from remote URLs, and customise imported models.

Importing from USDZ

One of the more popular and exciting methods of importing a model to RealityKit would be importing it…

Creating a Lobby and breakout Video channels with

The Agora Real-time Messaging (RTM) SDK is perfect for reliably sending low-latency messages to a global audience.


In this tutorial, you learn how to create an RTM application where groups of people can connect to the lobby where they can create or join a video chat. The idea is to show how real-time messaging using Agora RTM can be used as an orchestration layer to connect users through small breakout channels, where users can create a video call or drop into an existing video call, using the Agora Real-time Communication (RTC) engine. …

Get the most out of RealityKit’s material types, using colors and images

Setting the right material to your mesh in RealityKit is a crucial part of setting the scene and making your models look just right, and there are a few tools at your disposal with RealityKit.

I’ve already talked about the newest and most complex type, VideoMaterial here:

But there are a few other types of materials you can set by code, and ways to tailor them for your needs that you may not already know.

The other types are: SimpleMaterial, UnlitMaterial and OcclusionMaterial.

Basic Materials


UnlitMaterial is the most simple of all of these, it only has properties baseColor and tintColor. If…

Swift Packages for boosting development with RealityKit

RealityKit logo, star inside arrow, realitykit logo with rainbow pattern
RealityKit logo, star inside arrow, realitykit logo with rainbow pattern

RealityKit is Apple’s Framework for simulating and rendering 3D virtual content in Augmented Reality. But there’s a few missing pieces that get in the way of creating awesome AR experiences.

As more things become possible in Augmented Reality and ARKit, it’s vital that developers like you and I are able to create and experiment in AR with ease, trying out the latest technologies without having to start from basic building blocks every time. Currently there are a lot of missing pieces in RealityKit stopping us immediately jumping into the Augmented Reality world. …

Voice and Video SDK v3.2.0 now available for on all major mobile and desktop platforms. See what’s new below!

Banner image stating the title
Banner image stating the title

Agora Native SDK 3.2.0 was released on November 30, 2020

Voice Beautifier (All platforms)

v3.2.0 adds a new method, setVoiceBeautifierPreset, in place of setLocalVoiceChanger which is now depreceated. This method has a dozen values to enter, which can add clarity, deepness or freshness to the voice of any user. A similar new method is setAudioEffectPreset, which replaces setLocalVoiceReverbPreset; which adds effects like studio, phonograph and even make the user sound a little like the Hulk.

For further tailoring of these voice settings, another method has been added — setAudioEffectParameters.

Video Beautifier (macOS)

Already available on iOS and Android, you can now add beautify effects to your local…

Security within video chat applications is necessary now that remote working and virtual events are part of the workplace. In the Agora platform, one good way to add a layer of security on your stream is to add a token service. A token is a dynamic key that is generated using a set of given inputs. The Agora platform uses tokens to authenticate users.

In this tutorial, you learn how to fetch an Agora token from a web service running an Agora token server, using Unity and C#.

To jump straight to a full working example, see the following repository:

Max Cobb

Excited about all things Augmented Reality! Developer Evangelist at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store