Project Multimedia and Finearts BA LMU Munich
OUTRUN VR Visuals by Tobias Potye
Unity 3D - C# - CS6 - FL

OUTRUN VR Visuals is a virtual reality (VR) music visualisation. Choosing a real-time music visualisation over a pre-rendered movie demands performance everytime it is played, but allows changes and re-usage of the content, even though a finished movie would run smoothly on nearly every device. There is also no bigger interaction possible with a finished movie. Ignoring the optimization issues on some mobile handhelds, this project shows a daily use case for VR. It also gives the user a new music experience. It technically runs with every kind and type of music.

Generate endless World

Implementation of a chunk generator, fed by a perlin noise generator to build up an endless world as starting point. Subdividing into cached chunks helps to only render seen parts of the world and to improve overall performance.

Differentiate Frequency bands

The implementation of Fast Fourier transform is a major key to audio visualisation. By dividing the 512 scanned frequencies to eight bands, the raw sound data gets more usable. Here are eight cubes animated to eight several bands. The bandline effect uses this data as an example too.

Making the environment react to music

Injection of the noise generator, by using another frequency band's amplitude for the mesh buildup makes the landscape react to the music. Separation of hight data between a so-called runway and four main zones left and right, avoides collisions with the environment mesh.

Adding fog

Adding a simple particel system as a ring of fog around the player improves the immersion. It hides the rendering end of the world. The user can not esacape from it, as it is relative to his position.

Instantiate objects

The Random-Instantiate script spawns objects depending on multiple set data. Taking prefabs, bands, timers, and random values makes the environment more alive. The Destroy-Timer script is added to every insantiated object and set to a specifec time, before it deletes the objects again. This cleans up used memory and safes performance.

Building a VR Interface for Navigation

Building the user interface around canvas to show graphical elements, such as buttons, texts and pictures on top makes things easy to understand. Hiding the pause/stop menu beneath the user camera, clears up the user interface.

Using a reticle as cursor

Using a reticle instead of a classic curser is a common way of navigation in virtual reality applications. The reticle shows the look point of the user. By focusing on a button and pressing a CardBoard hardware button, the user controls the UI. Assets for the Google CardBoard are included in Unity.

Using a frame timer

Using a frame timer gives some sort of time line, animations/events can be played/triggerd off. This also reduces lag, as we only render objects in fixed time. The playback will be the same on every device.

Composing the used track Syntharcade in FL Studio

Fruity Loop is a common digital audio work station (DAW). The used music is typical for the retro/synthwave/outrun genre. Syntharcade needed to be long and simple to match this. As I like this kind of music and aesthetic, this was an easy pick :)

Creating Scenes in Unity 3D

Unity 3D and Monodevelop are used for programming.

Playback Device + Google CardBoard

Using Google CardBoard plus smartphone is an easy way to start off in VR. This way the application gets a wider audience.

Mirroring to a TV

Mirroring via DLNA makes it easy to share the screen of a playback device to another. This can be used for presentations.

Demo Screen Record

BETA download: will be added
All rights reserved by © Tobias Potye 2018