Filter by Supported Igor version:
Login or register to modify the filter.

Packages include individual Igor procedure files or collections of Igor procedure files that are related, as well as external operations (XOPs). To browse ALL projects (including those that have not been officially released) click on the Advanced Browse link above.


A tool that can autocomplete commands typing

Last changed: 1 year 15 weeks ago

Autocompletion is very common in a real programming language IDE, such as VS, but it is a pity that IGOR Pro does not support this. Therefore, I have written a tool to do autocomplete in IGOR Pro.
The Package includes two files: Autocomplete_JXW.ipf, datacache.dat, the first is the procedure file, the second is a database file, contains function/operation name and a brief description of it.

How to use:

1 open Autocomplete_JXW.ipf and compile it,


Automated Cell Tracker

Last changed: 6 years 16 weeks ago

This program will automatically track a user defined object (cells) through a stack of images and output the X and Y pixel coordinates of the object, as well as the distance moved and velocity for each frame of the movie. Two zip files are provided (click "View all releases" to see and download them both). The zip file "Automated Cell tracker" contains three files: Cell Tracker.pxp, CTIPN.ipf and Cell Tracker Instructions.ihf. Before you open the .pxp file, place the .ipf file under the User Procedures file folder and the .ihf file under the Igor Help Files folder.


Coding Conventions

Last changed: 2 years 14 weeks ago

Coding conventions and best practices for Igor Pro development.

Completely unofficial and authored by me.


Doxygen filter for procedure files

Last changed: 32 weeks 6 days ago

This project here is a proof of concept implementation in AWK of an filter which translates procedure files into C-ish output for doxygen consumption. Works with breathe and sphinx as well.

Requires GNU AWK. Available for windows here.

Supported Features
  • Functions, including parameter type resolution, call-by-reference recognition and optional parameters
  • Constants
  • Macros
  1. Comment procedure files using doxygen commands

Easy Multithreading

Last changed: 8 years 15 weeks ago

This project contains a library of functions designed to make multithreading in Igor easy. Furthermore, it allow you to use your existing functions, with little or no modification, in multithreaded data analysis, greatly increasing throughput.

IGOR.6.20.x-1.x-dev2010-Mar-08Development snapshot for Igor 6.20.x and aboveHelp

Generic Window Hook

Last changed: 7 years 15 weeks ago

GenericWindowHook.ipf provides
1) a generic window hook function that monitors events, GenericWinHook(), and
2) an installer function, InstallGenericWinHook(), that sets up an exterior panel (dubbed here the "event panel") to show all monitored events.

- Works for any window that can receive events (Graphs, Tables, Layouts, Panels, Notebooks).
- You can simply use the event panel to examine what really happens to your window while developing your own hook function.
- You can also use the GenericWinHook() code as a starting point for own your hook function.



Graphical User Interface Procedures/General Utilities for Igor Programmers

Last changed: 4 years 34 weeks ago

A collection of utilties for user interface widgets (TabControls, SetVariables, PopMenus, window sizing, etc.) plus some other general utilities for Igor programming.

IGOR.5.05.x-0.x-dev2013-Oct-22Development snapshot for Igor 5.05.x and aboveHelp


Last changed: 4 years 8 weeks ago

IgorCL is an external operation for Igor Pro that allows you to perform calculations on your computer's CPU or GPU using OpenCL. OpenCL is a software framework that provides a uniform way to perform computation on heterogeneous devices. The authoritative source on OpenCL is the official website,, and particularly the OpenCL specification.


Interactive Dartboard

Last changed: 9 years 17 weeks ago

The "interactive dartboard" presents a clickable dartboard to the user. The package is intended to illustrate some programming techniques for writing graphical user interfaces: drawing calculated polygons, using Igor's coordinate systems, using "package" data folders, providing visual and sound feedback in response to user clicks by dint of a hook function.



Last changed: 50 weeks 5 days ago

iPhys is a dual image analysis / electrophysiology acquisition and analysis suite. Readable formats include TIFF image files, text data files and iPhys generated data files. The software was developed with increased automation of basic procedures in mind. For example, the user doesn't need to specify a file name for saving acquisition files, as they are automatically saved into the working directory. The user enjoys an extensive graphical interface with sticky windows (making dragging multiple windows easy), easy to activate and close plots and one click generated complex analysis modules.



Last changed: 3 years 26 weeks ago

Generate chemical reaction systems, convert them into integrateODE form, and run the model.


Link Display

Last changed: 7 years 36 weeks ago


This package provides commands for intuitive display of waves that are in (ywave,xwave) sets.


MATLAB Functions

Last changed: 7 years 45 weeks ago

The biggest barrier to Igor adoption is usually knowledge of another environment's language. One of these is MATLAB. If a MATLAB users sits down to write Igor code, sometimes they have a hard time figuring out what the equivalent function in Igor is the function they know in MATLAB. And even if they find that function, if they haven't programmed in Igor, they might get stuck on the syntax.

IGOR.6.20.x-0.x-dev2010-Aug-05Development snapshot for Igor 6.20.x and aboveHelp

Multiple file loader front end

Last changed: 8 years 13 weeks ago

A small panel is presented to the user for loading multiple files into an Igor experiment. This panel gives the user the ability to navigate to the disk folder containing files to load. A listbox is then updated to show a list of files in that folder. The shift key can be used to define contiguous groups of files and the control key (Win) or command key (Mac) can be used to select and deselect individual files in the listbox. Finally a button "GetFiles" is used to end file selection and initiate further code exection. The panel code stores its waves in its own subfolder.


Package Tools

Last changed: 6 years 29 weeks ago


This package is to provide a standardized way for developers to manage packages that they distribute to others.


Project Updater

Last changed: 3 weeks 11 hours ago

Provides a way to keep procedure files in sync with releases on IgorExchange. This is not a package manager for multi-file projects, just a way to keep individual procedure files updated as new versions are released.


SBIG Camera Driver

Last changed: 10 years 22 weeks ago

This package is an XOP which enables Igor Pro to control and take images with Santa Barbara Instruments Group (SBIG) cameras through SBIG's low-level driver routines. With it, you can write Igor Pro functions to script the behavior of an SBIG camera for whatever application you may have. The package includes the XOP, a help file, a user's manual, and a sample experiment that uses the XOP to implement a simple point-and-click panel for a camera. (See the picture.) The XOP is in Universal Binary format for Macintosh OS-X.



Last changed: 4 years 49 weeks ago

Schroedinger_SOLVER is an IGOR PRO procedure that integrates numerically the Schroedinger equation with the NUMEROV method to obtain the time-independent -or stationary- solutions, for any given 1-D potential. The solver assumes boundary conditions in which the wave function is zero at both extremes of the space domain (coordinate x). In practice this means that the potential is assumed to be infinite at xmin and xmax. Therefore, for the moment the code is not prepared for solving, for example, the Coulomb potential.


Screen Sizer

Last changed: 7 years 36 weeks ago

This module will generate a set of globals containing the current screen size in pixels and points. It also contains functions to move, shift, or size any type of window or set of window types/kinds using percentage of screen/frame values.


Synchronized Windows

Last changed: 7 years 14 weeks ago

Igor supports exterior panels that stick to the target window, but only for graphs and panels.
SyncWin extends this idea to any pair of target windows (also tables, layouts, notebooks).
To use, create two windows and install the link between them using SyncWinInstall().
The following examples are also given in the procedure file.

Example 1:

string myGraph = "MyOtherGraph"
Display /N=$myGraph /W=(300,90,500,190)
Display /N=MyFirstGraph /W=(350,100,550,200)

Example 2:

string myPanel = "Panel0", myTable = "Table0"

Syntax Highlighting in VIM

Last changed: 30 weeks 5 days ago

Based on the work of Peter Li,, I completely revised the syntax highlighting for Igor Pro procedures in Vim.

Install into a folder read by gvim and add the following code to vimrc

" add filetype detection for Igor Pro procedure files
au BufNewFile,BufRead *.ipf set filetype=igorpro
" Honour user settings for colors or use the default igor pro colors
" let igorpro_default_colors = 1
" If you want to use folding, activate it with
" set foldmethod=syntax



Last changed: 10 years 7 weeks ago

A package that makes adding extensive functionality to tab controls easy.

NOTE: I haven't finished the ACL_Tab Control Utility.ihf help file yet. However, using the package is fairly simple. Just follow these steps:

  1. Open both of the included procedure files (TabControl and UserdataEditor) in your Igor Pro experiment. These procedures require Igor Pro 6.01 or greater.
  2. Create a panel with a tab control and add your controls to it.
  3. VersionDateLinksStatus
    IGOR.6.01.x-1.0.x-dev2008-Apr-28Development snapshot for Igor 6.01.x and aboveHelp

ThreadSafeUtils XOP

Last changed: 5 years 31 weeks ago

ThreadSafeUtils is an XOP adding two utility functions for threadsafe programming.


executes userFunction and returns its string if running in the main thread and an empty string otherwise. This converts the compile-time threadsafe check of Igor procedures into a runtime check.


userFunction must be a function returning a string and accepting no parameters. Although allowed it does not make sense that userFunction is threadsafe, because in that case userFunction is also usable with runtime checks for thread safety.


Unit Testing Framework

Last changed: 1 year 12 weeks ago

This project aims at providing a complete set of tools for programmers for writing and maintaining unit tests.

  • Runs on Windows and MacOSX
  • Completely documented and with lots of examples
  • Includes more than ten test assertions coming in three versions
  • Allows for the arbitrary grouping of test cases
  • Easily expandable and adaptable
  • Support for executing test suites from the command line
Planned features (open for collaboration):
  • Threadsafe test assertions
  • Igor Pro help file documentation

XML Note Tools

Last changed: 9 years 49 weeks ago

This package provides a set of commands that allow one to output text in XML format to the history, a text string, a wave note, or a notebook. It also provides a panel that allows easy XML formatting into a notebook.



Last changed: 4 years 29 weeks ago

This project shows how to call C# (.NET) code from an Igor XOP


Back to top