Welcome to the repository for The Machine to be Another! This is the part built with openFrameworks. To get the (soon to be deprecated) puredata component go there
The software allows you to run two different kind of setups. The gender swap (or two-way swap setup) requires two oculus rift and two USB cameras. In the two-way setup, both video feeds are fed to the other person's head-mounted display. The classic setup requires building your own open-hardware camera vest. The performer wears the vest so that the user can see from his perspective.
It can be controlled from the keyboard or through a phone or tablet running TouchOSC. The software supports both DK1 and DK2, as well as PS3 cameras (our favorite), ovrvision cameras, and regular USB cameras. Only Windows is supported, but the code should easily be ported to OS X.
Two-way swap setup
Here's an overview of the parameters necessary to setup the application. They should be set in the settings.xml
file located in bin/data.
O
and P
keys.←
and →
keys.N
and B
keys.K
and L
keys.First you need to install the oculus runtime 0.4.4 and if you're using a PS3 camera, you'll need to buy the CLeye PS3 driver for the classic setup, you need to install the arduino driver if you don't have already
To run the software for the first time, rename the file settingsexample
in bin/data to settings.xml
then open it with a text editor.
Following is a description of the parameters necessary to run each setup.
For the classic (one-way swap) setup :
For the gender swap (two-way swap) setup :
Before running the software, make sure the oculus is detected and if you're using a DK2, that it is set in extended display mode. Remember that you must rotate the DK2 display to be in landscape mode using the windows screen resolution menu.
Once you have set the parameters, run The-Machine-to-be-Another.exe
. Use the console to check for error messages.
Two windows will show up. One is a debugging view, meant to be displayed on the computer screen, while the other should be dragged onto the Rift display. Press F
to switch the selected window to fullscreen.
If you are running the classic setup, check the Servos Control
part of this readme.
If you are running the body swap setup, you should be ready to go. Check that moving one Rift moves the display in opposite directions on the other computer. If not, you might need some troubleshooting.
The project was tested with Openframeworks 0.7.4 on Windows 7&8 + Visual C++ 2010 Express.
git clone https://github.com/BeAnotherLab/The-Machine-to-be-Another
inside the openframeworks_folder/apps/myapps
. If you download the project as a zip file using the github web interface remove the "-master" extension from the name of the folder.openframeworks_folder/addons
folder. You can load background music and as many audio samples in mp3 format as you wish with the machine to be another. in settings.xml
putting the file names in the <sounds>
tag without their extension automatically assigns them numpad keys to trigger them. The music will automaticly loop and the next samples can be triggered by pressing keys 1-9 or sending a trigger on /btnx through TouchOSC.
TouchOSC layouts depend on your devices resolution but you can check in this folder
for examples.
We also include files we used in different installations or performances made through the years.
You can also send /dimon /dimoff and /ht to respectively dim the display to black and back and reset the headtracking in case of drift (people must be looking straight for it to work). Also /driftPlus and /driftMinus allow you to nudge drift correction manually.
We designed a 3D printable vest that you can build yourself. The plastic parts are combined with off-the shelf components so that it is very easy and cheap to replicate. Instructions on how to build it are coming, but here is what you need to get
Servo control pure data patch is here run the patch and start the openFrameworks app. check the pitch, yaw, roll faders are moving when you move the oculus plug-in your arduino with firmata servo control example loaded on it https://github.com/firmata/arduino/blob/master/examples/ServoFirmata/ServoFirmata.ino and click on "devices" to see on with serial port your arduino is plugged in. Edit the box that says "open x" to replace x with the COMport and click it to activate it. Check the console for errors.
TODOs
========================
If you wish to contribute, then please consider the following :