How to create easily an app showcasing VR videos without knowing how to code? How to integrate 360 videos into our Unity app? How to build a playlist for VR videos for all platforms? Well, the answer to all this question seems to be Headjack.
I got to know Headjack because Coen from Purple Pill contacted me to enter their affiliation program: I was quite skeptical, so I decided to test their platform before accepting. And after having tried it and having verified it is really an awesome product, I’ve been very happy of entering it and that’s why you’ll see some affiliate links here and there on this article.
What is exactly Headjack? It is a complete platform to create easily white-label apps making you play 360 (monoscopic and stereoscopic) videos. It has been designed as a flexible framework, allowing both producers to create apps without writing a single line of code and developers to craft apps containing 360 videos without worring about a lot of hassles. Furthermore it lets you manage all the videos, with statistics, remote control, etc… Let’s see all of this in detail.
Company behind Headjack is a Dutch company called Purple Pill. The name take inspiration from the Matrix. As you can read from their press kit:
“You take the blue pill: the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill: you stay in Wonderland and I show you how deep the rabbit hole goes.” – Morpheus, The Matrix
What would you pick if you had the choice between living in an illusion (blue pill) or learning the harsh truth about real life (red pill)? We offer you a middle ground, a purple pill, which lets you experience reality in virtual way.
A nice name choice, love it. They started in 2014 as a VR production house, but they couldn’t find a suitable distribution option for their video, so they decided to create one by themselves. This internal project slowly evolved in something like a complete solution, so they decided to sell it as a product, with name of Headjack, that is targeted to:
- 360º video producers that want a quick, affordable way to create a white-label VR app for any VR platform: a lot of brands are interested in this kind of solutions;
- Unity developers who want to completely customize their app experience without having to build an entire backend and multi-platform video player first.
To get started with Headjack, you have to sign in to their website: if you, like me, want to experiment, you can start with a free plan. The functionalities of free and paid plans are almost the same, with the greatest difference being in the fact that with the free plan you’ll have in front of your eyes the whole time an enormous watermark that makes the created apps completely unusable from a commercial standpoint (more details on pricing here). After you register, you’ll receive a fancy e-mail with some advices on how to use the platform.
Being a lazy user, I decided to read nothing… and of course I found myself struggling with the next steps, where my head exploded in front of Headjack admin panel 😀 . So, don’t be like me… in particular, if you want to try this framework, read the tutorial that is linked inside the welcome email body.
Headjack admin panel
Once you’re logged in, you’ll be presented with your admin panel. This is exactly the moment where I got completely confused
In fact you’re presented with a page with a side menu with like 10 possible items to select and the language is quite confusing: how should I create an app playing a 360 video?
Reason of this “confusion” is the fact that Headjack is a flexible framework and to provide flexibility it is always necessary to complicate things a bit. It is like when as a developer you want to make things cross-platform and in the end you make something with 3 layers… it is more complicated. Here the concept is the same: there are various layers of abstractions and this is the reason for this complication. Actually, when you learn how to use it following the tutorial, it is not complicated at all. Anyway, Coen told me that they’re thinking about starting a tutorial automatically when the user logs in for the first time (smart choice… this is one of the things I loved the most about Google Blocks for instance)
The most important menu items are:
- Dashboard: a very interesting analytics section about all the app you’ve created and distributed through Headjack, to see how they’re performing;
- Media. This is where you load all the media elements: videos and images. Images are supposed to be thumbnails of the videos at the moment. Headjack supports a wide range of 360 videos: monoscopic, stereoscopic, 8k, with and without audio, etc… It currently doesn’t support 180 videos, but I guess that if the VR180 video format introduced by Youtube will have success, they’ll integrate that too. So, the first thing you have to do when you want to create a 360-videos app is to upload here the 360 videos you want to play;
- Projects. This is the most misleading name ever. Projects are actually the videos. The Media section is just an upload-and-forget part of the framework, while within Projects you can actually modify some properties of the video, like setting the description, substituting video’s audio with another audio or setting which are the thumbnails of the video. For each video you want to play, you have to create a project with all its properties.
- Apps. Here you create your apps that play the videos/projects/whatever. You specify which videos the app must play and then select the template (more on this later) of the app. Then you can build the app for all platforms: from Oculus to Daydream… all platforms are available (WebVR is the only exception, because Unity Cloud Build doesn’t allow that… what a pity!). Thanks to the magic of Google Cloud Build, the app will build on the cloud and an e-mail will be sent to you when ready.
- Builds. Here you can see all the builds you’ve made and download and manage them.
- Cinema. A super-new functionality (not available in free plan, damn!) that lets you control the playback of the videos on multiple devices, useful to handle public showcases.
Let’s see how these can be used to create awesome apps.
Headjack for producers
Ok, so you are a producer and have just shot a fantastic mini-serie of 360 videos for your brand. Now you want to distribute them, but do not want to just put videos on Youtube and let people play them. You want full control on the distribution and on how the videos are experienced… so you want to distribute an app to let people see your masterpieces. How can you create this app?
- Upload all your videos in the media section, with their thumbnails and all their data;
- Create a project for every video, associating each video with its thumbnails, its description and setting all other data;
- Create a new app, set its name and other options. Select the template of the app. Assign to the app all the projects (i.e. the videos) it has to play;
- Build for all the platform you wish to distribute the videos;
- Wait for the build to finish. It can take some time, so eat some cookies in the meantime;
- Download all your builds and distribute them through the stores. Headjack can prepare applications that are already ready for the various stores (e.g. Oculus Store): refer to its documentation to learn how to do it;
- Distribute your app;
- Success an money.
That’s it. I tried the process by myself and it worked like a charm. I received the executable build for my Rift, launched it and BAM, it worked! I was able to build an app showing a 360 video without writing a line of code!
Ok, how about customizing the app? Well, this is possible thanks to the use of templates. Purple Pill people define Headjack as the WordPress of 360 videos and I find this definition a bit exaggerated, but it conveys the idea. With WordPress I can write the articles for my website and then decide the layout of my blog selecting a Theme from wordpress gallery. With a simple theme change, I can completely modify the look and feel of my blog without having to re-write or modify my articles. Within headjack it is the same: I upload the videos and then I can select the template to modify how this videos are presented to the user.
Think as templates as the menus that can make you select the video that you want to play. They handle all the layout, user controls (so ray casting from VR controllers), buttons, video controls, etc.. for you. Look at the below two videos to see how with Wonder and Vertigo templates, the app UI is completely different, even if the videos to play are the same:
As WordPress themes, Templates have some degrees of customizations (like choosing the main color, etc…), so you can make your apps truly personal. Templates make easy the production of apps that streams multiple videos.
As you can see from the above video, Headjack makes possible for the user to decide, for each video, if streaming it from Purple Pill’s cloud or if downloading it locally and then playing it. This functionality is provided out of the box.
There are two features that I want to highlight from a producer’s side:
- Analytics: you have a dashboard on your admin panel where you can see how your app is performing. Furthermore, for each video, in the Project tab, you can see the heatmap of the areas of the video that the users have watched the most. This is fundamental if you’re using Headjack for creating a marketing experience, so you can evaluate how many people have seen it and if the users have focused on the brand;
- Cinema: a new feature that lets you make a public showcase. You can make a build of your app, distribute it to your audience that can watch it through some headset (e.g. GearVR). But you don’t want everyone to launch it separately, because for instance you want everyone to laugh at the same time when there are the funny moments. So you can, from the control panel, to decide when everyone will start seeing the video, synchronized with all other people. This way you can really create a VR cinema inside a room, where everyone watches a video isolated into his/her headset, but together with all other people.
Ok, this is awesome… with Headjack anyone can create customized apps playing multiple 360 videos… but… what if I want something more? Well, you have to dig into the code…
Headjack for developers
What I loved of Headjack is that it gives you both a super-high level platform like the one I described above and a low-level platform to handle everything by yourself. You can actually customize everything you wish. If you want to get your hands dirty, my advice is to start with another tutorial, that you can find here.
Every template has an associated Unity project that you can download. Downloading it, you will discover that a template is simply a Unity project with included Headjack DLLs, VR plugins and all the logic to handle the UI and the management of the videos. It is just a Unity project using Headjack API! If you start with the tutorial linked above, you can create easily a template by yourself (I did it myself and it worked). [Just a little note on the tutorial, if you want to follow it: at time of writing documentations is slightly outdated and now all the dependencies are included into the package… and then don’t forget to remove the standard Unity camera from the scene! Headjack adds its camera at runtime and keeping Unity main camera make visualization go crazy.]
This means two things:
- You can code templates by yourself. To do this, you just create a Unity application that loads video via Headjack APIs and then does stuff. Current templates are all menus to select the video to launch, but you can ideally create a tutorial that launches the video one after the other; or that launches the videos and than makes a questionnaire after each one; whatever application that comes to your mind involving a video can become a template. After you’ve completed your template, you can export it, upload it on your admin panel and then build your app on multiple platforms using your own template. You can even sell templates on the marketplace! Again, this is like WordPress, where you can write and customize themes and then sell it on the marketplace;
- You can just use Headjack API, without using all the rest of the framework. I mean, you can make a VR game in Unity and simply use Headjack to play the cutscenes for instance. This way you don’t need to care about video management (Headjack handles this for you: you just write App.Play… and then it manages all that streaming+texture reprojection boring part for you) and you have the freedom to make the app as you wish, to code it as you like. I’ve also been able to play a VR movie I had on my hard drive with a little trick, in an application that then I’ve built by myself through Unity (so without using their build system). And everything worked.
This is what I liked the most and convinced me to review it: I’ve seen a solution that lets everyone choose the way he’s more comfortable with, from having something creating apps out of the box, to a set of API for Unity developers.
Things that instead I didn’t love that much have been:
- Documentation is sometimes not sufficient (APIs are not that great documented) and needs more frequent updates;
- Some little bugs are present here and there (for instance on Firefox the textboxes of the admin panel have white text on white background!)
I think that Headjack is a wonderful product for everyone wanting to create VR applications that are focused on videos. I strongly advice you to give it a try for free to discover its potentialities and understand if it fits your needs!
(Header image by Purple Pill)