Daedalus ex Machina-DexM
From Medialab Prado
Contents |
Description of the project
function Virtual?(number : Integer) if number == 0 then return true else return Physical?(number-1) function Physical?(number : Integer) if number == 0 then return false else return Virtual?(number-1)
[[recursive]descent] is a 'strange loop' which traverses the real and the virtual through the use of videogame technology augmented with a live video feed from a webcam. The installation is embedded in a site-specific setting where a viewer's descent down a staircase is contradicted by the projected scene before them. This results in the destabilisation - if only briefly - of experience; an unsettling interaction between architecture and sense.
The installation is a spin-off from the originally proposed project 'DexM' (www.lowstandart.net/daedalus), and part of it's ongoing development.
Technologies
The entire project is built upon OpenSource software and content, and it's codebase (Subversion repository) and technical description (readme.txt) can be found at http://moddr.net/svn/lowstandart/ .
core technologies used:
Ubuntu OS - Debian flavoured GNU/Linux operating system
OpenArena - a "violent, sexy, multiplayer first person shooter based on the ioquake3 fork of the id_tech_3 game engine" <open source/open content>
luvcview/libwebcam - driver/libraries and viewer for the Logitech Quickcam used
OpenCV - Open Computer Vision Library used for interfacing between webcam, /dev/shm/, and game-engine
ZeroRadiant - level editor based upon the GTKRadiant_1.4.0 architecture and design
here's a quick and dirty summary of the tech setup thus far, i will expand and clarify the individual steps in due time and produce a more comprehehnsive howto from this:
setup for Logitech QuickcamPro90000 (lots of stuff to add here, complicated setup >> check the README files in src directories for more info):
- libwebcam (view README)
External dependencies: - uvcvideo (Linux UVC driver) - libxml2 and libxml2-dev - gengetopt (optional)
also needs cmake:
apt-get install cmake
svn checkout http://svn.quickcamteam.net/svn/qct/Linux libwebcam cd libwebcam/Apps/uvcdynctrl make cd ../.. make
- luvcview (view README)
svn checkout http://svn.quickcamteam.net/svn/luvcview luvcview
!!!Important notes on the uvcvideo and uvcdynctrl dependencies:
Compiling the luvcview sources requires three source files to be present.
If you already have these projects on your system, you can link them, e.g.
using the following commands:
ln -s ~/uvcvideo/trunk/uvcvideo.h
ln -s ~/uvcvideo/trunk/uvc_compat.h
ln -s ~/libwebcam/Common/include/dynctrl-logitech.h
Alternatively, the latest versions can be downloaded directly from the
corresponding source code repositories:
wget http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvcvideo.h wget http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk/uvc_compat.h wget http://svn.quickcamteam.net/svn/qct/Linux/Common/include/dynctrl-logitech.h
Once you have the SDL headers installed and the three above header files in the luvcview source directory you can continue as normal.
To compile luvcview simply type:
make
To install it in /usr/local/bin type (as root):
make install
- OpenCV:
sudo apt-get install libcv-dev libcvaux-dev libhighgui-dev
- untar Camproxy.tar.gz and compile it > run make, and then run it:
tar -xvf Camproxy.tar.gz cd camproxy make ./camproxy
Openarena/ioQuake3:
- get dependencies and build openarena
sudo apt-get build-dep openarena (get the build dependencies) apt-get install openarena-data (install the open_content data-packages)
- check out the openarena sourcecode from Subversion repository:
sudo apt-get -s source openarena (this code is maintained at svn://svn.debian.org/svn/pkg-games/packages/trunk/openarena/)
- cd into the source directory and patch the sourcecode with the Livecamera.patch:
patch -p0 < livecamera.patch (fixed bug in initial patch version >> missing librt reference, added -lrt to ldflags: "LDFLAGS=-ldl -lm -lrt" (line 160 in livecamera.patch)
- compile and copy into the openarena directory:
1. Change into the top level directory (it contains the ui and code directories.) 2. Run make. 3. Set $COPYDIR to the directory you installed Openarena to and make the copyfiles target.
Make sure you are changed to the owner of this path (probably root). COPYDIR=”/usr/share/games/openarena″ make copyfiles
OR:
check the openarena.bin (shellscript) file to check how the paths are set ('which openarena'), then run something like this: ./ioquake3.i386 +set fs_basepath /usr/share/games/openarena +set sv_pure 0 +devmap unnamed
GTKRadiant:
to be added/expanded: ran into some bugs like directory permissions (chmod a+w) and the shader implementation (see below) :
http://www.qeradiant.com/cgi-bin/trac.cgi
http://ubuntuforums.org/showthread.php?t=188250
implementing the shader:
!!! 'onsignal_live' is a placeholder for 'livecameraimage.jpg', so if we edit 'shaderlist.txt' and add 'onsignal' to the list > the 'livecameraimage.jpg' shows up as 'onsignal_live' (add shader below to 'scripts' directory and mkdir 'textures/onsignal' and add 'livecameraimage.jpg' to it. !!!
shader: ___ textures/onsignal/onsignal_live {
qer_editorimage textures/onsignal/livecameraimage.jpg
{
map $livecameraimage
}
} ___ /shader.
command to run openarena with the modified engine binary:
./ioquake3.i386 +set fs_basepath /usr/share/games/openarena +set sv_pure 0 +devmap unnamed
Actual state and next steps
Parts in wich the project is divided in and percentage of it that has been finished. Here you can also comment wich parts are still not finish and ask for collaborators.
Project's author
Walter Langelaar is a Dutch artist currently based in Rotterdam. His working interests include Open Source game engines, bot AI and neural networks, and "strange loops" through virtual and physical realities. He works with a wide variety of media - including computer games, hacked electronic devices, software, video, sculpture and performance -, and graduated from the Media Design MA course at the Piet Zwart Institute in 2007. His work has been internationally exhibited and he is a co-founder of the "moddr_" media lab at WORM, Rotterdam.
Collaborators
Julian Oliver :: conceptual feedback, AugmentedReality magician and vimtutor >> http://julianoliver.com
pix :: apt-get_101 and maintainer of sane build environment >> http://pix.test.at
critical feedback :: Eduardo Navas, artist and media researcher >> http://remixtheory.net
translocal;
Nancy Mauro-Flude :: original concept development and uncensored_data-queen >> http://sistero.org
Arjan Scherpenisse :: author of the original ioq3 webcam implement >> http://on-signal.org
Links
Interesting links, inspiration, useful guides, etc.


