[Pkg-exppsy-maintainers] PyEPL: Let's move on
Michael Hanke
michael.hanke at gmail.com
Mon Apr 21 09:21:08 UTC 2008
Hi folks,
I just looked into the PyEPL git and saw, that there is no activity
since Jan. If I got it right this should be the main repository now. Or
is there more up-to-date code somewhere else?
In any case, I'd like to proceed with the development. When we last
talked back in October, we basically agreed that PyEPL should become a
lot more modular. Since then I talked with a number of people from
different labs and the message is basically always the same:
{eprime,presentation} should be replaced by something reasonable. Some
people even thought about starting a new thing.
I hope that we do not need something new, but can take PyEPL in its
current shape and use it as a starting point to develop something that
scratches all itches.
I have a few basic requirements for such a softwarei, besides the stuff
that PyEPL already can do. I'm going to list them here and maybe we can
collect a list of problems PyEPL has to solve, so we all know what we
need to develop. Here is my part:
Problem 1: Need to run experiments on Windows.
I'd love to switch the relevant machines to Linux, but they are not under
my control. Moreover, I guess there are plenty of reasons why people want
to use Windows. Especially for those switching from Win/Presentation to
PyEPL the transition will be a lot easier, if they change one piece
at a time. But even if I need to finally run experiments on win, I still
want to develop stuff on my linux desktop (to stay on save ground for
as long as possible).
Proposed solution 1:
We should provide a binary installer for win32, that comes with
everything that is required (perhaps without python itself). To give
people the experience they expect on Windows
(click-click-next-next-next-finish) ;-)
Problem 2: Timing
People always ask about timing first. Although a lot of experiments
do not have strong requirements about timing -- everybody want to
have the best possible timing.
Proposed solution 2:
We should have a test battery that tells people how accurate their
timing is. Most likely this requires some extra hardware, but we
still should provide that code. Moreover, we should start collecting
data about timing quantification on several platforms (linux kernels
and configurations, win, mac (different versions), maybe also video
card vendors and driver situation). Basically covering all the first
five minute questions everybody will ask.
Problem 3: External IO interfaces
PyEPL should be able to talk with some IO hardware, eg to catch TTL
trigger signals or talk to stuff via network (eg. eye-tracking
devices).
Proposed solution 2:
Most likely there is no truely generic way to implement all external IO.
So maybe each platform has to have its own. Additionally we should
evaluate stuff like pylink
(http://www.eyelinkinfo.com/mount_software.php#Python) which might
take away some pain when doing complex interfacing.
For fMRI, we should probably have an fMRITrack that can be configured
to catch a variety of trigger signals, properly logs them and can be
used to trigger some actions(eg. do this trial when you get the 52
pulse...).
Problem 3: Stimulus generation
In comparison to VisionEgg, PyEPL is quite poor when it comes to
stimulus generation (although VisionEgg is probably a little dead
right now ;-). However, I know that it is possible. I used direct
drawing on the pygame surfaces in the past, but this does not seem to
be officially supported, as I had to dig deep into PyEPL to figure
out how to use it.
If you look at
http://www.neurobs.com/nbs_online/presentation/visgen_toolkit
others consider this useful as well ;-) Not to mention the
PsychToolbox... Which I guess is actually the one system we should
aim to replace, as EPrime and Presentation are crap by design.
Proposed solution:
Provide a nice 'official' interface to dock the wealth of python
packages dealing with graphics into PyEPL. And of course a little
library of standard stimuli, maybe we can steal most of them from
visionegg.
So far for now. I hope we can compile/discuss the full list in the near future.
To really start developing I think it might be best, if someone familiar
with the whole codebase (Per?) identifies the PyEPL core, creates a
branch in git and strips the core from all (optional) modules, deps and
heritage, with the goal to make it easier for people like me to grasp
the inner structure of PyEPL and hopefully come up with a more modular
design.
Cheers,
Michael
--
GPG key: 1024D/3144BE0F Michael Hanke
http://apsy.gse.uni-magdeburg.de/hanke
ICQ: 48230050
More information about the Pkg-exppsy-maintainers
mailing list