GithubHelp home page GithubHelp logo

martinpersson / hotlab Goto Github PK

View Code? Open in Web Editor NEW
13.0 4.0 8.0 154.59 MB

Software package for holographic optical trapping (HOT) released under GPL and LGPL. Requires a CUDA compatible GPU and LabVIEW

Home Page: http://www.physics.gu.se/biophotonics/Our_research/HOT

C++ 16.52% C 15.24% Cuda 55.79% HTML 12.46%

hotlab's Introduction

HOTlab - free and open source software for Holographic Optical Tweezers (HOT)

The project consists of two parts: 
1. GenerateHologramCUDA.dll - a dll written in C for CUDA which generates holograms on CUDA suported GPUs.
2. Martins HOT interface - a GUI program for HOT applications written in LabVIEW. 

NOTE: Martins HOT interface is temporarily removed due to a major overhaul of the software. 

A quick start guide for the LabVIEW program is located in the "doc" folder along with a detailed description of GenerateHologramCUDA.dll
The dll is licensed under LGPL and the LabVIEW programs under GPL.

The program requires CUDA to be installed and of course a CUDA enabled GPU. Functionaliy has been verified on the following GPUs from Nvidia: 

GeForce GTX 285
GeForce GTX 480
GeForce GTX 580
GeForce GTX 680
Geforce GS 8600M (Notebook)
Quadro FX 5600
GeForce GT 210

The main program, called "Martins HOT interface.vi", is located in the LabVIEW folder along with "GenerateHologramCUDA.dll". GenerateHologramCUDA.dll can be compiled for use with SLM:s connected to a PCI or PCIe interface or for use with no SLM installed. By default, the LabVIEW program links to the dll compiled for PCIe based SLMs. To change to another version, just copy and replace GenerateHologramCUDA.dll with the dll located in  \GenerateHologramCUDA_dll\SM[XX]_[YYYY]SLM. [XX] indicates which "Compute capability" the dll is optimized for and [YYYY] indicates the type of SLM interface. To determine the compute capability of your GPU, check http://developer.nvidia.com/cuda-gpus 

The LabVIEW program acquires and displays microscope images in which traps can be positioned and controlled directly. This requires NI Vision Acquisition software to be installed along with a camera connected with firewire, GigE or Camera Link. 

Functions for particle tracking are included but requires the NI Vision Development Module to be installed. Those functions are therefore disabled by default. 


To use the dll compiled for use with a BNS SLM, Microsoft Visual C++ 2008 SP1 Redistributable Package may have to be installed. The Redistributable Package can be downloaded from Microsoft:
http://www.microsoft.com/download/en/details.aspx?id=5582&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_121LSUS007998


Instructions for compilation and use of the GenerateHologramCUDA dll:

To compile CUDA project:
-Install Visual Studio 2008
-Install CUDA toolkit and CUDA SDK (the included dll:s are compiled for CUDA 3.2 and CUDA 4.0RC2)
-Download and run the CUDA VS Wizard (http://sourceforge.net/projects/cudavswizard/files/)

To compile dll for SLM communication:
-Right click LoadHologram.cpp and select "Exclude from project" (if included).
-Select "add/existing item".
-navigate to the "LoadHologramPCIe" or "LoadHologramPCI" folder (depending on your hardware) and select "LoadHologram.cpp".
-Rebuild solution

To run dll with SLM enabled:
-Put PCIEboard.dll and wdapi900.dll in system32 folder (or add other location to environment variables (?)) . For the PCI version, put Bnsboard.dll, 512Aboard.dll and 256Aboard.dll in the system32 folder.
-Put LUT file for the SLM in the same folder as GenerateHologramCUDA.dll.

hotlab's People

Contributors

martinpersson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.