WallStreaming
Small example demonstrating how to play a video on a wall using ARKit.
This became possible when iOS 11.3 / ARKit "1.5" added the .vertical option for the .planeDetection parameter of ARWorldTrackingConfiguration.
The only "trick" was to use SpriteKit's SKVideoNode in an standard SpriteKit SKScene:
let playerItem = AVPlayerItem(url: streamURL)
let player = AVPlayer(playerItem: playerItem)
let videoNode = SKVideoNode(avPlayer: player)
scene.addChild(videoNode)
and setting the texture of the virtual wall added where ARKit detects the vertical surface:
guard let material = plane.materials.first else { return }
material.diffuse.contents = scene
