Visualization Engine for .NET (C# and Visual Basic)
This section describes the 2d and 3d visualization capabilities of ILNumerics. The rendering engine has been redesigned to better adopt the development of interactive technical applications and scientific visualizations using C# and .NET. It has more in common with a modern game engine than with its competitors. Its clear and simple syntax, though, abstracts away platform specifics and the low level details of computer graphics.
As everything in ILNumerics the Visualization Engine was designed for speed and developer efficiency. Definition of visual scenes is based on a flexible and efficient scene graph. A large set of predefined plots and graphs allow for easy authoring and maintenance of your code. Hardware accelerated rendering makes it the fastest visualization technology on .NET (despite others claiming the same ... give it closer look! ;)
The following features are implemented in the 2d and 3d visualization API:
- Simple setup.
- Simple and efficient scene definition.
- Seamless integration with ILNumerics Computing Engine and its efficient memory management.
- Hardware acceleration: fastest possible rendering, even for dynamic scenes.
- Reusable scenes, MVC model for easy and clear maintenance.
- Multiple driver support, robust auto-selection of OpenGL and GDI+.
- Shader support.
- Clean, transparent multithreading model.
- Transparent memory buffer sharing.
- One file, managed only deployment.
- Interactive rendering and offscreen rendering (png, jpg, bmp, xml), vector graphics rendering (SVG).
- Optimized for scientific data plotting (line plots, surface plots, contour plots)
- Optimized for application development: interactive, extensible, maintainable.
- Dynamic capabilities: everything is updateable at runtime.
The ILNumerics Visualization Engine works interactively on Windows in .NET Framework and .NET Core projects. Rendering is based on GDI+ or OpenGL (default). The setup of your visualization project corresponds to the setup for the Computing Engine. Make sure to include (at least) the following ILNumerics modules as references:
- ILNumerics.Drawing2 (optional extensions toolbox)
- (any computing module you may need, often: ILNumerics.Computing, numpy)
.NET Core projects additionally require the Microsoft.Windows.Compatibility nuget package.
The following video demonstrates the quick setup of a WPF project on .NET Core:
Visit the Getting Started Guide to learn all details about the setup of a new visualization project.
The Panel Control
The ILNumerics Panel control adds an interactive visualization surface to your .NET project. It is found in the ILNumerics.Drawing namespace. Projects of the full .NET Framework may use the Windows.Forms designer and the Toolbox tool window in Visual Studio in order to drag the Panel from the ILNumerics section of the tool window onto the designer surface of your form. Alternatively (or if your project is a .NET Core project) you may add the panel programmatically:
A quick start guide for the Visualization Engine is also found in our tutorials section. Or you can start with the overview on the scene graph here to learn how to create your own scenes. The section specifically dealing with plotting & charting objects contains another quick start guide, too.
Our examples section contains a large number of example projects. You can download them and modify their code in order to learn how they work.