It's A Bird, It's A Plane, It's A...Mouse?
If there's one complaint we in the Linux world hear more than anything, it's "My [whatever] doesn't work with Linux." The unfortunate truth is that, while their infrastructure is likely Linux powered, the majority of device manufacturers aren't thinking about the desktop version when designing their wares. When a manufacturer does think outside the box (the one on the shelf, with the $200 price tag), it's a great day for us all — when they make really cool devices, it's all the better.
What Hillcrest Labs announced yesterday is about more than just Linux compatibility. Hillcrest is the company behind Freespace, a "complete solution for the creation of in-air pointing and motion control devices for a broad range of applications including pointing remote controls, hybrid 2D/3D mice and motion-sensing game controllers." Companies can license Freespace to develop precision devices for all manner of tasks, from presentation pointers to medical monitoring gear.
That's all well and good, of course, until it comes time to use these super-cool Freespace-powered products. What happens when they're pointed at a Linux box — or any other consumer computer, for that matter.
That's exactly the question Hillcrest has been asking itself, and yesterday it formally announced the solution: libfreespace. As the name might suggest, libfreespace is a library that provides Freespace support and "enables rapid development of software applications for use with a wide range of Freespace devices." Hillcrest envisions libfreespace expanding Freespace "beyond TV remote controls, game controllers and PC accessories," to include among others, "smartphones, medical diagnostic devices, body-worn computers, virtual reality systems." Even better, libfreespace devices shouldn't suffer the "partial support" problem so many of us have encountered — the library includes support for "Linux, Mac OS X, Windows XP, Windows Vista and Windows 7.0."
Of course, this shiny new library isn't of much use to the Open Source world if it comes with 101 proprietary strings attached and a hefty price tag. Hillcrest has handled that too — while the Freespace software that powers devices remains proprietary and must be licensed, libfreespace is available under the terms of the Lesser General Public License 2.1. That's good news for application developers, who can now add support for these next generation devices without the need for reverse-engineered drivers and the trial and error that comes with them. Given that Open Source development is the Ferrari to proprietary's Yugo — it's not just faster, it's better — it wouldn't surprise us to see Freespace devices working in Open Source applications long before the proprietary set have them out.
For device developers, the news is sweet, but not quite so free. Along with the official announcement of libfreespace — which has been in development for some time — Hillcrest has also announced the launch of the 3.1 version of their Freespace Reference Kit. The reference kit, which is not available under an Open Source license, provides device developers with the tools to review and build Freespace devices. The kit includes a number of essential features, including lower power and better customization, as well as a quarter-sized embedded sensor. According to Hillcrest, the kit is "the lowest-cost Freespace solution so far, with more features, lower power and a dramatically smaller form factor using the first commercially available in-plane sensing solution."
We look forward to seeing what the Open Source community will come up with to utilize Freespace-based devices. Whatever it may be, we know that it'll be innovative, enviable, and without question outside the box.
Justin Ryan is a Contributing Editor for Linux Journal.
- Brent Laster's Professional Git (Wrox)
- Smoothwall Express
- Returning Values from Bash Functions
- Bash Shell Script: Building a Better March Madness Bracket
- Learning to Program the Arduino
- Own Your DNS Data
- Machine Learning Everywhere
- Simple Server Hardening
- Tech Tip: Really Simple HTTP Server with Python
- SSH Tunneling - Poor Techie's VPN