/fluxus

A rapid prototyping, livecoding and playing/learning environment for 3D graphics, sound and games.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Fluxus : 
(C) 2007 Dave Griffiths : dave at pawfal dot org : www.pawfal.org
(C) 2018 Thomas Hocdez : thomas at blenderlab dot fr : www.blenderlab.fr

"act of a flowing; a continuous moving on or passing by, as of a flowing stream; 
a continuous succession of changes"

Fluxus is a small realtime render engine for linux that generates animation from 
sound. Released under the GPL licence (see COPYING)

Using fluxus
------------

See docs/fluxus-documentation.pdf, the online help and most importantly the 
example scripts (in the examples directory) for pointers on using fluxus.

Load the examples on the commandline by running "fluxus scriptname.scm" or 
loading them from inside fluxus by pressing ctrl-l and browsing.

Also, sign up to the mailing list to search the archives and ask questions: 
http://lists.pawfal.org/listinfo.cgi/fluxus-pawfal.org

Installing
----------

Fluxus is a dependancy heavy application, and installing it can be a bit of a 
challenge - anyone who can help in this regard (debian packages etc), please get 
in contact!

It requires:

ode (0.5)           http://opende.sourceforge.net/
racket (6.x)		http://www.racket-lang.org/
fftw (3.0.1)        http://www.fftw.org/
jack (1.0)          http://jackit.sourceforge.net/
libsndfile (1.0.12) http://www.mega-nerd.com/libsndfile/
liblo (0.6.0)       http://plugin.org.uk/liblo/
glew (1.3.4)        http://glew.sourceforge.net/
libfreetype (2.2.1) http://www.freetype.org/
libalsa             http://www.alsa.org/

The version numbers in brackets are the version I've built it with, later versions
should also be ok, let me know (via the mailing list) if you run into problems.

And if that's not enough, you'll also need scons (http://www.scons.org/) to 
actually build fluxus.

Racket install instructions
------------------------

You probably need to install Racket from source, in order to get shared libraries
like this:

./configure --enable-shared --prefix=/usr/local
make
sudo make install

Fluxus install instructions
---------------------------

To build and install, type:

scons 
sudo scons install

Build options to scons are:

X11=1
Build with the X11 libraries - rather than Xorg which is default.			 

GLSL=0
Set this to disable GLSL hardware shaders.

MULTITEXTURING=0
There is a fluxus bug causing crashes on some systems - try this if you
get a crash with just (build-cube)

STEREODEFAULT=1
Use hardware stereo rendering

ACCUM_BUFFER=1
Startup with an accumulation buffer (another bad tempered option on some drivers)

There are more settings at the top of the SConstruct file which may need to be
tweaked to correctly find things.

Fluxus install instructions for OS X
------------------------------------

Install Racket binary (http://racket-lang.org/download/) and
MacPorts (http://www.macports.org/).

Put the bin directory of Racket and MacPorts to your path by adding
the following line to the .bash_profile file in your home directory:

PATH=$PATH:/opt/local/bin:/Applications/Racket\ v5.3.1/bin/

Also add this line to .bash_profile, which is necessary for fluxus to
find the Racket framework:

export DYLD_FRAMEWORK_PATH=/Applications/Racket\ v5.3.1/lib/

You might need to change the Racket version number according to
the binary package you have installed.

In OS X 10.8 install the library dependencies as universal:

sudo port install fftw-3 +universal glew +universal freetype +universal jpeg +universal \
	liblo +universal libpng +universal libsndfile +universal ode +universal \
	tiff +universal zlib +universal scons

Install JackOSX 0.90+ on OS X 10.8 (http://www.jackosx.com/) instead of
MacPorts jack.

To build and install, type:

scons ADDONS=0
sudo scons ADDONS=0 install

It is also possible to build an OSX application of Fluxus.

To build, type:

scons --app ADDONS=0
./packages/macos/osx_app-postbuild.sh


Homebrew (http://mxcl.github.com/homebrew/) users:

The homebrew formula conveniently installs all dependencies for you (including racket):

brew update
brew install fluxus

Building fluxus on Windows
--------------------------

You need to install python, scons and MinGW, then install the win32 versions of
the dependencies from their websites (eq ode, plt) or for lower level ones 
like libpng, libtiff etc from here: http://gnuwin32.sourceforge.net/
Put the libs in the C:\MinGW\lib and includes in c:\MinGW\include for everything
except Racket. You should now be able to build and install fluxus. 

It installs by default to C:\Program Files\Fluxus. You now need to add copies 
of all the dependencies dlls in the bin directory there.

More advanced building commands
-------------------------------

For building fluxus for packaging or as downloadable all included games or 
applications, there are these flags:

STATIC_MODULES=1
Build fluxus such that it doesn't require Racket installed - embeds the module binaries
and all the scheme code required from Racket. Currently you also need to change a couple
of lines of modules/scheme/fluxus-modules, see comments in that file for more info.

STATIC_EVERYTHING=1
Build fluxus same as STATIC_MODULES=1, but also static link as much as possible, this
results in a binary which doesn't require any dynamic linking except to GLIBC. Not
really good practice, but helpful for run-anywhere binaries.

RELATIVE_COLLECTS=1
Create a binary which looks for it's collects in the same directory as the binary
resides - this means that fluxus can be installed anywhere, and can carry around
it's dependant scheme code.

STATIC_ODE=1
Build fluxus with ODE statically linked.

ADDONS=0
Disable building additional modules.

RACKET_FRAMEWORK=0
Build with the Racket library instead of the framework on OSX.