Fluxus : (C) 2007 Dave Griffiths : dave at pawfal dot org : www.pawfal.org "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.16) http://opende.sourceforge.net/ racket (7.x) http://www.racket-lang.org/ fftw (3.3.x) http://www.fftw.org/ jackd2 (1.9) http://jackit.sourceforge.net/ libsndfile (1.0.12) http://www.mega-nerd.com/libsndfile/ liblo (0.5.0) http://plugin.org.uk/liblo/ glew (2.0.0) http://glew.sourceforge.net/ libfreetype (2.2.1) http://www.freetype.org/ libalsa http://www.alsa.org/ libjpeg (8) http://libjpeg-turbo.org/ libssl (1.1.1) http://openssl.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. Ubuntu 18.04 ------------ ``` sudo apt-get install scons libccd-dev libfftw3-dev libjack-jackd2-dev libsndfile1-dev liblo-dev libglew-dev libfreetype6-dev libasound2-dev libtiff5-dev libbz2-dev freeglut3-dev libopenal-dev libftgl-dev libjpeg-turbo8-dev libssl-dev ``` ODE install instructions ------------------------ ``` wget https://bitbucket.org/odedevs/ode/downloads/ode-0.16.tar.gz tar -xvzf ode-0.16.tar.gz cd ode-0.16/ ./configure --enable-shared --prefix=/usr/local/ \ --with-pic \ --with-gnu-ld \ --enable-double-precision \ --enable-libccd sudo make install ``` Racket install instructions ------------------------ You probably need to install Racket from source, in order to get shared libraries. This requires you download a recent release tarball rather than a git checkout. Two benefits of the tarball: - it will allow you to run the autotools `./configure` step. - by using the 'builtpkgs' option, all platform independent-bytecode and documentation already comes pre-compiled, so your compile will be shorter. like this: ``` wget https://mirror.racket-lang.org/installers/7.4/racket-7.4-src-builtpkgs.tgz && tar -xzvf racket-7.4-src-builtpkgs.tgz cd racket-7.4/src ./configure --enable-shared --prefix=/usr/local make sudo make install ``` After this, you'll need to update your library path so the `fluxus` executable can find the `racket` and `ode` libraries: ``` echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usr-local.conf sudo ldconfig ``` Fluxus install instructions --------------------------- To build and install, enter the fluxus directory and type: ``` scons sudo scons install ``` (the first step is required so scons install won't fail when documentation files aren't found) 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.