This is the discussion forum for Helix Toolkit.
For bugs and new features, use the issue tracker located at GitHub.
Also try the chat room!

Need help with modelImport with large complex STL (= 3D scans etc )

Johnny 11 months ago • updated 11 months ago 2

I have developed a WindowsFileExplorerShellExtension using HelixToolkit to show STL files in the Windows File explorer.

Everythings works fine with normal "human made" STL-files, but scanned 3D models converted to STL becomes large and I get OutOfMemory violation at modelimporter.

I have a simplified VS 2017 solution that contains a simple testapplication and a simple STL viewer that popsup when a file is coosen or Drag-n-Droped.

This is the method I have used to create the model

QUESTION?? Is there a better way to create a model from a STL file??

 public void ViewNewStl(string filename)
            // WTF!! No file
            if (!File.Exists(filename)) return;

            // Check the file extension to be STL
            FileInfo fileInfo = new FileInfo(filename);
            if (fileInfo.Extension.ToLower() != ".stl") return;

            ModelColor = "Blue";HelixToolkitTestApplication.ziptestapplication

            Filename = filename;

            // Create a model of the STL file

                ModelImporter modellImporter = new ModelImporter();
                modellImporter.DefaultMaterial =
                    new DiffuseMaterial(
                        new SolidColorBrush((Color)ColorConverter.ConvertFromString(modellColor)));
                Model3DGroup model3DGroup = modellImporter.Load(filename);

                StlModel.Content = model3DGroup;


            catch (Exception e)
                Debug.WriteLine($"modelimporter crash {e.Message}");




Visual Studio 2017 Xamarin

MiticoVaL 1 year ago 0


Is it possible to use HelixToolkit in Xamarin projects on Visual Studio 2017?

I can import the DLLs from Nuget, but they are marked by a warning sign.

My Xamarin project targets .Net standard 2.0.



[Video] how to download Youtube video

Billie Morgan 1 year ago • updated by Karolina Kalinowska 4 months ago 2


Vidmate is an application that allows users to play videos, download videos as well as audio files. Just have a 3G or wifi network that you can quickly download videos from popular sites such as Youtube, daylimotion, metacafe ... With compatibility with most major web sites today, Vidmate is proud to bring the latest, hottest and most quality things to users.

See more:


Tubidy mobile Video Search

tube 1 year ago • updated by Liliana Gomowska 4 months ago 1

Tubidy Mobile Music, free video clip and opens the doors wide and use many of the facilities you about your interests, which allows a highly reliable site. You can benefit from this site free music and videos you can watch. Tubidy remaining featured or in the background, makes the transition with the new style with the striking currents. Baroque, extreme music, electronic music, swing, rap, popular, metal, fuak, rock, pop, hip-hop style are just a few of many other types of music such as this.Tubidy MP3 music download any music you want can be a member of the site you can reach with your system.


Error in SampleProject - Helix Toolkit

P S V Ramaraju 2 years ago • updated 2 years ago 1

When I am trying one of the example name - SimpleDemo in Helix Toolkit I am getting Invalid Markup. The code is this: It is exactly the same in the helix toolkit project.



<Window x:Class="SimpleDemo.MainWindow"
        Title="SimpleDemo" Height="480" Width="640">
        <!-- The HelixViewport3D supports camera manipulation, and can be used just like the Viewport3D -->
        <HelixToolkit:HelixViewport3D ZoomExtentsWhenLoaded="True">

            <!-- Remember to add light to the scene -->
            <!-- The content of this visual is defined in MainViewModel.cs -->
            <ModelVisual3D Content="{Binding Model}"/>

            <!-- You can also add elements here in the xaml -->
            <HelixToolkit:GridLinesVisual3D Width="8" Length="8" MinorDistance="1" MajorDistance="1" Thickness="0.01"/>



// --------------------------------------------------------------------------------------------------------------------
// <copyright file="MainViewModel.cs" company="Helix Toolkit">
//   Copyright (c) 2014 Helix Toolkit contributors
// </copyright>
// <summary>
//   Provides a ViewModel for the Main window.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace SimpleDemo
    using System.Windows.Media;
    using System.Windows.Media.Media3D;

    using HelixToolkit.Wpf;

    /// <summary>
    /// Provides a ViewModel for the Main window.
    /// </summary>
    public class MainViewModel
        /// <summary>
        /// Initializes a new instance of the <see cref="MainViewModel"/> class.
        /// </summary>
        public MainViewModel()
            // Create a model group
            var modelGroup = new Model3DGroup();

            // Create a mesh builder and add a box to it
            var meshBuilder = new MeshBuilder(false, false);
            meshBuilder.AddBox(new Point3D(0, 0, 1), 1, 2, 0.5);
            meshBuilder.AddBox(new Rect3D(0, 0, 1.2, 0.5, 1, 0.4));

            // Create a mesh from the builder (and freeze it)
            var mesh = meshBuilder.ToMesh(true);

            // Create some materials
            var greenMaterial = MaterialHelper.CreateMaterial(Colors.Green);
            var redMaterial = MaterialHelper.CreateMaterial(Colors.Red);
            var blueMaterial = MaterialHelper.CreateMaterial(Colors.Blue);
            var insideMaterial = MaterialHelper.CreateMaterial(Colors.Yellow);

            // Add 3 models to the group (using the same mesh, that's why we had to freeze it)
            modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Material = greenMaterial, BackMaterial = insideMaterial });
            modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(-2, 0, 0), Material = redMaterial, BackMaterial = insideMaterial });
            modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(2, 0, 0), Material = blueMaterial, BackMaterial = insideMaterial });

            // Set the property, which will be bound to the Content property of the ModelVisual3D (see MainWindow.xaml)
            this.Model = modelGroup;

        /// <summary>
        /// Gets or sets the model.
        /// </summary>
        /// <value>The model.</value>
        public Model3D Model { get; set; }

Can someone help me in getting through this?


Tubidy Mobile Music Video Mp3

sdt 2 years ago • updated by Liliana Gomowska 4 months ago 1

Years ago, we had no complaints to spend a hundred dollars to buy tape and CD. Then, online downloading music has not been popularized; no one has tasted the initial benefits of music downloading for free. When Internet starts to prevail among the masses, a sea of free music websites have sprung up. Thus, consumers are accustomed to enjoy free services. When used to have free lunch, who are willing to pay out-of-pocket for music?
As a result, even though the public voice is appealing to everyone endlessly, "pay for online downloading music" will still become a norm. While, for the public, both the shift of consumption habits and the adaptation of charge services require us to take a little patience to await. During the process, it is likely for traditional music sales model to search for a suitable new development model.

Mp3 Download Site: Tubidy Tubidy Tubidy Tubidy


Is there a way to set the DepthBuffer for an Element3D?

egon sepp 3 years ago • updated 3 years ago 1

Can it be done already?

I would like to add an Element3D to the scene (a CoordinateSystem) when the user selects an object, but it should always be "on top" so it can be seen, even it is in the Element.




Magnetometer Calibration Tool using WPF & Helix Toolkit

Frank 3 years ago 0

I have created a Magnetometer Calibration tool for one of my robotics projects that uses a solid-state 3-axis magnetometer. The app was created in Visual Studio 2015 Community Edition using WPF and the Helix Toolkit. Specifically I have two HelixViewport3D viewports, and I use the PointsVisual3D and TubeVisual3D toolkit objects to display 'raw' and calibrated magnetometer data.

This was my first exposure to WPF and the Helix Toolkit, and I learned *a lot* about both! I described my mental travels through the WPF & Toolkit jungles on my 'Paynters Palace' site at My wrap-up post on this subject is at

As noted in the post, the sources and a ZIP file containing everything (except for Octave) needed to run the app can be found at my GitHub site at

This is my way of giving back to Oystein Bjorke and the other folks who created the wonderful Helix Toolkit - thanks!!


PS: Oystein - I apologize in advance for any/all mistakes, misstatements and/or outright falsehoods perpetrated by me in this app and my posts. As a WPF/Toolkit newbie I did my best, but I'm sure I did lots of stuff wrong! ;-).


NuGet - could not install 2015.1.698 with .NET 3.5: Necessary References

Andrew B 3 years ago 0

Hi All,

I need to target .Net 3.5. When I use NuGet, it says:







Suppression State


Could not install package 'HelixToolkit 2015.1.698'. You are trying to install this package into a project that targets '.NETFramework,Version=v3.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.


What packages do I need exactly?




CombinedManipulator question

Anonymous 4 years ago 0
This discussion was imported from CodePlex

avgjoe wrote at 2012-03-11 18:39:

First off...Kick ass toolkit btw!  The examples gave me a good starting point.

The first thing I’m attempting to do is combine the ManipulatorDemo with the ModelViewer example.

I’ve added the following code to the ModelViewer to allow the model to be repositioned and rotated.  The visual rotate manipulators appear to grow in size but the translate manipulators do not.   Am I missing something here?


 private void ModelLoaded(object sender, RoutedEventArgs e)

CombinedManipulator manipulator = new CombinedManipulator();
Rect3D rect = Visual3DHelper.FindBounds(view1.Children);
manipulator.Diameter = rect.Y;

objo wrote at 2012-03-11 20:56:

To me it seems like the manipulation transform is applied twice to the manipulator. Adding the manipulator one level higher in the Visual3D tree should avoid it:


Sorry the "ModelViewer" example is not in good shape, I am planning to improve it, hopefully this year :)

Mrme wrote at 2013-08-01 10:02:

I would like to know if you solved this problem

thebestgin wrote at 2014-08-05 15:32:

I have the same problem. The translate manipulator do not size.
The problem is the emty methode OnDiameterChanged() at line 404.

Here my suggestion:
     /// <summary>
    /// The on diameter changed.
    /// </summary>
    protected virtual void OnDiameterChanged()
        double radius = this.Diameter / 2;
        double newArrowLength = radius + radius * 0.4; 
        this.TranslateXManipulator.Length = newArrowLength;
        this.TranslateYManipulator.Length = newArrowLength;
        this.TranslateZManipulator.Length = newArrowLength;

        double newArrowDiameter = newArrowLength * 0.075;
        this.TranslateXManipulator.Diameter = newArrowDiameter;
        this.TranslateYManipulator.Diameter = newArrowDiameter;
        this.TranslateZManipulator.Diameter = newArrowDiameter;

        double newInnerDiameter = this.Diameter - this.Diameter * 0.12;
        this.RotateXManipulator.InnerDiameter = newInnerDiameter;
        this.RotateYManipulator.InnerDiameter = newInnerDiameter;
        this.RotateZManipulator.InnerDiameter = newInnerDiameter;