ChainLink Feature Overview

ChainLink Home

2D Plotting (Qwt)

Curves, markers, bars
Arbitrary colors, line styles, thickness
Axis labels, arbitrary fonts, log scale

3D Plotting

Surface plots (QwtPlot3D)
3D curves (libQGLViewer)
3D shapes (libQGLViewer)

Qt Widgets

QBoxLayout, QGridLayout, QLabel, QLineEdit, QPushButton, QSlider, QSplitter, QTabWidget, QTextBrowser, QWidget (generic), QMessageBox, ...

GUI development

Create dialog boxes with Qt components using matlab syntax
Handle user actions (signals) using callbacks within ChainLink scripts
See and

Image processing

Read and write image files
Manipulate image pixels within scripts
See qimage_library and

File I/O

fopen, fclose, fread, fwrite,
fgets, fputs, fseek


Robust syntax parser
Plugin library system

User interface

Built-in Script Editor
Built-in source code editor for plugin libraries
Syntax highlighting
Command history
Keyword completion
Auto-generated help system
Real-time function help
Error log
File browser
Variable browser
Library/function browser
'Stop' button


Real and complex numbers
Basic math and trig functions
Fourier transform (FFTW)
Vector, matrix operations
Multi-dimensional array operations
Random number generation (uniform, gaussian)
Basic statistics

And much more ...

ChainLink Scripts

>> edit [script_name] 

from within the ChainLink console. 

function [output_args] = function_name(input_args)

where function_name must coincide with the file name.