Szécsi László, Kacsó Ágota, Zeck Günther, Hantz Péter
Computer Graphics Research Group, Budapest University of Technology and Economics, Budapest, Hungary.
Neurochip Research Group, Natural and Medical Sciences Institute at the University of Tübingen, Reutlingen, Germany.
Front Neuroinform. 2017 Dec 13;11:70. doi: 10.3389/fninf.2017.00070. eCollection 2017.
Light stimulation with precise and complex spatial and temporal modulation is demanded by a series of research fields like visual neuroscience, optogenetics, ophthalmology, and visual psychophysics. We developed a user-friendly and flexible stimulus generating framework (GEARS GPU-based Eye And Retina Stimulation Software), which offers access to GPU computing power, and allows interactive modification of stimulus parameters during experiments. Furthermore, it has built-in support for driving external equipment, as well as for synchronization tasks, via USB ports. The use of GEARS does not require elaborate programming skills. The necessary scripting is visually aided by an intuitive interface, while the details of the underlying software and hardware components remain hidden. Internally, the software is a C++/Python hybrid using OpenGL graphics. Computations are performed on the GPU, and are defined in the GLSL shading language. However, all GPU settings, including the GPU shader programs, are automatically generated by GEARS. This is configured through a method encountered in game programming, which allows high flexibility: stimuli are straightforwardly composed using a broad library of basic components. Stimulus rendering is implemented solely in C++, therefore intermediary libraries for interfacing could be omitted. This enables the program to perform computationally demanding tasks like en-masse random number generation or real-time image processing by local and global operations.
视觉神经科学、光遗传学、眼科和视觉心理物理学等一系列研究领域都需要具有精确且复杂的空间和时间调制的光刺激。我们开发了一个用户友好且灵活的刺激生成框架(基于GPU的眼睛和视网膜刺激软件GEARS),该框架可利用GPU计算能力,并允许在实验过程中交互式修改刺激参数。此外,它还内置了通过USB端口驱动外部设备以及进行同步任务的支持。使用GEARS不需要复杂的编程技能。必要的脚本编写由直观的界面提供可视化辅助,而底层软件和硬件组件的细节则隐藏起来。在内部,该软件是使用OpenGL图形的C++/Python混合体。计算在GPU上执行,并使用GLSL着色语言定义。然而,所有GPU设置,包括GPU着色器程序,均由GEARS自动生成。这是通过游戏编程中遇到的一种方法进行配置的,该方法具有很高的灵活性:刺激是使用广泛的基本组件库直接组成的。刺激渲染仅用C++实现,因此可以省略用于接口的中间库。这使程序能够执行计算要求高的任务,如通过局部和全局操作进行大量随机数生成或实时图像处理。