[visionegg] Vision Egg 0.9.9 released
- From: Andrew Straw <andrew.straw@xxxxxxxxxxxxxxx>
- To: visionegg@xxxxxxxxxxxxx
- Date: Fri, 19 Sep 2003 20:04:49 +0930
The Vision Egg 0.9.9 is here!
There are several major improvements. (The few changes that may break
old code are detailed in the release notes included in this email).
There is nothing more I intend to add before I release Version 1.0 --
this is a release candidate subject to final testing and bug fixing, so
I would appreciate all the abuse you can put it through. In particular,
test/conform.py runs many tests on your system and reports the output.
Changes for 0.9.9
=================
Screen.put_pixels() method for "blitting" of raw pixel data
Support for QuickTime movies (currently Mac OS X only)
Redesign of type check system for accuracy and clarity
TrueType font rendering with SDL_ttf2
Textures with alpha--bugfixes and examples
Positioning of viewports and 2D stimuli can use relative positioning
anchors
Now requires Python 2.2 -- new style classes used to restrict attribute
acccess
Now requires pygame 1.5
Renamed timing_func() to time_func()
EPhysGUI saves absolute time a trial was started (to recontruct all
stimuli)
Allow use of pygame Surfaces as source of texture data
Mipmaps of sphere-mapped sinusoidal grating to prevent spatial aliasing
De-emphasis on Presentation and Controller classes (moved to
FlowControl module)
Changed orientations such that 0 degrees is right and 90 degrees is up.
Bugfix in SphereMap module -- gaussian formula produced windows too
wide by 2/sqrt(2)
Allow conversion of 3D vertices into 2D screen coordinates
Added wireframe azimuth/elevation grid with text labels
Allow arbitrary orientation of textures and text with angle parameter
FrameTimer class now available for use in your own main loops
Use Python 2.3 logging module (copy included for use with Python 2.2)
No installation of demos or documentation (get source or demo package)
Many small enhancements and bugfixes
New tests:
high-voltage regulation test for displays (Brainard et al., 2002)
incomplete DC restoration test for displays (Brainard et al., 2002)
unit-test suite: among many other things, pixel accuracy of textures
New demos:
mpeg.py plays MPEG movies (currently seeking a free movie to include)
quicktime.py plays QuickTime movies (currently Mac OS X only)
convert3d_to_2d.py converts 3D positions to 2D positions
dots_simple_loop.py uses own loop rather than Presentation class
makeMovie2.py makes a movie with get_framebuffer_as_image() function
mouse_gabor_2d.py shows a gabor wavelet under mouse and keyboard control
mouse_gabor_perspective.py is sphereGratingWindowed.py improved and
renamed
mouseTarget_user_loop.py uses own loop rather than Presentation class
multi_stim.py shows many stimuli at once
Release notes
=============
There are only a few non-backwards compatible changes. Here is a
detailed description. Most of the demos released with 0.9.4 run fine
as-is. With this information, the few demos that break should be
straightforward to fix.
0) Python 2.2 required. (2.3 works great, too.)
1) Better error checking.
Some things will generate errors now that never used to. For example,
if you try to assign "grating.contrast = 1.0" instead of
"grating.parameters.contrast = 1.0", you will now get an error.
Previously, this didn't generate an error, but it would cause confusion
because contrast was not modified. (You can also now do
"grating.set(contrast=1.0)", which will also perform type-checking.)
2) Redesign of the type-checking system.
If you've subclassed the Stimulus class for your own stimuli, you'll
need to update the parameter definitions. See any of the Stimulus
subclasses in the source code for examples
If you have controllers which specify the return_type parameter, you'll
need to update this return type so that it's an instance of
ParameterTypeDef in ve_types (VisionEgg.ParameterTypes). The simplest
way to do this is call ve_types.get_type(some_value).
3) Use of conventional definitions for direction.
Directions and orientations are now specified such that 0 degrees is
right and 90 degrees is up.
4) Bugfix of 3D Gaussian Window width.
The wrong formula was used in VisionEgg.SphereMap.SphereWindow when
calculated gaussian windows. Sigma was actually sqrt(2)/2 times the
radius parameter. This bug did not affect the 2D gaussian window.
5) Use Python logging system.
This doesn't actually break backwards compatibility, but to see the
logs that your script generates, you must add the following to the
beginning of your scripts. (You could also set the environment or
configuration file variable VISIONEGG_ALWAYS_START_LOGGING.)
import VisionEgg
VisionEgg.start_default_logging(); VisionEgg.watch_exceptions()
Other related posts:
- » [visionegg] Vision Egg 0.9.9 released