MulDisplay 1.0.6
dotnet add package MulDisplay --version 1.0.6
NuGet\Install-Package MulDisplay -Version 1.0.6
<PackageReference Include="MulDisplay" Version="1.0.6" />
paket add MulDisplay --version 1.0.6
#r "nuget: MulDisplay, 1.0.6"
// Install MulDisplay as a Cake Addin #addin nuget:?package=MulDisplay&version=1.0.6 // Install MulDisplay as a Cake Tool #tool nuget:?package=MulDisplay&version=1.0.6
MulDisplay
MulDisplay is a .NET all in one (2D/3D) display API designed as a debugging/display tool. It can be used to easily display camera frames, 3D point clouds, 3D objects, 2D/3D overlays, etc..
The API uses a custom drawing context embedded in a WinForms panel HWND. This bypasses WinForms/Wpf limitations and allows for optimized and efficient drawing.
Using 3D in .NET WPF or WindowsForms has never been easier, it can done with only a few lines of code. The purpose of this tool is to encapsulate as much 2D/3D as possible in order to have a simple, lightweight and extremly easy-to-use API. The goal is to provide a quick and easy way to display things in order to either visualize or simply debug algorithms. We are open to requests and suggestions for future developpement/improvements. It is developped with Visual Studio 2022 and .NET 7.0 but there is also a Framework 4.8 compatible version.
We recommend checking out the examples to understand how to use the API but you can get started very quickly, it only requires a WindowsForms panel, whether it's native WinForms or embedded in a WPF App.
- Website : www.mulmul-technologies.com
- Examples : https://github.com/jeremjlr/MulDisplay
- Documentation : https://jeremjlr.github.io/MulDisplay/index.html
You can easily switch from 3D to 2D using the right click menu. You can use the mouse left click/middle click/wheel to move the camera. Double click to go fullscreen.
FAQ
I'm getting errors when trying to run examples. Make sure to have at least DirectX 9.0c/OpenGL4.5, .NET 7.0 (or .NET Framework 4.8) and Microsoft Visual C++ Redistributable Package installed.
.NET Core ? .NET Framework ? MulDisplay is being developped with .NET 6.0/7.0 but it still has a .NET Framework 4.8 compatible version published on NuGet.
Roadmap
- Upgrade the engine to the latest Irrlicht release (That will solve the 32-bit obj mesh loading issue)
- More supported formats (or better support of formats and their variants in general) (current MulDisplay prefered formats are .ply and .obj)
- Have a variant of the API with a more recent/powerful 3D Engine (Ogre3D) ⇒ Work in progress
- Fix of known&reported bugs
- Add new features (depending on users' demands) while KEEPING the original idea of the API and keeping it as simple as possible for the user
- MAUI/Linux
Licensing
Check out www.mulmul-technologies.com
Hire Me
If you have any offer that is beyond the scope of simple licensing or if you simply like one of my products, feel free to reach out to me, I am open to any opportunity, anywhere.
Contact
If you have any question or suggestion feel free to reach out to us at
- jerem.jlr@gmail.com
- www.github.com/jeremjlr
- www.mulmul-technologies.com
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net7.0-windows7.0 is compatible. net8.0-windows was computed. |
-
net6.0-windows7.0
- BouncyCastle.Cryptography (>= 2.0.0)
-
net7.0-windows7.0
- BouncyCastle.Cryptography (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Removed strong licensing, only a watermark bottom-left is left for unlicensed/free use.
- MulDisplay doesn't automatically close the application anymore when used without a valid license.
Roadmap
- Upgrade the engine to the latest Irrlicht release (That will solve the 32-bit obj mesh loading issue)
- More supported formats (or better support of formats and their variants in general) (current MulDisplay prefered formats are .ply and .obj)
- Fix of known&reported bugs
- Add new features (depending on users' demands) while KEEPING the original idea of the API and keeping it as simple as possible for the user