We asked programmer, Christian Häggström, about the mechanics behind Orexplore’s cutting-edge software. What does open source mean for the development of new ideas, and what we can look forward to in the future?
Can you tell us how you’ve developed your software? Our visualisation software, Orexplore Insight®, is developed in-house. We use open source frameworks like Qt and VTK, which allows us to keep a quick development cycle, and maintain support for several platforms. But Orexplore Insight® is only the tip of the iceberg, there is also software on the GeoCore X10 to turn the sensor data into the final datasets.
How did you begin the process? When you’re starting from the ground up, it’s essential to select a good operating system. Quite early on it was decided to use Linux as the operating system for the on-board computer on the GeoCore X10.
Tell us some of the advantages, and challenges, of using Linux. It has several key benefits. First, it’s very stable in the sense of uptime. It also has drivers for most hardware and the same code can run on the development laptops; and the source code is available making it easy to fix any errors and debug. That flexibility and adaptability is really helpful when you’re trying to make updates and changes. And finally, it’s free, as in it offers a lot of freedom.
Thanks to open source, we are able to develop more features on top. For example, there is a requirement that the machine will always be able to recover from a sudden power loss. The usual solution for systems running Linux is to add a bulky UPS (uninterruptible power supply), but we could inspect the file system types available instead, and pick one that promises consistency for sudden power loss.
Another time we faced a detector that sent out IP packets with broken checksum. This could be worked around by a kernel module that fixes that particular error. The patch was released as open source to benefit other developers.
Open source licenses come in many flavours. In the early days, we used parts from an open source tomography toolkit, to which we also ported back bug fixes and extensions. But this particular license did not allow for inclusion in commercial products, so our only option was to develop new algorithms from scratch. These things are important to check early on, so that is now how we do it.
How do you run the GeoCore X10? The software running on GeoCore X10 is divided in two distinct parts: data acquisition and calculations. The data acquisition is a sequential program which creates raw data files as it progresses. Those raw data files are then input to a number of calculation tasks running in parallel. Again, there are myriad open source packages for job distribution, but none of them were suitable, so we had to create our own. The result was a home-made system which made use of a patched sshfs program. But It was only possible because sshfs is open source.
Ultimately, the choice of Linux as operating system gives us more benefits. We have a lot of freedom when optimising our electrical system and can choose ARM processors for example.
What are you working on next? We are still looking for an open source alternative for GPU calculations. Our current choice, NVIDIA, installs an unstable closed source kernel module into GeoCore X10 and doesn’t have a public issue tracker. We are keeping our eyes open for developments on that front! Recently, we did a thorough comparison of compression algorithms for our volume data. The winning algorithm was Blosc and we have had quite good communication with the open source community there.
The user interface of GeoCore X10 also uses an open source product called PyQt which allows commercial use for an annual fee. This lets us support the PyQt developers, while getting the benefits of those efforts.