====== the Frontera Project ====== Frontera is an open-source implementation of an Installation by Lilia Perez. When a user touches the Frontera-screen it creates a magic-mirror image, projecting a pre-recorded player onto the screen who touches the user's hand and keeps following it.. The opening on July 11 2008 at [[http://nimk.nl|The Netherlands Institute for Media Art]] was great fun! Currently there are over 60 portraits to interact with.. The exhibition will be open for three weeks //Monday-Saturday// until July 26 at Keizersgracht 264, Amsterdam, NL. still a few days to go. For now I've uploaded some pictures in my [[blog:frontera|blog]]. There is also going to be a Symposium on Tuesday 15 July 19:30 - I'll see if I can get this wiki page up to scratch before then. ===== Frontera Hardware ===== just a large diffusing screen, a beamer and two web-cameras; plus a video-camera for recording. At the montevideo exhibition, Eelko Wagenar and Lilia built two separate screens - one for playback, and a booth for recording, thus we required 4 wide-angle webcams for position tracking. * IEEE-1394 C-2xx?? cams with 94deg lens (lenses were bought separately) for hand-tracking * [[http://elphel.com/|Elphel]] - source-inside 3.2Mpix video-camera for recording. * Beamer and a flat-screen monitor * a few firewire hubs, network cable and two PCs ===== Frontera Software ===== * http://frontera.sf.net * http://frontera.svn.sourceforge.net/viewvc/frontera/ - frontera svn repository svn co https://frontera.svn.sourceforge.net/svnroot/frontera frontera Frontera tracks the hand of the user and projects a mirror image from recorded footage full-screen. Besides the operating-system (gnu/linux ubuntustudio) and OS-automation, Frontera consists of position-tracking , video recording, playback and controlling software. Position-tracking is used for both playback and recording while the installation is either in record or in playback mode... The communication between the recorder, player, tracker and user-interface is done via [[wp>OSC]], video-data exchange between different installations is performed with ''rsync''. * Justpoint - position tracking (C++, openCV) * ElphelOGM / mencoder - video recording (customized version - store timecode, OSC controlled) * xjadeo/xj-five - video playback (customized version of [[:oss:xjadeo:xjadeo]]) * control interface & GUI (various perl, python, c-code and shell scripts) ===== System / Backup ===== frontera runs //live from DVD// - ''bootcdwrite'' with a few tricks was used to create bootable ISO images. The ''/home'' dir is an ext3-image residing on an external HDD auto-mounted to ''/var/frontera''. # # bootcdwrite.conf # # look for man bootcdwrite.conf(5) for more informations # # this path was added as prefix to KERNEL, INITRD, DISABLE_CRON, NOT_TO_CD # and NOT_TO_RAM, if this are relativ paths (without starting "/") SRCDISK=/ # Define the kernel which is used KERNEL=vmlinuz # size of each ramdisk ram1 and ram2 (ram1: /dev /etc /home /root /tmp, # (ram2: /var) RAMDISK_SIZE=16384 # typ is CD or DVD TYP=DVD # specify one or more CD devices to boot from, first is default # "auto" try to find the bootcd on all SCSI and IDE CDROMS CDDEV="auto /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/scd0 /dev/scd1" # Text to Display at Boottime (see syslinux doku) # This option is not supported for hppa DISPLAY="/usr/share/bootcd/default.txt" # do some checks or not DO_CHECK=yes # additional options for the kernel APPEND="" # exclude some files or directories from writing to cd NOT_TO_CD="/home-old /var/frontera-old" # exclude some files or directories from loading to ram # Because most people's home and root dir are to large to include # in RAM, subdirectories can be excluded: NOT_TO_RAM="$(find $SRCDISK/home $SRCDISK/root $SRCDISK/var/frontera-old -maxdepth 1 -mindepth 1 -type d)" # If you are using ssh it is helpful to have a unique ssh hostkey for # each CD. SSHHOSTKEY=yes # If you are using udev filesystem and install the image only on other # machines you need to set this to "yes" because the network interfaces are # hardwired in /etc/udev/rules.d/z25_persistent-net.rules and we must remove # them. You can do this also on bootcd2disk. UDEV_FIXNET="no" # logfile ERRLOG=/var/log/bootcdwrite.log # where the image resists after build VAR=/var/spool/bootcd # FLOPPY_RUNTIME_DEV=|"" # When you boot from cd you read changes from this device. #FLOPPY_RUNTIME_DEV=/dev/fd0 FLOPPY_RUNTIME_DEV= # BOOTFLOPPY=yes|no # If you want to boot from FLOPPY specify BOOTFLOPPY=yes. This reduces # space on floppy used by bootcdflopcp. For this to work FLOPPY_CREATE_DEV # has to be specified. # For hppa this option is not supported and must be set to no. # Default: # BOOTFLOPPY=no BOOTFLOPPY=no # If you want to boot several machines from the same cdrom, you must have # the individual configuartion (exp: /etc/network/interfaces) on floppy. # If one can not be mounted it is a good idea to stop booting and to wait # for manual interaction instead of comming up with a wrong configuration. BOOT_ONLY_WITH_FLOPPY=no # delete some chached files in /var CLEAN_VAR=yes # If FASTBOOT=yes then additional images for the ramdisk will be created # by bootcdwrite and copied to CD. This allows faster booting, # but needs extra space on CD FASTBOOT=yes # use isolinux (yes,no,auto), auto check for isolinux and use it ISOLINUX=auto # use -s (save, slow, stupid) option on syslinux SYSLINUX_SAVE=yes # choose the architecture # ARCH=auto|hppa|i386|ia64 ARCH=auto # use devfs or not DEVFS=no # path to initrd INITRD="initrd.img" # addiditionel entries to fstab # TO_FSTAB="/dev/hdc1 /home ext3 defaults 1 1 # /dev/usb0 /mnt/usb ext3 defaults 1 1 " TO_FSTAB=" UUID=B246-A751 /var/frontera vfat defaults,uid=1000,umask=000 0 0 /var/frontera/pl_home.ext3 /home ext3 loop,defaults 0 0 " # transparent compression of ISO 9660/Rock Ridge filessytem # ("auto" checks for space to compress the image on the local system) # COMPRESS= COMPRESS="auto" # Files or Directory-Trees that should never be compressed on CD can be listed # here. You have to define the Path as it is on the CD, (with /var.ro # instead of /var) NOTCOMPRESSED="" # Files listed in DISABLE_CRON will be on the cdrom with a .no_run_on_bootcd # suffix so run-parts won't execute them. The original file will be a link to # /bin/true. # DISABLE_CRON="etc/cron.daily/find etc/cron.daily/standard etc/cron.daily/security" # With this variable you can add or delete some options # given to mkisofs by bootcdwrite. # Please create debian-bugreports if you have to use special # options, not mentioned here. Then I can list this options here. # MKISOFS_CHNG="" # function extra_changes() # It is possible to define a function called extra_changes to have some # files modified on the ISO image. Here is an example: # # function extra_changes() { # echo "noname" >$VAR/changes/etc.ro/hostname # # mkdir -p $VAR/changes/etc.ro/network # ( echo "auto lo" # echo "iface lo inet loopback" # echo "" # echo "auto eth0" # echo "iface eth0 inet static" # echo " address 0.0.0.0" # echo " netmask 255.255.255.0" # ) >$VAR/changes/etc.ro/network/interfaces # # echo "127.0.0.1 localhost noname" >$VAR/changes/etc.ro/hosts # # cat $SRCDISK/etc/passwd | # grep -v -e "^bs:" -e "^bianca:" -e "^tim:" >$VAR/changes/etc.ro/passwd # # cat $SRCDISK/etc/shadow | # grep -v -e "^bs:" -e "^bianca:" -e "^tim:" >$VAR/changes/etc.ro/shadow # # cat $SRCDISK/etc/group | # grep -v -e "^bs:" -e "^bianca:" -e "^tim:" >$VAR/changes/etc.ro/group # } # # # BOOTCDMODPROBE=standard|bootcd|auto # If booted from initrd bootcd has to load the necessary modules. # If only modules provided by initramfs-tools are needed you can # specify "standard" here. If bootcd should try extra hard to load # neccessary modules you can specify "bootcd" here. # Bootcd will use discover for this purpose. So discover has to be installed. # If you specify auto, bootcd will check if discover is installed. # If it is installed # BOOTCDMODPROBE=bootcd will be set, if not # BOOTCDMODPROBE=standard will be set. # Be aware that people have reported, that sometimes BOOTCDMODPROBE=bootcd # may not work but sometimes it is needed. BOOTCDMODPROBE=standard ===== Resources ===== Links.. ==== misc. References ==== * [[:blog:frontera_-_the_magic_mirror|Blogpost]] * http://cfisrv.finearts.uvic.ca/interactivefutures/IF07/?page_id=37 - first frontera prototype. ==== software development ==== * http://wiki.elphel.com/index.php?title=Camera_software * testOnDemandRTSPServer in package //livemedia-utils// {{tag>FLOSS Video Installation}}