WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #6  
Old 04-29-2010, 11:42 AM
masaki masaki is offline
Member
 
Join Date: Jan 2008
Posts: 63
hi can you try this modified script and see what you get? The modifications are:

- stimulus changing color is not triggered by a random time - you trigger it by hitting the space bar. So essentially, it measures the time interval between two key presses instead of measuring your reaction time.

- there is a timer function that prints the elapsed time between stimulus change and keypress.

- i've added a second viz.Data object called dd and used that one for storing the time data from the second waitkeydown function.

I tested the code with an external stopwatch and seems accurate.

Code:
import viz
viz.go()

import vizinfo
info = vizinfo.add( 'This script uses precisely timed input recording to measure your reaction time.\nPress any key when the color changes to green.\nCan you get under .2 seconds?' )

#Add quad to screen
quad = viz.addTexQuad( viz.SCREEN , pos=(0.5,0.5,0) , scale=(4,4,4) )

#Display time on screen
timeDisplay = viz.addText( 'Time:', viz.SCREEN , pos=(0.1,0.2,0) )

import viztask

import time
starttime = time.time()

stopWatch = False


def TestReactionTime():
    global starttime, stopWatch
    #Data for getting values from wait conditions
    d = viz.Data()
#    dd = viz.Data()
    while True:
        
        #Set quad to red color
        quad.color(viz.RED)
    
        #Wait random amount of time
        yield viztask.waitKeyDown(' ')
        starttime = time.time()
        stopWatch = True
        #Set quad color to green
        quad.color(viz.GREEN)
        
        #Wait for next frame to be drawn to screen
        yield viztask.waitDraw(d)
    
        #Save display time
        displayTime = d.time
        
        #Wait for keyboard reaction
        yield viztask.waitKeyDown(None,d)
        
        #Calculate reaction time
        reactionTime = d.time - displayTime
        
        #Print and display time
        print 'Reaction time:',reactionTime
        timeDisplay.message( 'Time: %.5f' % (reactionTime) )
        stopWatch = False

viztask.schedule( TestReactionTime() ) 

def showTime():
	if stopWatch:
		print time.time() - starttime
vizact.onupdate(-100, showTime)
Best,
Masaki
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
real time collision on animation path whj Vizard 10 10-06-2008 04:38 PM
Real Time Audio Data lomendil Vizard 2 06-02-2008 08:18 PM
Can I get real time Intersense tracking data from another computer on the network? GoldenSun Vizard 4 04-30-2008 07:42 PM
Flagging the Data Elittdogg Vizard 5 04-11-2008 11:40 AM
timer question Elittdogg Vizard 5 10-10-2007 02:49 PM


All times are GMT -7. The time now is 02:36 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC