#acl All:read


= MotionClouds: installing and running the python scripts =
[[TagMotionClouds|MotionClouds]] are parameterized stimuli with controlled motion content and no spatial coherence.  They are precisely tuned in the frequency space.

 * A full description can be found in Paula S. Leon, Ivo Vanzetta, Guillaume S. Masson, Laurent U. Perrinet. Motion Clouds: Model-based stimulus synthesis of natural-like random textures for the study of motion perception, URL . Journal of Neurophysiology, 107(11):3217--3226, 2012, see  http://www.ncbi.nlm.nih.gov/pubmed/22423003 or http://jn.physiology.org/content/107/11/3217 .

== installing and running the python scripts ==
This package consists of:
 * {{{MotionClouds.py}}} : the API with all the math and display routines,
 * {{{test_*.py}}} : different types of stimuli are tested,
 * {{{experiment_*py}}} : different experiments.
 * {{{fig_*py}}} : different scripts used to generate wiki pages.
 * {{{figures}}} : resulting figures of tests and experiments (as set in the variable {{{MotionClouds.figpath}}}.
 * {{{Makefile}}} : a GNUmake file to edit files {{{make edit}}}, generate figures {{{make figures}}} or compile the documentation {{{make doc}}}.

== Installation ==

 * Installation of MotionClouds consists simply in downloading the {{{MotionClouds.py}}} file which contains all routines to compute and use the MotionClouds textures. This script uses [[http://python.org|python]]] which comes (pre-installed /  easy to download and install) on many operating systems.

 * Installation has some dependencies: 
  1. mandatory: {{{numpy}}} is the core library used to compute textures,
  1. optional: {{{mayavi}}} is used to visualize envelopes,
  1. optional: {{{ffmpeg}}} is used to generate movies.
  1. optional: {{{matplotlib}}}, {{{scipy}}} (with PIL support) and {{{imagemagick}}} are used to generate figures in the documentation.
  1. optional: {{{progressbar}}} for displaying progress of encoding.

=== installation using custom scripts ===

 * depending on your system you should use in a terminal window {{{
sh install_dependencies_debian.sh
}}} or {{{
sh install_dependencies_macosx.sh
}}}
 * an alternative is to use a virtual machine such as for instance the one provided by the [[http://neuro.debian.net/vm.html|NeuroDebian team]].

=== Installation in Debian-based distributions (such as Ubuntu) ===

 * Use the {{{aptitude}}} front end to install packages: (or alternatively {{{apt -get}}} if you feel confident with that tool instead)

 * {{{python}}} is supported by most distribution and should already be installed. You can check which version is installed : {{{
python -V
}}}

 * The same libraries as for MacOsX need to be installed : {{{
sudo aptitude install python-scipy python-numpy python-matplotlib
}}}

 * Idem for the progress bar module {{{
sudo easy_install progressbar 
}}}

 * Install the {{{ffmpeg}}} encoder to work with mpeg, avi, etc, videos: {{{
sudo aptitude install ffmpeg
}}}

 * when creating MoiMoin pages, it is useful to package images in a zip file: {{{
aptitude install zip
}}}

=== Installation on MacOsX: EPD ===

 * Enthought distributes a battery-included installation of python. It is recommended to use the i386 version as the 64-bits version lacks a proper compilation of MayaVi. You will still need {{{ffmpeg}}} to make movies (see HomeBrew or MacPorts section below).

=== Installation on MacOsX: HomeBrew (for more experienced users) ===

 * install it following their [[https://github.com/mxcl/homebrew/wiki/Installation|instructions]] : {{{
ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
}}}
 * then install the following packages {{{

# install python through HomeBrew as a framework
brew install python --framework

# bootstrap pip
/usr/local/share/python/easy_install pip
/usr/local/share/python/pip install --upgrade distribute

# libraries
brew install gfortran
pip install -U ipython

# useful packages
pip install -U nose
pip install -U progressbar
easy_install pyreport
easy_install -f http://dist.plone.org/thirdparty/ -U PIL==1.1.7

# numpy et al
pip install -U numpy
pip install -U scipy
pip install -U -e git+git@github.com:matplotlib/matplotlib.git#egg=matplotlib
# pip install -f http://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.0/matplotlib-1.0.0.tar.gz matplotlib

# IDE
pip install -U sphinx pyflakes rope
brew install sip
brew install pyqt
pip install -U spyder

# mayavi
brew install vtk --python
pip install -U traitsbackendqt
pip install -U configobj
pip install  -U "Mayavi[app]"
}}}
  * be sure to install ffmpeg : {{{
brew install ffmpeg
brew install zip
}}}

=== Installation on MacOsX: MacPorts (outdated documentation) ===
On MacOsX, this may be achieved using !MacPorts:
 * [[http://www.macports.org|MacPorts]] is a generic package manager, somewhat related to Debian's {{{apt}}} scheme. You will need the XCode package which sits in your MacOSX installation DVD or may downloaded on Apple's site or even borrowed to me.
 * Once installed, do the following on the command-line 

  * on Leopard (python 26 works fine too): {{{
sudo port install python25 python_select 
sudo python_select python25
sudo port install  py25-pil py25-numpy py25-scipy py25-ipython py25-matplotlib
+cairo+latex+tkinter
sudo port install py25-enthoughtbase py25-mayavi py25-traitsbackendqt
}}}
  * on Snow Leopard: {{{
sudo port install python26 python_select 
sudo python_select python26
sudo port install  py26-pil py26-numpy py26-scipy py26-ipython py26-matplotlib
+cairo+latex+tkinter
sudo port install py26-enthoughtbase py26-mayavi py26-traitsbackendqt
 * then optionally, {{{
sudo easy_install progressbar pygarrayimage pyglet
}}}
  * be sure to install ffmpeg : {{{
sudo port install ffmpeg
}}}

----
TagMotion TagMotionClouds
