The Movement Limitation script can be found in ExampleScripts and shows how to place a proximity sensor inside of a large space that uses the head position as a target in order to not allow a user past a certain point. When the user enters the sensor they are automatically pushed back by one meter.
importsightlab_utils.sightlabasslfromsightlab_utils.settingsimport*sightlab=sl.SightLab(gui=False)env=vizfx.addChild("sightlab_resources/example_resources/lab_collision.osgb")env.collidePlane()sightlab.setEnvironment(env)transportNode=vizconnect.getTransport('main_transport').getNode3d()importvizproximitymanager=vizproximity.Manager()# Add main viewpoint as proximity targettarget=vizproximity.Target(viz.MainView)manager.addTarget(target)collideBox=env.getChild('collideBox')hallwaySensor=vizproximity.addBoundingBoxSensor(collideBox)manager.addSensor(hallwaySensor)manager.setDebug(viz.ON)defpushBack(e):print('pushed back')newPosition=[0,0.0,-1]transportNode.setPosition(newPosition)manager.onEnter(hallwaySensor,pushBack)defsightLabExperiment():whileTrue:yieldviztask.waitKeyDown(' ')yieldsightlab.startTrial()yieldviztask.waitKeyDown(' ')yieldsightlab.endTrial()viztask.schedule(sightlab.runExperiment)viztask.schedule(sightLabExperiment)viz.callback(viz.getEventID('ResetPosition'),sightlab.resetViewPoint)