ILNumerics.Community.MAUI
7.0.0.280
dotnet add package ILNumerics.Community.MAUI --version 7.0.0.280
NuGet\Install-Package ILNumerics.Community.MAUI -Version 7.0.0.280
<PackageReference Include="ILNumerics.Community.MAUI" Version="7.0.0.280" />
<PackageVersion Include="ILNumerics.Community.MAUI" Version="7.0.0.280" />
<PackageReference Include="ILNumerics.Community.MAUI" />
paket add ILNumerics.Community.MAUI --version 7.0.0.280
#r "nuget: ILNumerics.Community.MAUI, 7.0.0.280"
#:package ILNumerics.Community.MAUI@7.0.0.280
#addin nuget:?package=ILNumerics.Community.MAUI&version=7.0.0.280
#tool nuget:?package=ILNumerics.Community.MAUI&version=7.0.0.280
ILNumerics.Community.MAUI
Integration package for ILNumerics (http://ilnumerics.net/) scene graphs and plot cubes with .NET Multi-platform App UI (https://dotnet.microsoft.com/apps/maui) framework. ILNumerics.Community.MAUI provides an ILNumerics Panel implementation for .NET MAUI and a set of helper / convenience functions to make embedding ILNumerics scenes into MAUI apps straightforward.
This package makes it easy to host ILNumerics scene graphs and 2D/3D plot cubes inside MAUI applications. The panel acts as a bridge between MAUI's UI system and ILNumerics rendering, allowing you to build interactive visualizations that run on desktop and mobile platforms supported by .NET MAUI.
Note: This package currently uses a software renderer on all platforms. It generally provides a smooth rendering experience for moderate data sizes, but performance may vary per platform and scene complexity.
Compatibility
- .NET: targets
.NET 9. - ILNumerics:
ILNumerics 7.3+. - .NET MAUI: compatible with the .NET MAUI APIs in .NET 9.
Note: Desktop platforms (Windows, Linux, macOS) are working well. There are currently some outstanding issues on mobile platforms; please refer to the issue tracker for details and status updates.
Usage
Add the ILNumerics panel to your user interface (in XAML or in code). The example below shows a simple XAML usage; adjust XML namespaces as appropriate for your project:
<maui:Panel Background="White" x:Name="ilPanel" />
Assign a scene to the panel to render it. A minimal example in C#:
// Create a Scene containing a PlotCube and a Surface. Replace 'B' with your data array.
ilPanel.Scene = new Scene
{
new PlotCube(twoDMode: false)
{
new Surface(tosingle(B), colormap: Colormaps.Jet) { new Colorbar() }
}
};
// Call Configure so ILNumerics computes bounds and internal state required for rendering.
ilPanel.Scene.Configure();
Notes:
- Call
Configure()on the scene after setup so ILNumerics computes bounds and other internal state required for rendering. - Assign a new
Sceneor modify an existing one to update what is rendered. - Use the provided helper functions and the
Panelevents to integrate with your application input and lifecycle.
Keyboard modifier keys (IModifierKeyService)
For interactive scene manipulation (for example, orbit/pan/zoom with modifier keys), the project provides an IModifierKeyService abstraction and platform-specific implementations under MAUI/Platforms/*.
Short integration steps:
- Register or resolve
IModifierKeyServicefrom your MAUI app's DI container (or construct the platform implementation directly). - Use the service from input handlers to query current modifier state when processing touch/keyboard events.
Example (in MauiProgram.cs):
// Register the shared service; platform implementations are provided in the project
builder.Services.AddSingleton<IModifierKeyService, ModifierKeyService>();
See Demo/MAUIDemo for a concrete example of wiring up IModifierKeyService and handling modifier-driven interactions in the demo's input handlers.
Examples and demos
This repository includes demo projects under the Demo/ folder showcasing usage across supported MAUI targets. The MAUIDemo project demonstrates basic integration and typical usage patterns�run it to see concrete examples and to experiment with different scenes and rendering configurations.
License
ILNumerics.Community.MAUI is licensed under the terms of the MIT license (http://opensource.org/licenses/MIT, see LICENSE.txt).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-android35.0 is compatible. net9.0-ios18.0 is compatible. net9.0-maccatalyst18.0 is compatible. net9.0-windows10.0.19041 is compatible. net10.0-android was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-windows was computed. |
-
net9.0-android35.0
- ILNumerics.Computing (>= 7.3.58)
- ILNumerics.Drawing (>= 7.3.58)
- ILNumerics.Toolboxes.Drawing2 (>= 7.3.58)
- Microsoft.Maui.Controls (>= 9.0.110)
- SkiaSharp.Views.Maui.Controls (>= 3.119.1)
-
net9.0-ios18.0
- ILNumerics.Computing (>= 7.3.58)
- ILNumerics.Drawing (>= 7.3.58)
- ILNumerics.Toolboxes.Drawing2 (>= 7.3.58)
- Microsoft.Maui.Controls (>= 9.0.110)
- SkiaSharp.Views.Maui.Controls (>= 3.119.1)
-
net9.0-maccatalyst18.0
- ILNumerics.Computing (>= 7.3.58)
- ILNumerics.Drawing (>= 7.3.58)
- ILNumerics.Toolboxes.Drawing2 (>= 7.3.58)
- Microsoft.Maui.Controls (>= 9.0.110)
- SkiaSharp.Views.Maui.Controls (>= 3.119.1)
-
net9.0-windows10.0.19041
- ILNumerics.Computing (>= 7.3.58)
- ILNumerics.Drawing (>= 7.3.58)
- ILNumerics.Toolboxes.Drawing2 (>= 7.3.58)
- Microsoft.Maui.Controls (>= 9.0.110)
- SkiaSharp.Views.Maui.Controls (>= 3.119.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.