Scripting in Mira: The Pro Script Module

Pro Script provides a rich environment for scripted computation including processing, simulation, and exploitation of images and big data.

In the 1990's we anticipated the trend toward big images and high-dimensionality data arrays as well as the benefits of an object oriented, class-based scripting solution for efficiently working with large images and data arrays. The culmination is our Pro Script™ module which is based on the Lua® programming language which is in many ways similar to the Python language. Scripting is included in for Mira MX x64, Mira Pro x64, and Mira Pro Ultimate Edition platforms. Lua provides a powerful and extensible, yet easy to use platform for general computational needs as well as data processing applications.. The Mira scripting package includes dozens of useful classes and more than 600 methods for object-oriented programming, as well as numerous non-classed functions, many of which connect to Mira's blazingly fast array processing functions for working with images and data. The language can be easily extended using your own code additions, including new classes, methods, and functions, and it readily integrates with a broad selection of 3rd party tools. With Mira scripting, you can develop and implement custom analyses and processing procedures that run at the speed of your machine rather than at the speed of an interpreted language.

Overcoming the Script Performance Bottleneck

How fast should your scripts run? Working with data arrays and images, hard-coded loops are used to repeat operations on large numbers of array elements. Since a script language is interpreted, this creates a significant bottleneck in performance and productivity. As a result, in applications involving large images and big data arrays, scripting languages are notoriously slow in comparison with compiled applications. If you read the Lua literature or follow user groups, you'll read much about Lua's remarkable speed, and that is why we chose it as a scripting engine.

More Information


Mira scripts have access to tools in the Mira GUI but also may be independent of the GUI. Your script might operate on displayed images or plots or it could perform specialized image processing and display the result. Alternatively, a script also can perform computations that do not involve other Mira features. For example, you might setup a customized image processing pipeline that works with images in files. Or you might perform some particular type of filtering or measurement of a displayed image set, then analyze and plot the results. You might even write a simple script that updates the calendar for your class syllabus.

Prototyping and implementing custom image processing solutions has never been easier. Using Mira, you spend less time learning a language and more time analyzing results. With Mira scripts, scientific and technical users with even modest experience in C, C++, Java, Perl, or even Basic will find it surprisingly easy to write scripts that do serious work.

The Mira's scripting module is far more than just a script interpreter supplemented by "toolkit". By extending the Lua programming language with Mira's rich core of advanced image processing tools, Mira makes it both faster and easier for you to get to the bottom line: RESULTS. Lua provides a rich syntax with advanced capabilities that are there if you need them, but not required if you don't. In addition, when used as a scripting language, Lua has been shown to be one of the fastest available.

Mira greatly reduces the learning curve required of competing products, helping scientists and engineers to create powerful, effective software solutions with minimal effort getting "up to speed". All tools provided with Mira are pre-compiled for maximum performance and user scripts are compiled in real time to execute procedures that run at top speed — a huge benefit for mission critical applications and computations involving large images and image sets.

Key Benefits

Mira's scripting facility is designed for scientists and engineers in image processing applications. Mira helps you implement complex procedures with less time learning a language, fewer bugs, and with faster execution than with any competing platform.

  • Mira is designed around the premise that the typical user is trained in a technical field but is not a software engineer. Within minutes of first use, a typical Mira user can be writing scripts that actually do something useful. Never would you think that so much could be done with so little code!
  • Mira implements the Lua language, which is a full-featured programming language. Lua has been shown to be one of the fastest executing script languages available.
  • Scripts access Mira's extensive core of fast, optimized mathematical algorithms and array processing code.
  • Provides outstanding GUI-level interaction between scripts and Mira's rich collection of data processing and visualization tools.
  • Scripts can include code from external packages and extension modules on the fly, drawing from a rapidly expanding collection of commercial and open source tools.
  • Mira accelerates the creation of complex procedures. Scripts compile on the fly and run with minimal processing overhead.
  • Mira is truly feature-rich. In addition to the core capabilities of the Lua language, Mira's scripting module adds dozens of built-in classes and 600 to 1000 functions for processing, displaying, calibrating, and measuring images and other data.
  • Dozens of useful scripts samples are included to get you up to speed. These can be modified and used as templates for your own scripts.

Recommended References

Programming in Lua, Second Edition, ISBN 85-903798-2-5, by Roberto Ierusalimschy. This authoritative guide to the Lua language was written by its principle architect. Disarmingly straightforward and easy to follow, this masterful work is a "must have" for learning the power of the Lua language.

Lua Programming Gems, ISBN 978-85-903798-4-3, ed. Luis Henrique de Figueiredo, Waldemar Celes, and Roberto Ierusalimschy. Numerous experts author chapters on programming techniques, algorithms, data structures, extending Lua using modules, and other topics.


Learn More

Name  *

E-mail  *

Item of Interest





Verification *