3D printed Google Cardboard frame

3D Printing on vacation!

This is a minimal frame to properly position and hold the lenses needed for Google Cardboard on a Samsung Galaxy S3. I have modeled it in collaboration with my wife using Google SketchUp. Composed of four pieces, glued together once I have found the proper focus position. Designed to not cover camera, flash, or speaker. By trial and error I have found that a tiny magnet on the back of the phone works fine as the click button.
Lenses bought on eBay.

It works perfectly with the demo app from Google and two other apps I have tested.

Download here the zip file of the 3D models.

The background noise in the video is the wind on the sea you can see in two of the pictures below.

Three machine learning frameworks for .net

I’m currently exploring what the Web offers in terms of machine learning framework for .net.

At the end of the first round I’ve come up with a pack of three relevant results that I’m going to describe briefly.

First place: accord framework.
In this framework I have found plenty of useful ML algorithms for classification (which is currently my main research interest): a comprehensive coverage of SVMs and kernel-related stuff, boosting, kNN, cross validation and grid search support. The framework contains a lot more features, e.g., deep learning, matrix decomposition, clustering, signal processing. This is just a list of what claimed my attention at a first look; check the documentation for the details.
The accord framework extends the already feature-rich aforge.net framework, which also sports a number of image/video/signal acquisition and processing tools.
Demo applications cover most of the features of the framework and show non-trivial uses of it, thus they can be a good starting point for practical applications.

License: LGPL.

Bonus: wide coverage of commonly used ML methods and tools, link with aforge.net, flexible license.

To be checked: scalability to high dimensional feature spaces, memory requirements, multicore processing availability.

Second place: numl.

Numl is another interesting library that also covers both supervised and unsupervised learning method, though with a reduced feature set with respect to accord.
An example of what I liked of numl are the concepts, and their implementation, of Descriptor, Generator and Model. They are designed in a very clean and “C#-esque” way and produce a simple and easy to understand code.

License: GPL.

Bonus: nicely designed code.

To be checked: the same point of accord, plus coverage.

Third place: infer.NET.

This F# library from Microsoft Research is a slightly different thing with respect to the previous two.
It covers probabilistic graphical models, and the examples are pretty interesting.
Despite being from a Microsoft group (or because of that ;) ) the code is a little less clean and understandable than the code based on accord or numl.

License: “non-commercial use only; no commercial licenses are available at this time.”

Bonus: it covers an area not covered by the other packages.

To be checked: sincerely, I’m currently not exploring problems that require this kind of methods, so I have no checklist for this library.

Notable mention: vulpes.

Among the search results I also noticed this smaller and specialized library that implements deep learning methods in .net exploiting cuda parallel computation. Being deep learning not on top of my interests, I have put it in the test-it-if-you-have-time list.

A common toy and a left handed child

I’m left-handed, I was playing with my daughters – both right-handed – and I’ve observed that many toys, even symmetrical ones like hammers, are designed for right-handed people. The right hand preference is sometime functional (buttons, levers) and sometimes aesthetic (stickers, screw holes).

With the collaboration of their tiny hands I’ve compiled a brief visual list of differences. What’s the point of it? Just to show my daughters how being a little different from the modal value can change the experience of the world, hoping that this information from a “toy” scenario (pun intended) will help them in the future to better perceive the point of view of people who for various reason are different from them.

Modal? Probably you would have expected to read normal, which mathematically speaking is almost correct. But modal is more appropriate – meaning the most frequent value – and also it does not carry the harmful misconception that “normal means correct”, when normal is only intended to mean “around the average/most frequently expected”.