Skip to content

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..

jeremjlr/MulDisplay

Repository files navigation


MulDisplay - Showcase/example available.

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..

Table of Contents

  1. About The Project
  2. Roadmap
  3. FAQ
  4. License
  5. Contact

About The Project

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.
I am 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.

NuGet : https://www.nuget.org/packages/MulDisplay
Examples : https://github.com/jeremjlr/MulDisplay/releases
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.

I 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 :

DrawingControl myDrawingControl = new DrawingControl(Driver.Direct3D, ViewMode._3D, false, false, 5, 1f, 4, false, false);
myDrawingControl.Dock = DockStyle.Fill;
myPanel.Controls.Add(myDrawingControl);

You can then use myDrawingControl and myDrawingControl.DrawingContext to use all the API's features.







Roadmap

  • Upgrade the engine to the latest Irrlicht release (That will solve the 32-bit obj mesh loading issue)
  • Fix of known&reported bugs

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.

License

MulDisplay is entirely free for any non-commercial or commercial project. However if you plan to use MulDisplay in a commercial project, please feel free to contact me and let me know.

Libraries used by MulDisplay :

Contact

If you have any question or suggestion feel about anything, free to reach out to me at contact@mulmul-technologies.com or jerem.jlr@gmail.com.

About

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..

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages