Free Software Virtual Reality

Free Software Oculus Rift Driver in Chromium

With a nightly build of Chromium and experimental code from vr.js you can run a free software JavaScript/WebGL Oculus Rift environment on GNU//Linux:

The demo allows you to look around the inside of a cube, which reads as a room. It’s fun, and an exciting step for the Rift and Free Software.


Free Software

Oculus Rift Free Software Projects

Although the Oculus Rift SDK isn’t itself free software, there are already a number of projects that use or replace it that are.

Three.js includes an Oculus Rift demo:

There’s a class for using the Rift with the polular Ogre 3D environment:

EOS3 is a virtual desktop environment:

And so is Ibex:

Vireo Perception is a Direct X ( :-/ ) hooking stereo driver:

And in fact there’s lots of good stuff on Github generally (search for “Oculus Rift”):


Free Software

Oculus Rift SDK Free Software Re-Implementation

The proprietary Oculus Rift SDK doesn’t yet support GNU/Linux. When it does so, it will still not be possible to use it as part of a free software system. A replacement free software SDK will need to be created. This requires two bits of information. Firstly, the projections required to map rendered imagery for use in the eyepiece displays. And secondly, the format that the position sensor data is encoded in when sent over USB.

The projections have been incorporated into the Javascript 3d.js library, but the proprietary Oculus SDK was referenced for this, so I’m not sure how clean room it is or whether that’s an issue. *If* it’s OK to refer to, it’s here:

If it’s not OK to refer to, presumably the projections can be worked out by analysing the physical properties of the developer kit.

The head position sensor data is something I can sniff from my dev kit. I’ll do that soon.

Free Software

Oculus Rift Free Software


My Oculus Rift developer kit arrived earlier this week. It’s an impressive modern virtual reality stereo display headset. Less impressive is the fact that, as always happens, any talk of it being “Open Source” quickly evaporated once funding was secured.

The Oculus software development kit contains source code but users are not free to use that source code as they wish. Oculus VR, the company, claim ownership of all derivatives, demand that any modifications be sent to them, and forbid using the software with non-Oculus VR devices.

That’s harsh even by the standards of proprietary SDKs. Kickstarter backers of the project are rightly complaining about this (see comments on “Open Source” here):

Oculus VR are a hardware company. Making the software that interfaces to their hardware more freely usable will drive adoption and use of that hardware. Oculus have nothing to lose and everything to gain through the network effects of making their SDK free software.

They should switch the licence to the LGPL version 3, which would ensure the availability of modifications to them without being so one-sided and restrictive.

Come on Oculus VR, get back in the game!

Edit (2013-05-03) Greetings Redditors. My justification for the claim that there was ever anything “Open Source” about the Rift was indeed the original MTBS post about the Kickstarter, which I read prior to the campaign launching:

3D Printing Free Culture Free Software Generative Art Howto Magick

3D Printing Sigils


Sigil CC-BY-SA by bwigfield.

In chaos magick, sigils are visual embodiments of intent used to focus and actualize that intent. Within both supernatural and cognitive theories of magic the principle is the same: sigils are foci for attracting the resources (supernatural or mental) required to achieve the desire of the person who has constructed them.

Traditional sigils are drawings, two dimensional graphical forms, created using magic square or letter abstraction techniques. Contemporary mages have constructed hypermedia sigils in various formats, from comic book series to interactive multimedia installations.

Sigils created by creative computer graphics programming software can be printed cheaply using Open Source 3D printers or online 3D printing services. This opens up a new range of techniques for creating and using sigils.

Image copyright 2011 Marius Watz

Image copyright 2011 Marius Watz

The 3D printed art of Marius Watz shows how data can be modelled in aesthetically appealing three dimensional form, and how the challenges of modelling complex arbitrary data can be met while still creating easily printed models. RIG’s experiments in 3D printed models of user data by distorting pre-existing forms Chernoff Face-style to display a as christmas tree decorations. We Can use these approaches and more (such as model mash-ups and extrusion of 2D sigils) to embody the intent of sigils rather than Web 2.0 data or random numbers in 3D printed form.


Image Copyright Joshua Madara 2011.

Joshua Madara’s 3D graphics sigil creator Processing sketch demonstrates the creation of a virtual three dimensional sigil form. The sigil is line-based, to keep its genetic link to magic square-based sigils, and would not be 3D printable in this form. But the lines could be replaced with cylinders or rectangular beams, with the angles of joins between them limited to ensure that they can be printed without support on Open Source 3D printers.


Image copyright 2011 Marius Watz

Whether Watz’s organic or machinic forms, more object based approaches or something even more abstract, it is easy to see how this can be applied to the construction of sigils. The mapping of letters (or words) to formal properties or objects by software in order to encode them in forms is how 3D printed sigil models can be produced. This adds an extra dimension of reality and relationality between the virtual and the real that affords a corresponding increase in persuasiveness and richness for sigils.

Part of the efficacy of a sigil may come from the mindfulness and concentration involved in manually constructing and chargeing it. If this is the case then having a machine construct the sigil may work against the sigil’s effectiveness. Constructing the code to make the sigil, and watching the mechanical operation of Open Source 3D printers alleviate this. And a better sigil form than could be made by hand will be a better focus, whether produced by magickal or technological means.

Create 3D sigils using creative coding software such as Processing, or in 3D design software such as Blender. Make the software and model files Free Software and Free Culture (GPL the software, BY-SA the models, wherever you can) and empower others to follow in your footsteps. Upload the model to a filesharing site such as Thingiverse. Then print it using an Open Source 3D printer such as a Lulzbot or a 3D printing service such as Shapeways.

A 3D printed sigil can be used as a focus for contemplation, mediation or ritual. It can be placed in work or living space as a reminder and proof of the reality of the objective embodied in the sigil. Or it can be destroyed to release it into the imagination and the world as part of a ritual by burning or by melting using solvents (but beware toxic fumes). Uploading the sigil to a model filesharing site will spread it further into the world as both virtual and, if anyone prints it, as physical form.

Free Software Howto

GNU/Linux Kobo Build Environment Setup

I’ve bought a Kobo Touch ebook reader device to hack on.

This guide to setting up a build environment for the Kobo is good:

The only change I’ve found you have to make to build the examples is to add:

LIBS += -lpng -lz

to the Qt project (.pro) file in Sketch.

The build system defaults to 4.6.2. It’s possible to change the build scripts to use Qt 4.8 (grep -r 4.6 ~/kobo/KoboLabs/build/* and change occurrences of 4.6.2 to 4.8, then update the ./configure line). Both are on the device so using 4.6.2 is fine.

I’d like to replace Sourcery G++ with something without a EULA.

Art Computing Free Software Projects


I bought a Wacom Inkling pen. It digitizes what you draw as you draw it on paper so you can upload it to computer later. The software that manages uploading those drawings to computer is proprietary and not available for GNU/Linux.

Forunately someone created a C++ class to parse the “WPI” files that the Inkling creates. It’s under the GPLv3 so anyone can use and build on it. I changed the code slightly to compile on platforms other than Windows, then wrapped it up in a command-line tool that outputs simple SVG. Inkscape reads the results just fine. There are also scripts to batch convert and batch copy/convert drawings from the Inkling.

The project is called “merest”. I need to scale the pixel values and retain the original drawing’s information about pressure and angle in a future version of my code. This version is perfectly usable, and has an Autotools-based build system that makes installing as simple as running ./configure && make && sudo make install , so I am releasing it.

You can get the code here:

Free Software Projects

Psychogeodata 4

derive_amenityI’ve added a new script to psychogeodata: derive_amenities.

This creates a path between one or more nodes with a given amenity tag, for example restaurants:

rob@laptop:~/projects/psychogeodata$ ./derive_amenities restaurant test.osm
Loaded test.osm. Amenity ['restaurant']: [u'915945516', u'915945586', u'459487338', u'915945925', u'915945684'].
Wrote derive to 20120519-210356.html

Art Art Computing Free Software Projects


My Uploads project is getting there.

upload oneupload 2

Using a Kinect, a Mindwave, Python, and OpenFrameworks to create a DIY transhumanist realisation of Moravec-style personality uploads to the extent that affordable contemporary technology allows.

This is a low-resolution record of my mind (brain eeg via Mindwave) and body (a depth image/point cloud via Kinect) created using Python and played back using an OpenFrameworks application that uses the Twitter streaming API to match current emotional state data to the recorded states. It’s watching me watch Blade Runner…

Art Free Culture Free Software Generative Art Projects Satire

Composition Generators



Free Brit Art! [description+slogan] by Rob Myers

– Ruth Catlow.

Rob Myers does Damien Hirst (and Agnes Martin, and Ellsworth Kelly, and Barnett Newman, and Robert Ryman, and…
– Curt Cloninger.