To most in 2017 an algorithm is an alien entity, they may rule our daily lives, from sorting social media feeds to predicting stock market falls and rises but we have no real knowledge on how they work or how they are created. In fact most algorithms being used in modern technology are actually closely guarded trade secrets worth more than we can imagine. Aliens are a subject we encounter endlessly; fiction, film, tv and novels are crammed with tall tales of creatures from outer space and at a time when we are just beginning to understand how infinitely vast our universe is many would consider it ignorant and self-centred to assume the earth is the only planet which sustains life. But where is the research into this life? Nasa as of January 2017 only has one article on aliens and even then this does not begin to question what an alien might be, instead, just exists to reassure the public that we have not yet found them. The problem with aliens in fiction is that we only use them to solve the human condition, to displace our current affairs to a world aesthetically dissimilar, to feel ok about our own wrong doings. This also come down to an issue with the human imagination. We can only imagine based on what has come before, there is no original thought, our aliens look human, they look reptilian, they look like creatures we already know. How do we break this cycle of repetition if our minds are not capable, how do we crack the secrets of these elusive algorithms?
This project is open source and is available for anyone to use, modify or expand upon. In order to run this project you will need some additional hardware; to run the visual experience on your existing computer screen you will only require an Xbox One Kinect, they can be quite expensive but you can pick one up from your local used electronics store for around £20 and they seem to have an endless supply. However if you want to try the full virtual reality experience then you will need some form of VR headset. For this my two recommendations are either an Oculus Rift DK2 or an Android or iPhone running an application called Trinus in a Google Cardboard or similar, this app will allow you to stream data from your computer automatically to your phone in side by side format either via Wifi or a USB connection. You can also use the more current HTC Vive or the consumer version of the Oculus Rift but seeing as they are restricted to operation in a predefined space the experience can be limited. As for the computer needed to run this project, due to the nature of the tasks we will be asking the machine to perform there are some recommendations on specs but the experience should in theory work on any computer just with lower frames per second. For the CPU I would suggest an Intel Core i7 5th Generation or higher or an Core i5 6th Generation or higher. As for the GPU, this is where things get a little more intense as although I have had the software running on an old laptop with an Nvidia 650m and it was just usable I would strongly suggest using an Nvidia 980 from the previous generation of cards or if possible an Nvidia 1060 or greater from the current generation. AMD have recently upped their game too although I am not as familiar with their range of graphics cards and processors but anything equivalent to the products listed above should work just fine. So now you've got all the hardware ready it’s time to run the project. Now, prior to opening the .exe you will need to install the latest version of the Kinect SDK from Microsoft and if you are using a mobile VR system have Trinus set up and running. If using a dedicated VR headset you will also need to install VorpX, this piece of software forces 3D environments such as video games to be displayed correctly in your headset if they were not intentionally designed for VR. To check it works correctly I would recommend testing it out on a first person shooter game which is less demanding of your GPU such as Half Life 2. That’s it, you're ready to go, ensure the Kinect SDK Client is running in the background along with Vorpx and close all your other program to give your computer as much of a chance as possible and run the .exe file. What you are now viewing is 3D mesh data of the world around you, this may at first appear disorientating so I would recommend finding a way to mount the Kinect to your head so as you can continue to navigate in first person. You might also notice the frame rate is extremely low, I personally have never managed to get the system running at more than 10 frames a second and that is where I need your help. The software is built in C++ using openFrameworks and the Kinect2 Library so if this is an area you have knowledge in, please take a look at the source files and have a play. My next aim is to integrate the VorpX concept into the application and begin to research ways to procedurally texture the mesh without a huge loss in frame rate. For a copy of the source code please get in touch via firstname.lastname@example.org