Questions
- What is ActiveSTIM?
- Why would I use ActiveSTIM?
- How can I implement my stimulus?
- What are the hardware requirements?
- What is the temporal accuracy of stimulus presentation?
- What books do I need to read to be able to deal with ActiveX connections?
- Can I implement a behavioral paradigm that collects subject's responses through button presses?
- Can I measure response times accurately?
- How difficult is it to program control over ActiveSTIM?
- What is the limitation of the amount of bitmap files that ActiveSTIM can handle?
- How large/complex stimuli can ActiveSTIM cope with without skipping the screen frames?
- How well is ActiveSTIM tested and debugged?
- Which graphic modes does ActiveSTIM support?
- Can ActiveSTIM provide calibration of the monitor (i.e., adjusting the luminance of a gray scale of a monitor to a linear gradient)?
- How can I obtain a demo of ActiveSTIM?
- What is the price of ActiveSTIM and how can I purchase it?
Limitations
- Can ActiveSTIM generate bitmap files for the stimuli that I see in the demo?
- Can ActiveSTIM access serial or parallel port, joystick, mouse etc.?
- Can ActiveSTIM present sounds?
- Which features wil be added to ActiveSTIM in the future?
What is ActiveSTIM?
ActiveSTIM is designed to allow researchers in vision and cognitive sciences to produce accurate visual stimulation within a short period of time and with great flexibility. ActiveSTIM offers a unique concept that combines DirectDraw technology for presentation of graphics and ActiveX and National Instruments Digital I/O technologies for flexible and fast communication with other applications and laboratory equipment.
In technical words, ActiveSTIM can be described as the ActiveX-based server for management of precise presentation of bitmap images on the screen and communication through digital I/O board.
Why would I use ActiveSTIM?
ActiveSTIM is flexible, yet simple, concept for visual stimulation. It takes short time to learn how to control ActiveSTIM and how to develop new stimulus/experimental protocols.
ActiveSTIM can be controlled from variety of different programming environments and you might be already familiar with with one of them. Examples are: C++, VisualBasic, Delphi, JavaScript, Matlab, LabView. If you need to develop a complex research application, you have on your disposal all the flexibility of your own programming language.
ActiveSTIM offers high temporal precision and high flexibility for communication with other laboratory equipment through digital I/O boards. ActiveX allows ActiveSTIM to be controlled remotely from another machine on the local area network, including the wireless networks.
How can I implement my stimulus?
You can implement any stimulus that you can design in a form of a sequence of bitmap files. Thus, if you have a mean to prepare the necessary bitmap files, you can produce the stimulus easily. ActiveSTIM will accurately present, hide, move or superimpose the images on the screen. If your stimulus is consisted of a long sequence of bitmap images, ActiveSTIM can treat them as a film. You can run and stop films or change its presentation speed.
What are the hardware requirements?
ActiveSTIM can work on any Windows-based computer and with any graphic card. If you need high communication with other laboratory equipment with high temporal accuracy or you need to collect behavioral responses, you must install one of the Digital IO cards produced by National Instruments. However, the speed with which ActiveSTIM can draw stimuli depends on several factors such as the graphic card, amount of memory, speed of the computer, speed of the data bus. The more demanding stimuli you have the more powerful hardware you will need.
What is the temporal accuracy of stimulus presentation?
The accuracy is the maximum possible, i.e. the accuracy of the screen frames. All the operations and events are time locked to the changes in the screen frames. Consequently, every timing parameter that is supplied to functions of ActiveSTIM is expressed in the frames of the computer screen.
What books do I need to read to be able to deal with ActiveX connections?
Most likely, none!
A demo code that makes ActiveX connection to ActiveSTIM from the progamming language of your choice will be in most cases already provided with the installation of ActiveSTIM.
In addition, the documentation includes a tutorial on how to program ActiveSTIM.
Can I implement a behavioral paradigm that collects subject's responses through button presses?
Yes, but behavioral inputs must enter through a digital I/O board. By using digital I/O board ActiveSTIM achieves very high temporal accuracy for the measurement of response times.
Can I measure response times accurately?
Yes! The precision depends on the mode of use.
The mode with least precision provides the accuracy of around one millisecond.
Another mode, that does not update the screen while waiting for the responses, allows measurement of response times with the accuracy of about 1/100 of a millisecond.
How difficult is it to program control over ActiveSTIM?
We invested significant effort to make the control of ActiveSTIM as simple and intuitive as possible. Here we show an example in a pseudo code that presents a bitmap image and moves it over the screen. The actual syntax will depend on the language that you use to control ActiveSTIM.
Connect(ActiveSTIM) // Make ActiveX connection AStimSet(1024, 768, 8, 100) // set resolution to 1024x768 and 8-bit color depth and 100 Hz refresh rate AStimLoadObject(1, MyBitmapFile) // Load BMP file in memory /* SOME CODE */ AStimShowObject(1, X, Y) AStimMoveObject(1, Direction, Speed, Distance) /* SOME CODE */ Disconnect(AStim) // Release connection
The precise control of time at which stimuli are presented is achieved through scripts and the FRAME parameter that determines the screen frame at which the stimulus even will occur. An example pseudo code follows:
FRAME = 100 AStimNewScript (5) AStimShowObject(1, X, Y, FRAME) // Show & send TTL pulse 100 AstimSendTrigger(FRAME) // 100 frames after starting the script AStimHideObject(1, X, Y, FRAME+200) // Presented for 200 frames AStimEndScript /* SOME CODE */ AStimRunScript (5) // Run script number five
ActiveSTIM also offers the possibility to combine multiple bitmap files into a film. For example, in order to present an alternating checkerboard stimulus one can draw a bitmap file that consists of several frames and treat it as a film. The pseudo code for the stimulus presentation is as follows:
AStimLoadFilm(1, MyCheckerBoard) AstimContinuousMode(1) // Film continuously repeats /* SOME CODE */ ShowFilm(1, X, Y); // Film number 1 is shown
What is the limitation of the amount of bitmap files that ActiveSTIM can handle?
There is virtually no limitation besides the amount of memory on your graphic card and the main memory on your computer.
How large/complex stimuli can ActiveSTIM cope with without skipping the screen frames?
This depends very much on your hardware. If you have a powerful graphic card, large amount of RAM memory and fast data bus, you can present large images and quickly exchange them, without any problems. By using DirectDraw technology ActiveSTIM will make sure that the hardware is used optimally.
How well is ActiveSTIM tested and debugged?
It has been developed and used for several years in the laboratories of the Max-Planck Institute for Brain Research, Frankfurt, Germany. It was used for the studies of the functions of the visual cortex in awake and anaesthetized animals. ActiveSTIM has been also used for studies of human perception and cognition.
Which graphic modes does ActiveSTIM support?
ActiveSTIM supports all the graphic resolutions that are supported by the system. It supports one palletized color depth mode, 8 bit, and two true color modes, 16 and 32 bit.
With newer models of graphic cards, you can set up the refresh rate of the screen directly.
Can ActiveSTIM provide calibration of the monitor (i.e., adjusting the luminance of a gray scale of a monitor to a linear gradient)?
In the palletized mode (8 bit) ActiveSTIM can apply the same palette (i.e., color lookup table) to all the other bitmap files. Thus, it is necessary to measure the luminance of the monitor manually and make a bitmap file with an accordingly adjusted palette.
What is the price of ActiveSTIM and how can I purchase it?
For information on pricing and purchase of ActiveSTIM contact us.
Limitations
Can ActiveSTIM generate bitmap files for the stimuli that I see in the demo?
No. ActiveSTIM does not generate bitmap files or any graphics. You must generate images by other means. ActiveSTIM comes with a C++ source code of a small utility that helps an automatic generation of multiple frames of a film. The program organizes iterations over multiple frames and generation of a number of bitmap files . The user must supply his/her own graphical primitives, i.e., commands that will draw the desired stimulus as a function of the film frame.
We are currently working on developing utilities for automatic generation of bitmap files supporting the most popular stimuli used by the researchers in vision.
Can ActiveSTIM access serial or parallel port, joystick, mouse etc.?
ActiveSTIM does not provide direct access to other peripheral devices. An access to these peripheral devices can be achieved only through the client application that controls ActiveSTIM.
Can ActiveSTIM present sounds?
Not at the moment. If we find sufficient interest, we will apply the ActiveSTIM concept for bitmaps to the presentation of sounds.
Which features wil be added to ActiveSTIM in the future?
Further developments of ActiveSTIM will depend very much on the feedback received from the users.
If you have a suggestion for an additional feature that ActiveSTIM should support, you can inform us and your suggestion will be carefully considered.

