A Library For Rapid Experiment Development
Alfred's modular construction system offers several pre-implemented components covering a wide range of functionality. Even experimenters with sparse programming knowledge can create comprehensive experiments by relying on the components Alfred is shipped with. Also, Python code is very easy to read and suited for newbie programmers as well as advanced users.
Instead of clicking through a cumbersome user interface, Alfred experiments are created by writing a regular python script. Together with Alfred's modular structure this script-based approach enables experimenters to rapidly create new experiments by reusing code from existing experiments. Writing regular python code also allows the use of loops and other control flow statements that facilitate experiment creation.
Alfred experiments can either run on a server as web application or as a local python application. While web applications allow for a wide distribution of experiments python applications offer access to local ressources and can run regardless of network connectivity. Most importantly, both experiment types use identical python objects that can be easily customized to meet experimenters' requirements.
With Alfred, experimenters can not only dynamically show or hide experiment components depending on participant input by applying simple filter rules. They can also execute custom python code before and after user interaction phases. Within these custom code blocks experimenters can access any participant input which allows for dynamic generation of content in response to user input.
The modular class structure of the Alfred framework allows advanced experimenters to easily create custom components. By deriving new custom classes from any existing component they have the freedom to decide which code they want to keep and which code they want to change. This way experimenters can build on existing code and do not need to create new components from scratch.
Since the Alfred framework is shipped as a python package and alfred experiments are written in regular python code, experimenters can use the full power of Python when creating experiments. Among other things this includes using the comprehensive python standard library, any third party packages for python and regular C libraries through the ctypes module.