Tuesday 11.07.2017 - Wednesday 26.07.2017

A simple viewer for video content shown in VR. Grab your VR headset and enjoy a movie or two within a virtual world.

As WebVR is not that mature yet, this demo currently only works with FireFox Nightly. These are stil early days for VR content on the web, so please excuse any issues you might find.

  • Shows YouTube videos in VR
  • Supports both head tracking within a VR headset and mouse navigation

The Mighty Media Graph Updater

Friday 05.05.2017

In order to effetively update the media graph for ParrotPlay, I created this tool for doing batch processing of data. Some of its features include reading and converting data from our page crawlers, and updating data from third-party sources, like the TV guide.

The Flight of the Parrot

Saturday 22.04.2017 - Sunday 23.04.2017

A simple experiment with the Matter.js physics engine. What started up as an internal joke, ended up as a Angry Birds inspired game.

Hurdy Gurdy

Friday 20.01.2017 - Sunday 22.01.2017

The result of a GameJam in the same building that I work in. Joined up with three other participants, and this was what we came up with.

The object of the game is to earn money from bypassers by playing tunes on your street organ. A hurdy gurdy is something completely different, but we found the name to be funny.

  • Simple game engine written from scratch

Parrot Radio

Thursday 13.10.2016 - Monday 28.11.2016

A simple radio playback application. This application served as a prototype for adding radio functionality to the ParrotPlay application. Contains a few Norwegian, as well as a few selected international channels.

This application utilizes streaming of radio channels over your existing network connection.

There is also support for Chromecast from within this application. With the press of a single button, your radio broadcast will be sent to your local Chromecast unit.

  • Several radio sources, from both radio channels themselves, as well as from the Shoutcast library
  • Chromecast support
  • The parrot dressed in headsets

Doctor Who Parrot

Saturday 15.10.2016 - Sunday 27.11.2016

A simple visualization mimicking the 5th season Doctor Who introduction. Mixed in are the theme of ParrotPlay. Contains several tunnels that both the parrot and system credits are flown through. In addition, there are some random objects in space that are connected to the theme of the application.

  • Imitation of the 5th season Doctor Who intro

Electron Clone View

Saturday 05.11.2016 - Saturday 05.11.2016

Simple test to see how cloning a webpage could be done utilizing the Electron framework. This technique could be used to forward a stream of images/video from one view, and be processed in an another view.


Monday 19.09.2016

An application that gathers all your streaming services in one place. Be it Netflix, HBO, Amazon, all your streaming needs gathered in one application. You can browse, search and discover content no matter what source they originate from. Contains a broad spectrum of content from any genre.

  • All your streaming services in one unified interface
  • Extensive library of content, both streamable and not
  • Several media types, like movies, series, live TV and radio

Evatic Mobile Services

Monday 01.06.2015 - Friday 16.09.2016

Administration of services of hardware within the copy/print market. This hybid-application lets service-technicians in the field keep track of their due tasks, as well as sending in status for the machines that service has been performed on. Part of a larger software-package that manages all aspect for a service-center.

My task has been to convert this appplication into a design conformant with Google Material Design. I've also been updating the underlying codebase so that will be easier to maintain, as well as implementing new features and fixing existing problems.

  • Completely revamped into a modern design
  • Lots of new widgets, including date and time pickers


Wednesday 13.07.2011 - Sunday 31.05.2015

A simple to use, yet highly configurable diagramming library that supports multiple programming languages. Our library currently support GWT, Sencha GXT, JavaScript and Java2D. More target platforms are planned in the near future. Full support for all major web browsers.

The user interface is completely customizable. As a developer you are free to change how elements are placed on screen. You can even create your own user interface element that easily integrates with existing features.

Both figures and line endpoints can be customized. Depending on your particular need you can create your own shapes and remove the currently available figure sets. These custom shapes can be drawn using a simple to use editor.

The library was designed with the end developer in mind, and is therefore easy to use. With a detailed documentation and a wide array of examples it's easy to integrate or implement the functionality needed.

Diagrams are rendered on the server using the Java2D and other standard server libraries. This allows you to build images and image maps on the server-side for infinite possibilities.

Full source code is available for users of GWT and Sencha GXT libraries.

Wisweb 2

Monday 15.03.2010 - Sunday 31.05.2015

An upgrade of the current CMS-system. For this version we will try to use modern development methods and tools. One of the biggest problems with the old version was the lack of support among web browsers. This time around this problem will be solved by using GWT. In addition we will speed up all data traffic using MySQL and Hibernate.

Wisweb Navi

Tuesday 08.01.2013 - Sunday 31.05.2015

Translation of a Windows desktop application to a webapplication.

Asteroids Emulator

Monday 25.02.2013 - Sunday 14.07.2013

Emulator for the classic game Asteroids from the year 1979 written entirely in JavaScript. Simulates MOS 6502 CPU, Atari-DVG video hardware and uses sampled sound effects. Add money to the game with "5", start the game with "1", control the player using the arrow keys, shoot with "x", and jump into hyperspace using space.

Because this game is still the property of Atari Inc., I cannot legally provide the ROMs required to run this game from this site. If you are in the possession of said ROMs, you may upload these files to your local browser for use with this emulator. These files will remain on your computer only, and will be read from your browser should you choose to visit this page again. This emulator is compatible with the same game ROMs as the latest version of MAME, as of writing version 0.149.

JavaScript water

Sunday 17.02.2013 - Monday 18.02.2013

An implementation of the oldschool water effect. Inspired by Water Effect.


Wednesday 13.02.2013 - Sunday 17.02.2013

An implementation of the oldschool tunnel effect. Inspired by Tunnel Effect.

Tone Demo

Friday 25.01.2013 - Saturday 26.01.2013

When I decided to put my mobile games on these pages, I had some problems with the audio in the emulator. In order to test my own implementation of the sound emulation I made this demo based on some examples I found online. In addition to the original tone demos I added one to play back all available tones as well as an example for playing tones directly from the buildt-in audio manager.

Escape from Castle Puzzlestein

Saturday 20.08.2011 - Sunday 21.08.2011

My entry for Ludum Dare #21. Theme: "Escape"

Please note that this entry uses WebGL, which is not supported by IE. Works best with Chrome and Firefox.

You have been captured while trying to find the plans of the Nazi reich. In order to escape from Castle Puzzlestein you will have to use your brains instead of your brawns. Unlike the guards in the more well-known castle, the gauards here are quite slow. They will move only when you move. They will however try to catch you if they get a glimse of you.

Plan you actions ahead. At the far right of the screen is a palette with your available actions. Next to the palette is a container for your queue of actions. Either click these actions to add them to the queue or drag them in. The order of actions can also be rearranged. Remove actions by using the right mouse button.

When you are satisified with your selection, you may start playback of the queue by using the playback buttons at the bottom. This will play each action in the queue in sequence. If a guard catches you, the playback will stop.

Your ultimate goal is to reach the exit from each level. Good luck.

Global Warfare

Tuesday 26.07.2011 - Sunday 31.07.2011

My entry for Mini Ludum Dare #27. Theme: "War"

Please note that you will need the latest version of Chrome or Firefox to play this game.

Mutually Assured Destruction. Is this what the world is come to? Is there really no way to escape this destiny? Can't we all just sit around the bonfire and have a nice civilized chat as adults? The results of war are devastating, and this small game will give you a small peek into the future of nuclear warfare.

The factions marked as green are yours. You shoot a missile from one of your zones into an enemy zone by dragging the rocket icon over to an another faction. Just be sure not to drag it over to one of your own zones. We don't want unneeded casualties, do we?

Gold Down Under

Saturday 28.05.2011 - Sunday 29.05.2011

My entry for Mini Ludum Dare #26. Theme: "Descend, Demolish, Destroy, Detonate, Dig, Dirt, Drill, Dynamite"

A simple Bejeweled clone where your goal is to collect gems in order to dig down into the earth. As usual you get bonuses when you do matches with 4 or 5 gems. This game has four levels with increasing difficulty.

I didn't have time to implement all that I wanted to implement for this game. I also run into a lot of problems with the framework I was using, ForPlay.

Nitro Racer

Saturday 30.04.2011 - Sunday 01.05.2011

My entry for Ludum Dare #20. Theme: "It's Dangerous to go Alone! Take this!"

A simple racer where the goal is to stay close to your opponents in order to survive.

Please note that this game works best in Firefox.

  • 2 simple levels
  • AI for opponents
  • ImpactJS used as game engine
  • Sound generated using BFXR
  • Music generated using Wolfram Tones