----------------------------- Introduction ---------------------------------
Libraries for working with any configuration of 1D, 2D and/or 3D dynamic
fields. This code is the implementation of the mathematical theory known
as Dynamic Field Theory (Erlhagen and Schöner, 2002). The whole library
is based on the Intel® Integrated Performance Primitives libraries for
Intel® Architectures. The main reason for using IPP was to improve the
speed of all the convolutions required in this approach.
-*-
----------------------------- Requirements ---------------------------------
- libconfig++ (Necessary):
http://www.hyperrealm.com/libconfig/
All the parameters for fields and kernels, as
well as the connections between fields in a specific network
are passed using configuration files based on 'libconfig++'.
- Qt-4.7+ (Optional):
http://qt.nokia.com/downloads/downloads#qt-lib
Qt is necessary only if you want to use the
graphical interface for working with dynamic fields.
- OpenGL (Optional): But necessary if working with the GUI.
-*-
-------------------------------- Contents ----------------------------------
- README.txt This file.
- Doxyfile Source file to create the documentation for this libraries.
- include:
- lnx32: Linux 32bit version of headers for all libraries.
Tested with Ubuntu 11.04, kernel 2.6.38-10
- lnx64: Linux 64bit version of headers for all libraries.
Tested with Ubuntu 11.04, kernel 2.6.38-10
- mac64: MacOS 64bit version of headers for all libraries.
- tester:
- CMakeLists.txt: Configuration file for CMake
- mainTest.cpp: Compilation of tests for DFT
- confFiles: Folder containing examples of configuration
files for working with the badDFT2 library.
- libs:
- lnx32: Linux 32bit version of all libraries.
Tested with Ubuntu 11.04, kernel 2.6.38-10
- lnx64: Linux 64bit version of all libraries.
Tested with Ubuntu 11.04, kernel 2.6.38-10
- mac64: MacOS 64bit version of all libraries.
-----------------------------------------------------
badGUI Binary for the graphical user interface.
libbadDFT2.xx Dynamic Field C++ library (Release version)
libbadDFT2_d.xx Dynamic Field C++ library (Debug version)
libbadTools.xx Math tools used in DFT (Release version)
libbadTools_d.xx Math tools used in DFT (Debug version)
libbadIPP.xx IPP functions (Non-threaded version)
libbadIPP_t.xx IPP functions (Threaded version)
libimf.xx libsvml.xx libintlc.xx libiomp5.xx (Intel core libraries)
-*-
-------------------------------- How to use --------------------------------
- tester: Assuming you have CMake:
> mkdir build
Be sure that LINK_DIRECTORIES( ${BAD_LIBS}/libs ) inside
CMakeLists.txt points to the right location of badDFT2,
badTools and badIPP(_t)
> cd build
> cmake ..
> make
> ./badTest [verbose]
> [select one of the options presented...]
If using 'verbose' several text files will be created
depending on the selection of the configuration file.
- badGUI: Be sure to have all Qt and OpenGL libraries installed before
running this binary. It is also important to include the
path to the previous libraries in $LD_LIBRARY_PATH (Linux)
or in $DYLD_LIBRARY_PATH (MacOS).
==>> This GUI has still a lot of work to be done, and a lot of
bugs to be fixed. Any help would be very much appreciated.
Sources to this GUI can be downloaded from this repository:
svn co https://badgui2.svn.sourceforge.net/svnroot/badgui2 badgui2
You could start testing the GUI using the same configuration
files from the ../tester/confFiles folder. Once you chose a
configuration file you'll have the network representing that
file in the center of the GUI.
- Double click into any object to access a dialog with it's
parameters and modified them if necessary.
- Add an Input object and connect it to a field.
- A double click on the Input will let you see a dialog for
modifying the parameters of a stimulus depending on the
dimensionality of the fields to which the inputs are
connected.
- Pushing the Play button in the main window will start the
simulation which contains the activations of the fields
created in the network.
- Modifying the input (gain, position or width) should have
a real-time effect on the activations of the fields.
- You can pause and reset the activation of the fields with
the buttons in the main window.
-*-
---------------------------------- TODO ----------------------------------
==>> So far it is possible to create networks of 1D, 2D and 3D
fields, 1D- connected to 2D-fields and vice versa but not
3D- to lower dimensional fields.
==>> Modification of parameters in running time.
==>> Selection of external stimuli (robots)
==>> Sequences
Help with developing the GUI, comments and suggestions will be very
welcome. Please send them to boris.duran@his.se or directly through the
SourceForge page of the GUI:
http://sourceforge.net/projects/badgui2/
Enjoy!
Boris Duran
boris.duran@his.se