Surface Plots in Industrial Software Applications
How a Visualization Engine improves existing Software
One industrial software framework built from various scattered software applications was the challenge at Zeeko. The newly developed Zeeko studio interactively visualizes all sorts of surfaces for their Intelligent Robotic Polishers (IRP).
"Zeeko Studio comprises of many specific applications to the Zeeko process generating extremely complex outputs. The fact that we could display such outputs quickly and easily was more than enough of a reason to purchase and use ILNumerics for the development of the Zeeko Studio."
Ashley Smith - Software Engineer at Zeeko Ltd and Principal Developer of Zeeko Studio
Zeeko: Global Leader of Ultra-Precision Polishing Machines
Zeeko is a UK based technological company which specialises in the manufacturing and commercialisation of Ultra-Precision Polishing Machines known as the Intelligent Robotic Polishers (IRP). Zeeko manufactures corrective polishing machines for fabricating high precision optics, orthopaedic joints, semiconductor applications and precision moulds in a number of different materials. In addition to the corrective polishing process, Zeeko also provides a suite of software applications which are used to perform critical support tasks such as defining a surface, analysing a surface and its measurement to produce an error map or producing the path which will be run by the machine performing the polishing.
Migrating from MATLAB to ILNumerics®
Our existing software was developed solely in MATLAB and we decided that we wanted to develop a framework to host all existing application software. Zeeko Studio, our universal deployment platform, also provides framework functionality such as the ability to auto-generate a user interface for an application, build user-defined operations and sequences of operations and record/replay a set of operations for repetitive processes. Due to the need for a strongly typed, object-orientated programming language we came to the decision to limit the use of MATLAB to our numerical computation needs. This meant that we could no longer use its UI plotting capabilities, our main source of output for all of our existing software.
We therefore needed to replace this, not only with something which worked as well and was easy to use, but something that was just as quick as we had previously. Before coming across ILNumerics, we explored alternative solutions such as MatPlotLib in Python, wrapping the MATLAB plots using Builder, other commercial libraries and even developing our own plotting library. Each solution had its issues; MatPlotLib and wrapped MATLAB both proved difficult to embed within a C# application and other libraries were not cost effective. ILNumerics was something we came across using Google, and it looked perfect for our needs. The library was evaluated during our prototype phase and we soon discovered how useful ILNumerics could be; purchasing the full product was an easy decision to make.
Interactive Surfacs Plots and Graphics
We predominantly use ILNumerics for our plotting output, for example the screenshot above shows our Surface Designer application. This involves defining a mesh based on certain parameters and boundaries and displaying the output mesh using an ILNumerics Plot. We also use the mathematics library to help with the generation of boundaries. The previous screenshot displays a square shaped line on top of the generated surface, this is a prospective boundary, which is computed and drawn in ILNumerics.
Improved Software and Development
Both the plotting and maths capabilities ILNumerics posses have massively helped us in the development of the Zeeko Studio. As ILNumerics is a .NET library we could utilise it within C# without the need to interoperate to classes of another language, such as C/C++. It also, as previously mentioned, allowed us to create complex output plots (such as the one displayed in the above screenshot) which not only look great, but the ability to interact with the data is superior to what we could achieve previously. ILNumerics has not only improved the development of our software, but it has actually improved our software from our existing applications, making the use of the library worth every penny.