Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeqh_v1_0.tar.gz(11448 Kbytes)
Manuscript Title: "Red Tweezers:" fast, customisable hologram generation for optical tweezers
Authors: Richard W. Bowman, Graham M. Gibson, Anna Linnenberger, David B. Phillips, James A. Grieve, David M. Carberry, Steven Serati, Mervyn J. Miles, Miles J. Padgett
Program title: Red Tweezers
Catalogue identifier: AEQH_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 185(2014)268
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 parallelized?: Designed for GPUs
RAM: 2 Gb (highly dependent on video camera)
Keywords: Optical Tweezers, Hologram, OpenGL, GPGPU, Spatial Light Modulator, LabVIEW, Microscopy.
PACS: 87.80.Cc, 42.40.Jv.
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.

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 required. It can be re-started without losing most of its state information.