Here is an avatar stress test script. Sliders control the number of avatars and the update rate.
Code:
import viz
import vizact
viz.go()
MAX_AVATARS = 100
START_COUNT = 10
viz.MainView.setPosition([0, 1.5, -5])
viz.window.framerate(viz.NICE)
#dance beat
music = viz.add('carousel.wav',volume=0.15,loop=1)
music.play()
avatars = []
updateRate = 0
def addAvatar():
a = viz.add('vcc_female.cfg')
a.state(5)
a.setPosition([.5*len(avatars), 0, 0])
a.updaterate(updateRate)
avatars.append(a)
for i in range(START_COUNT):
addAvatar()
def removeAvatar():
avatars.pop().remove()
import vizinfo
info = vizinfo.add('')
avatarSlider = info.add(viz.SLIDER, 'avatar count '+str(START_COUNT))
updateRateSlider = info.add(viz.SLIDER, 'update rate 0 ')
def onAvatarSlider(pos):
targetCount = int(pos * MAX_AVATARS)
avatarSlider.label.message('avatar count: ' + str(targetCount))
countDiff = targetCount - len(avatars)
if countDiff > 0:
#add avatars
for i in range(countDiff):
addAvatar()
else:
#subtract avatars
for i in range(-countDiff):
removeAvatar()
vizact.onslider(avatarSlider, onAvatarSlider)
def setUpdateRate(rate):
global updateRate
updateRate = rate * .2
updateRateSlider.label.message('update rate' + str(round(updateRate, 3)))
for a in avatars:
a.updaterate(updateRate)
vizact.onslider(updateRateSlider, setUpdateRate)