Skip to content

mikewoz/spinframework

Repository files navigation

-----------------------------------------------------------------------------
|    ___  ___  _  _ _     ___                                        _      |
|   / __>| . \| || \ |   | __>_ _  ___ ._ _ _  ___  _ _ _  ___  _ _ | |__   |
|   \__ \|  _/| ||   |   | _>| '_><_> || ' ' |/ ._>| | | |/ . \| '_>| / /   |
|   <___/|_|  |_||_\_|   |_| |_|  <___||_|_|_|\___.|__/_/ \___/|_|  |_\_\   |
|                                                                           |
|---------------------------------------------------------------------------|

http://spinframework.org
Copyright (C) 2009 Mike Wozniewski, Zack Settel

Developed/Maintained by:
   Mike Wozniewski (http://www.mikewoz.com)
   Zack Settel (http://www.sheefa.net/zack)
   Nicolas Bouillot (http://www.nicolasbouillot.net)
   Louis Bouchard <lwi.bouchard@gmail.com>
   Tristan Matthews <tristan@sat.qc.ca>
   Alexandre Quessy <alexandre@quessy.net>
   Emmanuel Durand <emmanueldurand@gmail.com>

Principle Partners:
   La Société des Arts Technologiques (http://www.sat.qc.ca)
   Institut Arts Cultures et Technologies, Université de Montréal (http://www.iact.umontreal.ca)    
   Shared Reality Lab, McGill University (http://www.cim.mcgill.ca/sre)

Funding by:
   NSERC/Canada Council for the Arts - New Media Initiative
   Heritage Canada
   Ministere du Developpement economique, de l'Innovation et de l'Exportation

About
-----
The SPIN Framework allows for 'Spatial Interaction' in a networked system of virtual environments. Tools are provided for high-level layout of 3D content, visualization, and distribution of state over networks. Possible application areas include:

* Immersive Environments / Virtual Reality
* Collaborative 3D authoring and editing
* Telepresence
* Visualization
* Distributed Performance Art
* Online Game / Metaverse Engines

One of the key features of the system is that spatial layout and editing is done in real time rather than in an offline process. This allows for rapid prototyping of virtual environments and interaction. Network communication is achieved through OpenSoundControl (OSC), allowing the use several existing systems for control flow, including Pure Data, Max/MSP, Processing, etc. The framework provides generic mechanisms for spatial manipulation, based on geometric events (movement, intersection, incidence, etc.), so a number of interaction paradigms can be explored.

A number of audio/video/image formats are supported by means of the OpenSceneGraph (OSG) library and its extensible plugin architecture. Additionally, powerful rendering and visualization solutions can be realized, including multi-projector configurations, and distortion correction for cylindrical or hemispheric displays.

Ultimately, the SPIN Framework allows for the creation of collaborative environments where several distributed users can share and interact with immersive 3D content.

For full documentation, visit http://spinframework.org


Dependencies
------------
On Ubuntu GNU/Linux Precise LTS 12.04::

    sudo apt-add-repository ppa:sat-metalab/metalab
    sudo apt-add-repository ppa:openrave/release
    sudo apt-add-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
    sudo apt-get update
    sudo apt-get -y install automake bison build-essential cmake-curses-gui flex libtool 
    sudo apt-get -y install ffmpeg freeglut3-dev libavcodec-dev libavdevice-dev libavformat-dev libboost-filesystem-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-system-dev libboost-thread-dev libcppintrospection-3.0-dev liblo-dev libopenscenegraph-dev libswscale-dev libxml++2.6-dev libtinyxml-dev
    sudo apt-get -y install libspatosc-dev
    sudo apt-get -y install libspnav-dev spacenavd
    sudo apt-get -y install python python-dev python-setuptools
    sudo apt-get -y install libbullet-dev
    sudo apt-get -y install libpoco-dev
    sudo apt-get -y install ffmpeg
    sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
    sudo apt-get -y install libshmdata-0.8-dev
    sudo apt-get -y install libpcl-1.6-all
    sudo apt-get -y install libtinyxml-dev


Compiling
---------
If you are compiling from a clone of the Git repository, and not from a tarball, you must first do this::

    ./autogen.sh

And then , to compile SPIN::

    ./configure
    make 


Installing 
----------
To install SPIN::

    sudo make install
    sudo ldconfig


Installation notes on the old Ubuntu GNU/Linux Lucid LTS 10.04
--------------------------------------------------------------
* make sure you have no openscenegraph, nor openthreads Ubuntu package
* download and compile openscenegraph (which contains openthreads)
* download and compile cppintrospection version 3.0
* download and compile spinframework

Add the following in your ~/.bashrc file, so that you can run OSG applications, including SPIN.::

  PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
  export PKG_CONFIG_PATH # ugliest hack
  LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib64"
  export LD_LIBRARY_PATH


Linking to SPIN
---------------
To build a C++ that is linked to the SPIN library, use the following flags::

  `pkg-config --libs --cflags spin-1.0 cppintrospection-3.0` -I/usr/include/python2.7