~dbtx/fluxus-hax

local modifications to fluxus from pawfal.org; upstream: https://gitlab.com/nebogeo/fluxus
1ee52354 — Robin Couto 17 days ago
tweak ribbontoy demo
1ebe6f6a — Robin Couto 17 days ago
add ribbontoy blur blend audio demo thing
19f3fce7 — Robin Couto 17 days ago
add blur-blend-mode, multichannel (ga) & (gh) examples

refs

dbtx
browse  log 

clone

read-only
https://git.sr.ht/~dbtx/fluxus-hax
read/write
git@git.sr.ht:~dbtx/fluxus-hax

You can also use your local clone with git send-email.

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.