====== 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}}