maanantai 27. elokuuta 2012

Responding to demand: SMS AI

We've received requests to create a variant of Call AI that specializes in SMS. The idea is simply to use outgoing SMS instead of outgoing calls as a criteria for selecting contacts to the widget. Also, when contact is tapped an SMS editor (to selected person) will launch, instead of contact info screen.

This has been in the works for a while, and is now approaching release status. Here's a screenshot as a teaser. Stay tuned for release announcement soon.

keskiviikko 22. elokuuta 2012

FREE 3D Gyro Compass now available

We're really proud to present Finwe Ltd.'s latest app: 3D Gyro Compass. Our sensor team has created a truly stunning compass application using state-of-the-art sensor fusion algorithm and Rightware's leading Kanzi 3D framework. It is fast, accurate, tilt-compensated and even uses physics modelling to smooth movements in rough conditions. There is simply no match for it!

While most compass apps simply use plain magnetometer signal or Google's sensor fusion algorithm, this app raises the bar to a new level: we have further developed Sebastian Madgwick's LGPL-licensed open source AHRS sensor fusion algorithm (source code available at request) to combine accelerometer, magnetometer and gyroscope sensor feeds in a clever way.

Our experts have 10+ year experience with sensors in mobile phones. When applied together with Kanzi tools to create fast HW accelerated 3D graphics, we managed to create this beast. To experience it with your own eyes, download it for FREE from Google Play, and share as you wish.

Get it from Google Play:

tiistai 21. elokuuta 2012

Web AI published

We are happy to announce that our AI series has now turned into a trilogy, as our third AI app has just been released via Google Play. It's called Web AI, and will soon be downloadable worldwide.

As you might guess from its name, Web AI provides a location-aware widget for quick access to your most frequently used web sites.

UPDATE: It is available now, get yours from

perjantai 17. elokuuta 2012

Sidetrack: Sensor Fusion

At Finwe Ltd. we have experts whose core competence is related to context awareness and adaptation, but also professionals who specialize in sensors, physics modelling and 3D graphics. While this blog has so far discussed mostly the former topic, we'll now take a peek to the lab next door and see what's brewing in their kettles.

Everyone's learned at school that humans have five primary senses. But did you know that the smartphone in your pocket has probably much more? Let's count...

Similar to human senses, sensors in smartphones make them more aware of the environment. For example, MEMS sensors such as accelerometer (1), magnetometer (2) and gyroscope (3) are used for movement and orientation tracking; most notably responsible for rotating the screen between portrait and landscape orientations. Light based sensors, such as front (4) and back cameras (5), proximity sensor (6), and ambient light intensity sensor (7) are pretty standard components in all smartphones and allow taking nice pictures, turning off display during phone calls, and adjusting screen brightness automatically. Some models can even sense features of the ambient environment with a temperature (8) and an air pressure sensor (9). Microphone (10) for audio input, touch panel (11) for pointing input and even short range radio networks such as NFC (12), Bluetooth (13) and WiFi (14) can be used as sensors.

That's already fourteen sensors. Yet there's more to it: you can measure multiple things with a single sensor component, or combine multiple physical sensors to work in concert to produce different kind of data. As a result, you'll get a bunch of virtual sensor channels as a bonus. With all that information pouring in, why aren't smart phones truly smart? Because its what you do with the information. A monkey can see the same thing than you can, but its still a monkey, right?

One of the most compelling topics in sensors is sensor fusion, i.e. combining input from multiple sensors to create something better. This requires quite involved math, where a tiny error completely blows the whole thing. But when it works correctly, it can do pretty amazing things. For example, sensor components are not ideal in performance and typically measure only a single physical phenomenon, such as linear acceleration or magnetic field. If movement tracking is based on data from a single sensor type, it is fairly easy to come up with movements where the illusion breaks. However, when multiple sensors work together, they can complement each other and truly make a big difference to a product.

Our specialists are preparing a free technology demo: a compass application that combines 3D accelerometer, 3D magnetometer and 3D gyroscope data to a so-called 9 DOF setup. Sensor fusion algorithms mix sensor inputs together in a clever way, and as a result, the compass is stable, accurate and responds quickly to movements in a way not possible with a single sensor. There's also fast 3D graphics and some physics modelling to give the finishing touch. The app is already developed and is absolutely state-of-the-art level quality. We will release it shortly after testing phase is finished. There's also a Youtube video in the works, as movement algorithm apps really need to be seen with own eyes before they can be appreciated. Nevertheless, here's a screenshot as a teaser.

torstai 16. elokuuta 2012

In the works: Web AI

Now that we've got our first babies out to the market, our team is already busy sketching new apps for the AI series. Here's news for you all: the next one will be "Web AI". You probably guessed it: we're applying our adaptive widget concept for web bookmarks, and also location learning will be included.

We already have a working demo, and it seems that this use case can be enabled for a wide category of devices. With today's sandboxed environments you never know whether a use case is feasible before you go through the necessary APIs and try to implement a proof-of-concept demo on a real device...

There's one tricky part, though. Unlike calls and apps, with web addresses it is common that user browses multiple pages from a single domain (for example when reading news). It's like having multiple slightly different contacts for a single person in your phone book. I think user's wouldn't appreciate it, if the widget learned four links to different news stories instead of just the landing page of the site. Hence, we need to find a good strategy for automatically picking the most meaningful URL (or part of it) from a bunch of similar ones, and only this one needs to be learned. We need a new kind of filter in front of the usual learning block. Sounds simple, but we'll see how well this can be worked out in practice.

The rumors tell that after Web AI is finished we will look into automobiles next, but I will not reveal more yet... Despite there is already work in progress, as always, feel free to share your own ideas; we're always ready to listen and discuss our favorite topic :)

maanantai 13. elokuuta 2012

First updates

Both Call AI and Start AI have been available in Google Play a couple of days now. We have not yet started any marketing campaigns, but its nice to see that users from all over the world have already found them. To be honest, we were a little bit afraid if anyone could pop into them without ads, since there are more than 500.000 other apps available - quite a small needle in a big haystack...

From Google Checkout we can view how the apps are doing in Google Play. It is easy to make one remark from this data: quite many users who install the application cancel the order within a few minutes, i.e. utilize Google's 15 minute return policy. We have been trying to guess what's going on, and hope that some of our users who have decided not to keep the app would explain their decision. Maybe we can improve our communication about what these apps are and how to use them.

As a preliminary act, we have already prepared our first updates which include instructions about placing the widget on the homescreen, and also otherwise improved the look'n feel of the welcome screen. These will become available shortly.

Start AI user Steve reported that in his case the issue was text "No license" in the widget. We are using Google's online license check system, which is recommended for paid apps. However, we have noticed that sometimes it can take a while for the phone to finish checking license status from Google's servers. Unfortunately this makes an impression that there's something wrong with the installation package, i.e. seems like it doesn't contain a proper license. It is likely that license check would be soon completed, but we will make changes to our applications to prevent this from happening again. Preventing software piracy should never deteriorate user experience of paying customers!

Versions 1.0.2 with improved welcome screen, removed unnecessary permissions, and improved usage of Google licensing system are available.

torstai 9. elokuuta 2012

Start AI has gone live!

And now also Start AI has been published via Google Play.

Just wait a few hours and it'll appear in the apps section.

UPDATE: It is available now, get yours from

Coming next: Start AI

Start AI, our sister project to Call AI, is quickly approaching release time, so its time to share a few thoughts about it.

When our scientists were developing the algorithms for location and usage learning for phone calls, they noticed that the same design principles could be applied not just for contacts but also for applications. And so the idea of Start AI was born and we decided to give it a shot. However, the implementation turned out to be almost impossible because of API issues. To really understand why, we need to take a step back and look at the overall picture of software development landscape and how it has changed.

Most software developers have started practicing programming with a computer. It has been relatively easy to get access to a PC, there's plenty of options for languages and development tools, and the user interface is good enough for prolonged usage. There's one more important thing that we tend to take for granted: computers our open. There are APIs readily available for almost everything, and it is generally understood that since you own the box, you can do whatever you want with it.

Not so with mobile phones! In the beginning they were completely closed systems based on proprietary operating systems. No APIs, no documentation, no tools available. Mostly this was due to the fact that the whole industry was still in its infancy. But within a few years of time, phone's started to contain applications such as the famous Snake game, calculator, calendar etc., and demand began to rice to open up the platform for 3rd party developers as well.

Slowly things started to change. In the mobile domain there were two important hurdles unseen during computer era: malicious apps could potentially harm communication by acting unintended ways with the mobile phone network, and extract money from end users by making calls or sending messages to numbers owned by criminals. Hence, both the network and user's money need to be protected.

Two different approaches emerged. For example Nokia, worlds largest mobile phone manufacturer by then, used Java sandbox in their cheaper feature phones, while more expensive Symbian smartphones could be programmed with C++ using a limited set of APIs. Later Symbian devices were further protected by enforced platform security model, where all software had to be signed and sensitive APIs were protected with capabilities that had to be separately requested.

In practice, Java sandbox model was very limited and could be only used for creating very simple self-contained applications (think about calculators, timers, todo lists, and games). Meanwhile, more open Symbian model allowed much more complicated designs and also programs that interact with other applications and improve the platform itself. It was not a surprise that Symbian became the platform of choice by the research community, which is always pushing the limits and trying to find novel ways to use technology. Things were going smoothly forward.

...until iPhone happened. While impressive from user interface and design point of view, feature-wise iPhone was much closer to feature phones than smartphones. Yet, its success has been overwhelming and changed the landscape for good. Fast forward a few years ahead, and you'll notice how radically things have changed: now two most popular mobile platforms, iOS and Android, push the sandbox model forward and more open Symbian is in decline. In addition, Apple and Microsoft are taking ideas from mobile domain and bringing them back to computers. Seems that sandboxing and locking things down is the new norm. This is all very, very sad from research point of view.

Back to Start AI. While Android is said to be an open system, applications still have a very limited playground. They are not supposed to know about each other, and the OS can kill and restart apps at will. Now you'll understand that it is quite difficult (if not impossible) to make applications that continuously observe device usage in the background, and adapt to each user's preferences. The kind of things that were simple with computers and accessible in Symbian smartphones, are mostly impossible on iOS and Android, at least for 3rd party developers.

We managed to make Start AI work, though. We're using a simple trick: observe Android's log. However, information that system puts to the log when apps are started is not consistent. Hence, Start AI does not work with new Android devices.

When you grow older, become more sentimental and look back and think how things used to be better, sometimes you just may have a point in there.

keskiviikko 8. elokuuta 2012

Call AI has gone live!

Just received a word that Call AI has been published via Google Play!

Currently it's being synced to Google servers worldwide, and we are expecting it to be listed in the apps section of Google Play within a few hours.

UPDATE: Google has done its hocus pocus and Call AI is downloadable from Google Play.

tiistai 7. elokuuta 2012

Preparing for publishing

Here at Finwe Ltd. good news keep coming in: we have successfully completed our internal test round for our first AI app (which will be called "Call AI"), and final graphics and marketing material for it are nearly finished. So everything's going forward smoothly and we are preparing for publishing Call AI within a few days via Google Play!

As a teaser, here's a preview of our logo and a few words about what Call AI is all about:

For a long time, communication with other people via calls and messages has been the primary use case for mobile phones. Hence, all phone models provide some kind of phone book application for managing and accessing contacts; some modern ones also have a widget for pinning a few selected contacts directly to home screen. It is also quite common to look for frequently used contacts from the recent calls list. Plus, there's a plethora of 3rd party apps for doing the same thing with different user interface variations.

Is there anything wrong with current situation? Yes, there is. Alphabetical phone book is painfully slow to browse. Static home screen widgets provide fast access, but do not adapt to temporal usage where different contacts come and go. Recent calls list supports well temporal usage, but users can't remember whether a certain contact can be (still) found from the recent calls list, so this is often a dead end and requires another look from the phone book application.

You might ask, can there be any better way? Certainly! Some phone books allow pinning selected contacts in the top part, some widgets include recent calls list -like functionality and adapt contacts based on usage. But there's still something that other solutions seem to have missed. That, my friend, is location

For years, our scientist have participated in international research projects, and collected and analyzed months of call data from dozens of users. One important finding is that when people initiate communication, there is a significant connection between user's current location and the target person. It is not surprising if you think about it. When you go to the office, you'll make calls to your colleagues and clients, perhaps to your spouse. When you're at home, you communicate with your family and friends. And so on. That's why static widget won't work, and not even a recent activity based. You need to handle location as well.

Another problem in many apps aimed for increasing productivity is that they require so much learning and configuring that more time and effort is wasted than gained. Also applies here: you don't want to spend time managing contacts, you want to use it for communicating with them. A tool that really helps need to learn by itself, automatically. No configuring.

Now we come to our first app, Call AI. It is is a new kind of contact widget, which learns your personal top contacts automatically and keeps the contacts relevant without any configuring. But the real kick is that it also learns your most important locations automatically, and keeps separate top contacts list for each relevant place. At home, you've got home contacts. At work, you've got work contacts. And so on.

Call AI uses mobile phone network cells for positioning, so you don't need to worry about battery consumption. Since all learning takes place in the phone, there is no outgoing data transfers - you're privacy is guaranteed. Moreover, we don't want to ruin an otherwise great tool with a flood of advertisements and thus have decided to make Call AI a paid application, but with very affordable price. This can be reconsidered if need arises, though.

From our user tests we have learned that it is also quite exciting to observe the learning the process. When new contacts and locations begin to appear, it's almost like magic. But the most amazing thing is the relevancy of contacts. As one of our test users put it: "This is just amazing! Whether I'm at home, work or partying, it just knows who I'd like to call. How does it do that!?"

We will post again as soon as Call AI becomes downloadable, so stay tuned. Then try it out, wait a few days and report back how it has learned YOUR locations and contacts. With your help we can fine tune the algorithms and make it even better. Also feel free to suggest improvements and new ideas for our AI app series. An exciting journey is about to begin, welcome aboard!