VR scene selection

Wednesday 26.07.2017

Added support for selecting scene from the VR TV viewer. At the bottom left corner of the view there are a button that lets you pick from the two scenes I've set up so far. This time I added the Family Room model found on Google Blocks.

VR video progress

Sunday 23.07.2017

I've added a progress indicator for video playback. This simple widget is placed on the floor in front of the TV, and are updated as the video progresses.

WebTorrent VR

Saturday 22.07.2017

I've added support for WebTorrent to the VR TV experience. This allows me to view content from Torrent sources within the video viewer. This is an another approach to fetching video from other sources that does not need extra plugins or modification to the web browser.

To demonstrate this, I've added several videos from the Blender Institute Open Movies. These are movies made by the community and provided as open content to anyone. Although BitTorrent is often mistakingly connected to piracy, it is perfect for transferring this kind of content.

And you gotta love the logo of the WebTorrent project:

VR proxy

Friday 21.07.2017

The first version of the VR TV project required you to disable web security in your browser in order to view VR videos. This has now been remedied with a simple proxy. This proxy allows JavaScript on these pages to send requests to any server that I've opened up for. There are therefore no more need for changing any settings on your computer for running this application.

Try it out

DOS emulation

Thursday 20.07.2017

In order to view old projects online, I've added DOS emulation to this site. This allows me to view the projects I worked on during the 90's within these pages. No more need for the hassle of downloading the applications and setting up DosBox.

In order to realize this I utilized em-dosbox, a JavaScript port of DosBox using the Emscripten toolchain. This allows you to do things like playing old MS-DOS games in your brwoser or running old computer viruses without harming your computer.

I could have used the Emularity frontend in order to simplify setup, which is the same system that Internet Archive uses, but I wanted a bit more control over how the application integrates with the page. This meant I had to figure out a lot of details on my own, including how to integrate the BrowserFS filesystem implementation with read-only ZIP overlays, mounting and so on.

Try it out

Treehouse VR TV

Wednesday 12.07.2017

I've been experimenting with VR and WebVR lately. This latest experiment are a giant television screen placed inside a treehouse. The treehouse is a model that I found made by Danny Bittman using Google Blocks.

I've picked some videos from YouTube for easy access, but you might also paste in any YouTube URL into the address input. This player currently only supports YouTube videos.

Because WebVR is not yet an industry standard, not all browsers have implemented support for it yet. Chrome supports the API, but does not support any of the hardware yet. Firefox Nightly is the only browser I've found that supports WebVR. There are some versions of Firefox that works better than others, and support are not neccessarily better with newer versions.

In order for the video to be loaded from an external server, you need to disable security in the browser. This is done by adding a command-line parameter. For Chrome this parameter is "--disable-web-security --user-data-dir". FireFox does not have support for this out of the box, so you'll either have to rebuild the browser from source, or rely on a plugin.

You might also run this application without a VR headset. You will then be able to look around by dragging the view with the mouse.

Try it out

Tuning the pages

Saturday 01.07.2017

I've done some minor tuning to these pages. Minor bugs has been removed, as well as more content added.

For blog posts containing code examples I've added a syntax highlighter. This makes the code look a lot more readable. I also included more external blog posts, so that I have all content gathered at one place.

New web pages

Sunday 25.06.2017

These web pages have been updated with a brand new look. This time around I've tried to follow the Material Design guidelines. This has resulted in a fresh new look, ready for the future.

In addition to the new look, I've also updated all content, and disabled all features that do not work anymore. As an example, these pages used to have a lot of Java applets. As most modern browsers now have removed this plugin, thus making it impossible to view applets on a web page, these have been disabled, and will be available as screenshots only. I expect the same to also happen to all Flash content later in 2017, as browsers have been running a war against these lately.

There has also been a lot of work done on the content of these pages. Over the years I've gathered a lot of blog posts as well as projects. All these texts with its pictures have been updated to better fit with modern times. Most thumbnails has been redone so that they are twice as large, as modern times have higher screen resolutions. Unfortunately, I do not have larger images for some of the older projects. This is due to the fact that I sometimes downscaled those screenshots to better fit on a web page, and other times because their original resolution were that low. A resolution of 320x200 were quite common back in those days.

TV guide visualization

Friday 23.06.2017

The TV guide data also needs a visualization. This view shows what is broadcasted on all your channels in a quick overview. A play icon next to the program symbolizes that the program in question is available on a streaming service, and could therefore be seen immediately. It is also possible to add a reminder on one of the programs, so that you as a user would be notified before the program starts.

Parrot 3D model

Saturday 17.06.2017

Extended the tunnel visualization by converting the parrot into a proper 3D model using Blender. This resulted in the parrot looking a lot cleaner when rendered on top of the rest of the scene.

Importing TV guide data

Thursday 08.06.2017

Lately I've been working on importing TV guide into the ParrotPlay application. This has resulted in its own set of issues, where most have all been solved by now. One of the challenges has been to connect the guide data to our existing database.

This will allow us to link to a movie or series that we already have in our systems. If you see that a movie is listed as being viewed on a channel in a few days, but you want to see it now, you will be able to do this, as we link the guide to streamable content.

Data, data, data

Friday 26.05.2017

Part of extending the application is to add more data. By using several data sources we are able to create a quite complex model of the media world. The image below is just a small example of how complex this data structure is becoming.

Optimizing to the extreme

Thursday 04.05.2017

We are currently transitioning from a combination of a MongoDB and a Elastic Seach into using Neo4J. This allows us to look up data with reations in a faster fashion than we have been able to do earlier.

As part of this transition, we needed to implement several plugins for use with Neo4J, to compenasate for missing functionality. One of these plugins ws a recommendation plugin. As can be seen from the screenshot below, there are a lot that can be done with a little bit of optimization. One call went from 2917ms to sub 1ms. This result is representative for how a few changes often results in large changes when fetching data from Neo4J.

The Flight of the Parrot

Sunday 23.04.2017

Created a simple game with a rudimentary physics engine, in which you throw a parrot around. This was made out of an internal joke. The result was a simple game with inspiration taken from Angry Birds.

Try the game out

The Lirekasse Man

Sunday 22.01.2017

Participated in a local Game Jam. The theme this time was waves. Ended up in a group where we decided to make a street musician simulator. This was a strange idea which resulted in an even stranger game.

Try the game out

Radio ChromeCast support

Monday 28.11.2016

Support for ChromeCast devices has been added to the radio player. This allows me to easily throw the radio stream over to my aplifier, where my ChromeCast Audio device is attached.

Parrot depth

Sunday 27.11.2016

Tried to add some depth to the parrot by converting it into an SVG, and then load that into the 3D engine with some extruded geometry and beveling. As can be seen from this image, this made for some issues with Z-fighting. Will need to revisit this problem at a later point in time.

Also tried to add some glow to the tunnels, just to give them some texture. I've also added support fore viewing more than one text. By doing this, I now have a complete credits list available.

Random objects in space

Saturday 12.11.2016

I've added some object between the tunnels, so that the space does not look so empty as the parrot flies between the tunnels.

Jumping tunnels in space

Sunday 30.10.2016

Updated the tunnel visualization with more animation. The logo and the parrot jumps out and in of the tunnels alternately as the camera pans and zooms into the tunnels.

More tunnels in space

Sunday 23.10.2016

The tunnel visualization has been extended with more tunnels. The camera jumps between four tunnels of different colors, with logo and a parrot jumps in and out of these tunnels. The parrot is currently a simple billboard, as I don't have a 3D model of the charter yet.