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!

How to read facets one by one from already loaded STL file?

Ardahan 3 years ago in Question 0

I am loading STL file into viewport and then I want to read each facet in that model. In helixtoolkit STLReader class it is done from reading stream, but this methods is private so I can't call it in my program. Is there any public method for reading facets or should I override this existing methods?


Finding intersection point between a PipeVisual3D and ModelVisual3D

Nit29 4 years ago in Question • updated 4 years ago 1
Is there a way to find the intersection point of a pipevisual3d and a modelvisual3d element?
Under review

3D Surface with Pointcloud

Misunderstood 4 years ago in Question • updated 4 years ago 2

thanks for that great toolkit! Really like to work with it. Actually i am searching for a way to calculate a 3D surface out of a pointcloud. How am i able to do that? I allready got the points in a list (
The result should be a rectangle with drillholes.

I appreciate any kind of help.

How to change the view to a standard-view in code?

Mehdi Rafeie 4 years ago in Question • updated 4 months ago 4

Hello there,

Thank you for your nice toolkit. I would like to know how to change the camera view to a standard view, such as top view, in code? Simply, I need a piece of code to do exactly what is happening by clicking on a side of the ViewCube.


Earth Scale

Integratron 4 years ago in Question 0

Hi, I'm trying to create an environment on the scale of earth, i.e. the main object is a map of earth and is 40,000,000 units wide, and I have actual scale buildings only 100 units long. It actually seems to work mostly ok but when I zoom in on the buildings, I get odd clipping effects that appear and disappear while I'm panning or orbiting around the buildings. Any ideas on how best to make this display reliably?


How to overlay image on wire frame model in Helix SharpDX version

vsharu 4 years ago in Question 0

Hi , i want to overlay image while model in wireframe mode.

please help me to do how to do that

SharpDX WPF Media3D

Light problem in Helix Sharp DX

Amit Pathak 3 years ago in Question • updated 3 years ago 1


I am trying to build an obj file viewer using Helix Toolkit with SharpDX. So far I am able to load an object file and render it's contents to Helix Viewport3DX. Model looks good with some obj files but for others there are some lightning problem and back surfaces are always black. I am not sure what am I doing wrong. Is this light problem due to the fact that SharpDX does not support back materials??

Problem using Helix Sharp DX:

Original model looks like this in Adobe DC Reader:

Viewport3DX settings are:


<DataTemplate x:Key="Template1">
<hx:MyMeshGeometryModel3D Geometry="{Binding Geometry}" Transform="{Binding Transform}" Material="{Binding Material}"/>
<hx:RenderTechniqueConverter x:Key="RenderTechniqueConverter"/></Window.Resources>

<hx:Viewport3DX x:Name="helixViewport"

Camera="{Binding Camera}" CameraRotationMode="Trackball"
RenderTechnique="{Binding RenderTechnique}"
RenderTechniquesManager="{Binding RenderTechniquesManager}"
EffectsManager="{Binding EffectsManager}"
BackgroundColor="{Binding BackgroundColor}"
<MouseBinding Gesture="LeftClick" Command="hx:ViewportCommands.Rotate"/>
<MouseBinding Gesture="MiddleClick" Command="hx:ViewportCommands.Zoom"/>
<MouseBinding Gesture="RightClick" Command="hx:ViewportCommands.Pan"/>
<hx:AmbientLight3D Color="{Binding AmbientLightColor}"/>
<hx:DirectionalLight3D Color="{Binding DirectionalLightColor1}" Direction="-1,-1,-1"/>
<hx:DirectionalLight3D Color="{Binding DirectionalLightColor2}" Direction="1,-1,-0.1"/>
<hx:DirectionalLight3D Color="{Binding DirectionalLightColor3}" Direction="0.1,1,-1"/>
<hx:DirectionalLight3D Color="{Binding DirectionalLightColor4}" Direction="0.1,0.1,1"/>
<hx:ItemsModel3D x:Name="itemsModel3d" ItemTemplate="{StaticResource Template1}" ItemsSource="{Binding Items}/">
SharpDX WPF Media3D
Under review

How to get MeshGeometry3D after applying ScaleTransform3D

KotNitro 4 years ago in Question • updated by Øystein Bjørke 4 years ago 1
First of all, many thanks for the great toolkit!
My app is simple STL viewer and it also could transform 3d models and apply cutting planes.
So, I make a trnasform:
model.Transform = new ScaleTransform3D(1, 1, 1 / compression);
How can I get an updated MeshGeometry3D? I need it to call MeshGeometryHelper.Cut()
Thank you!
WPF Media3D

This api was accessed with arguments from the wrong context

Niteen 4 years ago in Question • updated 4 years ago 1

We are adding and removing the ModelVisual3D object using background worker process and we got the the following error message:

Error : "This api was accessed with arguments from the wrong context"

Here is my code:

Private Sub backgroundWorker_ProgressChanged(sender As Object, e As ProgressChangedEventArgs)

Dim list = helixViewport3D.Children.OfType(Of ModelVisual3D).ToList()
For Each item As ModelVisual3D In list
If TypeOf item Is ModelVisual3D AndAlso item.GetName() = "Mesh" Then
End If
Dim visual = CType(e.UserState, ModelVisual3D)
End Sub

We are used the BackgroundWorker thread to update the UI from background process. Can you please suggest how to solve this issue.

Please find the attached screem shot.

Niteen Patil


edit obj

Dihydrogensulfid 3 years ago in Question • updated by Lucas Silva 3 years ago 1


For an extention of my masterthesis, I need to calculate and present flowpaths of an digital surface model.

Therefore I have to questions.

1. i can import an *.obj-file with helix in a viewport with:

var modelImporter = new ModelImporter();
modelImporter.DefaultMaterial = material;
Model3DGroup model3DGroup = new Model3DGroup();
model3DGroup = modelImporter.Load("C:/exampleAreas/Area01.obj");

ModelVisual3D newVisual = new ModelVisual3D { Content = model3DGroup };

MyView.Children.Add(newVisual); // add it to the viewport

but how can I get acess to the geometry of the *.obj to readout the normal-vectors?

2. Is it possible to interact with the positions of the vertices of a loaded *.obj-file?

The hidden agenda is: manipulating the loaded *.obj-file, so the user can modify the height of vertices and change the flowpath.

It would be great if someone could give my a hint or small example :-)

Thanks for reading!