tiistai 3. heinäkuuta 2012

Photorim privacy policy

Photorim requires a Facebook login only for uploading a photo as you request it to. The authentication will be stored only at your own mobile device. We do not store / analyze or do anything else with your login.

sunnuntai 29. huhtikuuta 2012

Photorim Beta

I've been writing a new kind of photo-editing software for embedded devices ( = with GLES2/C/C++). It is called Photorim. The main principle is that you are editing a stack of overlaying effects which you manipulate by simply clicking a thumbnail generated from the previous effect, with the new effect. So you don't need to know anything about photo editing, just what looks good into your eye.

In addition, the application is always signed in into the Facebook so you can upload the photo you've created directly, without trouble. The application needs a successful Facebook login before it even starts up the photo manipulation screens.

This is an early Beta-release of the client. Everyone is welcome to test the software. Any kind of feedback is highly recognized. If you have some, please either post it here or directly into my personal email tuomo.hirvonen (at) gmail-dotcom.

Some test-photos I've posted with the software:

And here are couple of videos of the software's even earlier versions. I'll post a newer ones once I get them made if none of you won't do it. This one is with earlier version before "pipe-editing" - functionality:

And this one is with even earlier version, made with a desktop computer:

As usual, my test platform have been Symbian^3 so you need a Nokia's Symbian phone to try it. The phone must have networking enabled since the facebook binding. The download links for self-signed beta binary installers:

Symbian Belle installer
Symbian Anna installer

I hope you like it ..

lauantai 11. helmikuuta 2012

"Pipboy" fallout screen saver for Symbian^3 X

Earlier, we did a couple of screensaver - programs for Symbian^3 devices (no one else could do them back then) and sold them at the OviStore. When Anna version of the Symbian^3 OS was published, all of the screensaver's were broken: Some developer (I think by accident) had raised one capability bit from the screensaverhost making the same requirement for all of the component's used by it (practically all the screensavers). To get this capability an official signing proces was required which would have been too expensive for almost any indie - developer. We didn't have other choise than to take our products out from the store.

New OS version Belle is finally available to all Symbian^3 phones even though it's not coming as "automatic / from the air" - update, but manual "to install whoever knows how" - version. This OS is anyway much better than Anna in several ways one of them being that the capability-bit I was talking about of the screensaverhost has been lowered once again. This makes the screensavers work as well :)

When our product was on the stores we were constantly planning on new products that might interest people. As I was uploading a video into the YouTube for the previous post, i remembered my earlier continuance plan for our ScreenSaver - project. I've loved "fallout"-mythology since Wasteland and my personal opinion is that Fallout- game series have taken the feeling to the top. Since I'm a programmer, .. I really like the user interfaces of computers in these games. All of the terminals are fantastic with their almost ball-like-screen's and poor refresh-rate. Simple and effective.

So. This is not in the OviStore yet and I won't promise it never will be. I just wanted to store these (what i think is cool) videos from the screensaver I wrote here as well:

And another one, with a different run:

The videos have been taken with a desktop computer but the program itself works perfectly on any Symbian^3 and Harmattan device. The program has not yet been integrated with the actual screensaver framework and run's as individual, stand-alone program.

I really like them myself!!

keskiviikko 8. helmikuuta 2012

Boobies for Symbian^3 phones

All men like boobs!

Some time ago I was working with a mobile application which was manipulating camera's image by changing the source coordinates. It was implemented with the CPU and I wanted to try a GLSL solution for the task. I came up with simple "transformation grid" which could be manipulated dynamically, at real-time. The algorithm worked well, but in my opinion it wasn't used as much as it would deserved.

I wanted to find some other use for the algorithm as well but I couldn't think of anything. Obviously when you don't know what to do, do something with boobs ;) So I did. I wrote a software with two different, overlaying manipulation grids and added some graphics into it. I wanted to see how the dynamic manipulation works so I added touch control and accelometer sensor support into the app as well. There are some visible errors in the transformation, but it still gives quite convincing results.

So the final app is called BikiniBouncy and it's tested to work with all Symbian^3 devices. Anna, Belle and older.

Hmm,.. I like the outcome even tough I understand it's quite bad taste. At least it can make you smile :)

Sadly, some online stores have quite strict policy about "this kind of" - content which is why the application cannot be published officially. I didn't want it to go completely waste so I just publish it unofficially by myself.

The application is self-signed so the installer will say "Untrusted content. Are you sure you wan't to install"  etc. If you wan't the application, you just have to install it anyway.

The download link is here:

The installer is built for all Symbian^3 devices

I've heard some people have had launching problems with the current Anna-build. I added another version directly built for Belle. Following binary only works with Symbian^3 Belle - devices (not with N500 tough):

And a Belle build without an installer:

HD Mosaics final results

Time have passed and I'm happy with the algorithm. I've added some things and fine-tuned most parts. Here are the 3 final images calculated with it. The most important and noticeable change is multi-resolution support. The base grid is now divided into smaller parts when the minimum error is too large.

The final image which was actually printed in 160cm x 80cm size is here. It has been constructed with over 600 original source images from where about half is actually used:

Couple of other "final" images are still under consideration:

perjantai 14. lokakuuta 2011

HD Mosaics

Like many other families, we have also LOTS of family pictures forgotten into the harddrives of our computers. These times people take so many pictures that it's impossible to enjoy all of them. Lately, I've been thinking some "mass-way" to utilize them.

Some photography companies offer some solution to this: Photobook, different collases etc. But they still use only less than 50 images and the results are not very nice.. Too much automation/decorations-i-dont-want etc. Also, I'm guessing that if i would make an album, it would be watched couple of time with relatives, and then forgotten to a bookshelf. I figured the only real possibility is to get the photos into my walls somehow. Large poster / canvas art is the only real option.

Mosaic are great choise when you are able to print in large enough size. This is what I started to study more.

I hand-picked few hundred best pictures and decided that I will create a mosaic from them, forming our wedding picture. I started to search for a good application to calculate the mosaic: I couldn't find any. All of the programs I found, were mostly grid-based lighting / color matchers. They never could make good enough quality for reasonable sized tiles that actually represent the target picture in any printable size => so that in large scale, I could see the picture they are forming. And in small scale, i could see the photos that are forming it.

I decided to write the generator by myself. Since I (and everyone else who is using only own pictures) have very limited size ("very limited" in this context means something like below 10.000) of source images, i needed to find some way to increase the amount of matches with the actual sources I have. The actual test program is (once again) C/C++ with QtSDK and manual "per-pixel-manipulation".

I start the scanning-process by normalizing the lightness on each of my source- and targetblocks. This way there can be good matches even when the original lightness of two images are completely different: Only relative changes apply. This alone increased the quality of the results so significantly, that it alone could have been already enough. I still wanted more, I started adding different parameters / transforms into the blitting of the source tiles:
* xlip (-1 or 1)
* Angle (Anything user wants. I'm testing between -2 and 2 radians with 0.2 radian steps)
* Scale (Anything user wants. I'm using scales from 0.4 to 0.9 )
* Source offset (i'm scanning all of the possibilites from the source according current scale and angle. With a selectable step).

First i tried the algorithm with just a single tile; to see how the scaling / rotating functionality works. The process had many steps before these results but they are not stored anywhere. I ended up doing the matching only with normalized lighting, discarding the source's color. The blit color is derived from the target picture.

Then I started to add actual tiles I'm going to use in the final picture. With more tiles, the time required for the calculation increases. For each tile, it runs several loops inside other loops. This is not a problem for me, I can wait for couple of hours for good image to render. The original results have VERY large resolution (print quality) and they are scaled down before posted here:

Even tough I haven't made the final photo to be printed. I like the results. As you can see, the tiles really try to form the shapes from the original photo. Its especially visible in tests made with larger blocks. I will post the final source when I get it done! No back to coding :p