Vesa Halttunen

Bits and Bytes

I've written software most of my life - ever since I got access to a Commodore 64 at the age of 5. Having honed my skills both in hobby and professional projects, I am a software expert with expertise in a wide range of different technologies and platforms. I have developed several successful commercial software products from the beginning all the way to the market and have experience of working in various roles in companies and multicultural teams of different sizes.

Here are a few software projects I've done or been involved in.

Sailfish OS desktop environment (Jolla)

Screenshot of the Jolla phone The Sailfish OS desktop environment comprises of the main user interfaces in the Jolla smartphone. I participated in design and implementation of the home screen, application launcher, notification system, status indicators and lock screen, among other components. These components are based on C++, Qt, QML and Javascript technologies. I also was involved in porting and transition from a Qt4/X11 based software stack to a Qt5/Wayland based one. The Jolla phone started shipping on November 27th, 2013.

MeeGo 1.2 Harmattan desktop environment (Nokia N9)

Screenshot of the Nokia N9 MeeGo 1.2 Harmattan desktop environment comprises of the main user interfaces in the Nokia N9 smartphone. As an architect and lead developer of the desktop environment I was responsible for design and implementation of the home screen, task switcher, application launcher, notification system, status bar, lock screen, among other components. The software was mostly written in C++ using the Qt toolkit. The Nokia N9 started shipping on September 27th, 2011.

Pinball Dreaming: Pinball Fantasies

Screenshot of Pinball Dreaming: Pinball Fantasies Pinball Dreaming: Pinball Fantasies is the official iPhone/iPod Touch, Sony PlayStation Portable and Nokia N9 version of the 1992/1993 Amiga classic pinball game Pinball Fantasies. I completely rewrote the game in C++/OpenGL from the original 68000 assembler source code in 2009. The rewrite includes 100% exact original gameplay, music and sound effect playback and a smooth 60FPS refresh rate. It supports online high scores (on iOS), multiple screen orientations and has a custom 3D level selector. The game was released for the iPhone and the iPod Touch on July 20th, 2009, for the PSP on October 1st, 2009 and for the Nokia N9 on July 20th, 2011. The PSP version has also been playable on the Sony PlayStation 3 since December 17th, 2009.

Pinball Dreaming: Pinball Dreams

Screenshot of Pinball Dreaming: Pinball Dreams Pinball Dreaming: Pinball Dreams is the official iPhone/iPod Touch and Sony PlayStation Portable version of the 1992 Amiga classic pinball game Pinball Dreams. I completely rewrote the game in C++/OpenGL from the original 68000 assembler source code in 2008. The rewrite includes 100% exact original gameplay, music and sound effect playback and a smooth 60FPS refresh rate. It supports online high scores (on iOS), multiple screen orientations and has a custom 3D level selector. The game was released for the iPhone and the iPod Touch on January 31st, 2009 and for the PSP on November 19th, 2009. The PSP version has also been playable on the Sony PlayStation 3 since December 17th, 2009.

Air Conflicts: Aces of World War II

Screenshot of Air Conflicts: Aces of World War II Air Conflicts: Aces of World War II is an arcade flight simulator game set in World War II, featuring the aircraft of this period and historically inspired missions. The emphasis is on intense dogfights, daring bombing raids and exciting aerial missions. I did most of the conversion of the resource-hungry Windows DirectX game using more than 512MB of memory to the Sony PlayStation Portable with around 24MB of free memory in 2007-2008. DirectX calls were converted to Sony libGu calls through a compatibility layer. Original code was heavily optimized to run with a playable framerate on the PSP. All graphical assets were converted to suitable resolutions and formats. A completely new extra game campaign was created. The game was released on April 7th, 2009. Gameplay videos here, here, here and here.

Framely

Screenshot of Framely Framely is a personal video sharing platform (social network). It's a fun way to capture, share and see moving memories. These videos will be shared on a virtual wall, which will give an unique viewing experience. I designed and implemented the entire platform with features ranging from video capture, seamless playback, graphical themes, Facebook connect, push notifications and in-app purchases on the iPhone/iPad client side to social network user management, access control and cloud storage on the J2EE server side. In addition Amazon Web Services were used. Framely has been available from the App Store since November 10th, 2013.

Wedding Kiosk

Screenshot of Framely Wedding Kiosk is a simple-to-use video kiosk and interactive guestbook for the iPad. I designed and implemented the app with features ranging from video capture, seamless playback, graphical themes and in-app purchases on the iPad client side to access control and cloud storage on the J2EE server side. In addition Amazon Web Services were used. Wedding Kiosk has been available from the App Store since May 23th, 2014.

Frame Gallery

Screenshot of Framely The Frame Gallery iOS application allows the camera roll contents to be organized into galleries which can be easily browsed using a virtual wall interface. I designed and implemented the application in Objective C/Cocoa Touch. It includes custom themes and in-app purchases. Frame Gallery will be available in the App Store soon.

Tutka

Screenshot of Tutka Tutka is a tracker style MIDI sequencer for GNU/Linux and Mac OS X. I wanted to continue composing the songs I had written using an Amiga program in a modern environment so I decided to write a similar program of my own. I originally wrote it in C using the GTK+ UI toolkit but recently rewrote the application in C++ using the Qt toolkit for portability. Tutka is my main hobby programming project.

Home Screen Settings

Screenshot of Home Screen Settings Home Screen Settings is a Nokia N9 settings plugin for configuring the home screen. It allows orientation locking, visibility of the weather widget, whether to use only white text on the home screen and the background of the home screen to be configured through the Settings application. The application is available from the Nokia Store.

MPD Remote

Screenshot of MPD Remote MPD Remote is a Nokia N9 remote control client application for the Music Player Daemon. It allows you to connect to an MPD instance over the network and remotely control it. The usual music player controls (play/pause/stop/previous/next), shuffle/repeat control and editing the play queue by adding songs from the remote filesystem are supported. The application is available from the Nokia Store.

Major Release

Screenshot of Major Release Major Release is an Amiga 500 demo for the Assembly 2004 oldschool demo competition. Technically it is the most demanding personal project I've done so far. I tried to push both the old computer and myself as far as I could. The result was satisfying and reached the second place in the competition. There's a video of it in YouTube and the source code is also available.

Megane Rellu

Screenshot of Megane Rellu Megane Rellu is an Amiga 500 40 kilobyte intro for the Finnish Amiga Party 2009 40 kilobyte intro competition. It features most of the effects from the Major Release demo, a software synthesizer and a 328 kilobyte song, all in 40 kilobytes. There's a video of it in YouTube and the source code is also available.

Siepura

Screenshot of Siepura Siepura is an "analogue sound modelling" software synthesizer for GNU/Linux. It has 24 voice polyphony, 3 oscillators, 2 ring modulators (can be swapped for frequency modulators on oscillator 3), noise generator, 2 LFOs capable of oscillating at audio rates, 3 ADSR envelopes, 24db resonant lowpass filter and a comprehensive modulation matrix with 130 possible routings. It uses the ALSA sequencer API for MIDI input and ALSA for audio output.

Hätä

Screenshot of Hätä Hätä is a cross platform demo for the Assembly 2002 demo competition. It is also an example of what I can do on the multimedia front. It uses JRm-core, my portable demo engine. An Amiga 500 version is also available.

Noir

Screenshot of Noir Noir is a non-linear short story for a Music and Media course at CM&T. It was available for the public in the MUU gallery from April 22nd to May 4th, 2003. Noir was done together with Panu Aaltio and with voice acting by Simon Boswell. It uses JRm-core, my portable demo engine.

Damicon TV Commercial

Screenshot of Damicon TV Commercial A TV commercial made for Damicon Kraa Oy. It was shown on the ATV channel in Helsinki during December 2002. The commercial was based on Hätä and also uses JRm-core, my portable demo engine.

www.jormas.com

Screenshot of www.jormas.com dA JoRMaS is a group of people sharing the interest in techno music related multimedia production creation using Amiga (and these days also other) computers. I am responsible for the technical implementation of dA JoRMaS' web site.

Miscellaneous