Red Tweezers: Fast, customisable hologram generation for optical tweezers ?
Holographic Optical Tweezers (HOT) are a versatile way of manipulating microscopic particles in 3D. However, their ease of use has been hampered by the computational load of calculating the holograms, resulting in an unresponsive system. We present a program for generating these holograms on a consumer Graphics Processing Unit (GPU), coupled to an easy-to-use interface in LabVIEW (National Instruments). This enables a HOT system to be set up without writing any additional code, as well as providing a platform enabling the fast generation of other holograms. The GPU engine calculates holograms over 300 times faster than the same algorithm running on a quad core CPU. The hologram algorithm can be altered on-the-fly without recompiling the program, allowing it to be used to control Spatial Light Modulators in any situation where the hologram can be calculated in a single pass. The interface has also been rewritten to take advantage of new features in LabVIEW 2010. It is designed to be easily modified and extended to integrate with hardware other than our own. Program title: Red Tweezers. Catalogue identifier: AEQH_v1_0. Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEQH_v1_0.html. Program obtainable from: CPC Program Library, Queens University, Belfast, N. Ireland. Licensing provisions: GNU General Public License. No. of lines in distributed program, including test data, etc.: 79147. No. of bytes in distributed program, including test data, etc.: 11130332. Distribution format: tar.gz. Programming language: LabVIEW 2010, C++, OpenGL Shader Language. Computer: Intel-based personal computer, nVidia or AMD graphics card supporting OpenGL 2.4. Operating system: Microsoft Windows XP or later. Has the code been vectorised or parallelised?: Designed for GPUs. RAM: 2 Gb (highly dependent on video camera). Classification: 18. External routines: OpenGL, National Instruments Vision Development Module. Nature of problem: This program controls a holographic optical tweezers instrument, including GPU-accelerated rendering of holograms, monitoring the video feed and presenting a user-friendly interface to manipulate particles. Solution method: An extendable LabVIEW user interface, including a plugin architecture, is implemented to provide user-friendly control. The program also contains a component that accelerates the necessary digital holography step by rendering patterns using OpenGL shaders. Restrictions: The rendering engine is single-pass, i.e. iterative Fourier transform algorithms are not accelerated on the graphics card. Additional comments: The rendering engine is a separately-compiled executable controlled via UDP and can be used for other purposes. It allows simple OpenGL shaders to be used to render functions, without writing boilerplate code. Running time: This instrument control program is intended to run for as long as the experiment requires, over days if necessary. It can be re-started without losing most of its state information.
hologram optical tweezers labview spatial light modulator opengl gpgpu microscopy