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!

Same 3D-Model act like different one?

Ardahan 3 years ago in Question • updated 3 years ago 1

I load STL files to helixviewport3d and store them in dictionary as key and file name as value.

But then I load same STL file and check if it is already in dictionary. But then It is not found and adding same model into viewport. where do i go wrong?

WPF Media3D

Camera view of rectangles

Nit29 3 years ago in Question 0

I am new to 3d manipulation esp with helix toolkit.
Am trying to have a camera fixed to a side of rectangle. When the rectangle is rotated or moved, the camera should relatively change it's view. Is there any property that ties the camera to an object or a specific vector of an object? Also, there will be 2 rectangles used as planes intersecting making an 'X' shape from the top view. So there has to be 2 views of one side of each plane and a top view.

I am looking forward to understand a way to make this work.Thanks!

Automatically move manipulator

Arjan 4 years ago in Question 0
I have created a small example with a "robot" containing rotating axes.
With the three manipulators I can move the axis of the robot.
But I'm looking for a way to move the manipulators when the robot moves.
So when axis 1 of the robot moves you see all the 'stacked' objects moving but not the manipulators.
How can I achieve this?

Here is my source code:
SphereVisual3D sphereAxis1 = new SphereVisual3D();
sphereAxis1.Fill = new SolidColorBrush(Colors.Blue);
sphereAxis1.Center = new System.Windows.Media.Media3D.Point3D(0, 0, 0);
sphereAxis1.Radius = 1.0;

RotateManipulator manipulatorAxis1 = new RotateManipulator();
manipulatorAxis1.Color = Colors.Blue;
manipulatorAxis1.Axis = new System.Windows.Media.Media3D.Vector3D(0, 0, 1);
manipulatorAxis1.Diameter = 3.5;
manipulatorAxis1.InnerDiameter = 2.5;

PipeVisual3D pipe1 = new PipeVisual3D();
pipe1.Fill = new SolidColorBrush(Colors.Orange);
pipe1.Diameter = 5.0;
pipe1.Point1 = new System.Windows.Media.Media3D.Point3D(0, 0, -1);
pipe1.Point2 = new System.Windows.Media.Media3D.Point3D(0, 0, 0);

PipeVisual3D pipe2 = new PipeVisual3D();
pipe2.Fill = new SolidColorBrush(Colors.Orange);
pipe2.Diameter = 2.0;
pipe2.Point1 = new System.Windows.Media.Media3D.Point3D(0, 0, 0);
pipe2.Point2 = new System.Windows.Media.Media3D.Point3D(0, 0, 2);

SphereVisual3D sphereAxis2 = new SphereVisual3D();
sphereAxis2.Fill = new SolidColorBrush(Colors.Blue);
sphereAxis2.Center = new System.Windows.Media.Media3D.Point3D(0, 0, 2);
sphereAxis2.Radius = 1.0;

RotateManipulator manipulatorAxis2 = new RotateManipulator();
manipulatorAxis2.Pivot = new System.Windows.Media.Media3D.Point3D(0, 0, 2);
manipulatorAxis2.Axis = new System.Windows.Media.Media3D.Vector3D(0, 1, 0);
manipulatorAxis2.Color = Colors.Green;
manipulatorAxis2.Position = new System.Windows.Media.Media3D.Point3D(0, 0, 2);
manipulatorAxis2.Diameter = 3.5;
manipulatorAxis2.InnerDiameter = 2.5;

PipeVisual3D pipe3 = new PipeVisual3D();
pipe3.Fill = new SolidColorBrush(Colors.Orange);
pipe3.Diameter = 2.0;
pipe3.Point1 = new System.Windows.Media.Media3D.Point3D(0, 0, 2);
pipe3.Point2 = new System.Windows.Media.Media3D.Point3D(0, 0, 7);

SphereVisual3D sphereAxis3 = new SphereVisual3D();
sphereAxis3.Fill = new SolidColorBrush(Colors.Blue);
sphereAxis3.Center = new System.Windows.Media.Media3D.Point3D(0, 0, 7);
sphereAxis3.Radius = 1.0;

RotateManipulator manipulatorAxis3 = new RotateManipulator();
manipulatorAxis3.Pivot = new System.Windows.Media.Media3D.Point3D(0, 0, 7);
manipulatorAxis3.Axis = new System.Windows.Media.Media3D.Vector3D(0, 1, 0);
manipulatorAxis3.Color = Colors.Green;
manipulatorAxis3.Position = new System.Windows.Media.Media3D.Point3D(0, 0, 7);
manipulatorAxis3.Diameter = 3.5;
manipulatorAxis3.InnerDiameter = 2.5;

PipeVisual3D pipe4 = new PipeVisual3D();
pipe4.Fill = new SolidColorBrush(Colors.Orange);
pipe4.Diameter = 2.0;
pipe4.Point1 = new System.Windows.Media.Media3D.Point3D(0, 0, 7);
pipe4.Point2 = new System.Windows.Media.Media3D.Point3D(7, 0, 7);

Kind regards,


DataTemplate3D for custom ModelVisual3D Xml/View

Michael Powell 4 years ago in Question • updated 4 years ago 4
I've got a custom ModelVisual3D, literally I extended into a Xml/View to build a model. I will likely have several of these animals, but each of them are a ModelVisual3D.

I am studying the WPF DataTemplate example, and it is interesting, data template acts as a kind of bridge into the 3D model?

I'm not sure what CreateItem is all about, except possibly a convention integrating with the sister ItemsVisual3D?

I wouldn't have such a thing in my model. In fact, I'm not sure I would potentially have one data template per model in the view, the content of which is the view instance?

It's making some sense grasping the connecting tissue.

Thank you...
WPF Media3D
Under review

How to render grass and chalk lines easily

Michael Powell 4 years ago in Question • updated 4 years ago 3

I am taking a look at some options how to render grass, for instance as a texture, overlaid on a model, like a RectangleVisual3D and/or polygonal-surface, for instance, then in such a way that I can also render chalk lines, identify some material, etc, that simulates chalk lines, in both lines (or small rectangles themselves), and for font-materials (if there were such a thing? haven't done the research there, yet...).

I've found some tutorials how to work through apps like Paint.NET, GIMP, etc, in order to crank out some grass textures. Basically what's I would consider low to low/medium end quality. Not really looking for medium/high to high end quality at this point for this purpose, nothing even remotely like a Cinema 4D, for instance.

I am also taking a look at Unity3D for potential options there, they can generate grass, but this looks more like a full-fledged game-style development environment. Which might be along the lines what I'd like to do, especially with simulation for sprites, physics, etc. I'm not positive, SharpDX an analog to Unity3D, but it came up looking for grass and related effects.

Anyhow, for now, looking for the configuration aspects and what I can accomplish with a simpler-generated model.

Thank you...

Best regards,

SharpDX WPF Media3D

how do i use doublekeydictionary in my unity project?

Thomas Clifton Olivent 4 years ago in Question 0
I've downloaded the master file, but aside from that, I have no idea where to place it or what to do with it.
Under review

How do I display pipe properties?

Mark4965 3 years ago in Question • updated by unitedsoftwareconsultants 3 weeks ago 9

Good Afternoon,

First off, I've really enjoyed using Helix and as a new user of WPF and graphical programming, I have found Helix very easy to use as well a aid during my learning process. The work put into this project is much appreciated!

I am currently working on a program where the user can create various elements (pipes, spheres, etc.) by inputting the appropriate inputs and graphically display them in the viewport.

Up to now everything has been pretty straight forward. Where I've been hung up the last several days is how to display the properties of the elements once selected with the mouse. For example, if user creates a pipe and then selects it a window would display the diameter, inner diameter, and Point1/2 coordinates. From what I can tell the BuildingDemo might provide a good example as to how this is accomplished however the PropertyGrid remains blank when I select something.

If anyone could provide some insight or some example code I would be extremely grateful. If you need more information please let me know.


Remove X Direction Grid Lines

Alex Roschli 4 years ago in Question 0
I am using the Helixtoolkit NuGet package in my Visual Studio C# program and it's working well. I am generating a grid with grid = new GridLinesVisual3D(); but I do not want the grid lines that go in the X Direction, I would like to have grid lines in only the Y Direction. I have looked a the GridLinesVisual3D.cs file and I know exactly what needs to be changed, but I don't know how to change it. Because I am loading in the entire package to Visual Studio, I can't see the individual source files in the program to edit them.

So my question is, what is the best way to go about removing the lines in the X direction.


Order Indiependent Transparency

Terry Price 4 years ago in Question 0

Does Helix 3D support any form of OIT such as depth-peepling?

If not, are there any plans to implement it in the future? It would be hugely helpful for my applicaiton.

If not, is there any way that I can 'tack it on' to the existing framework?

Best Wishes,


Multiline Closed Path Polygons

Michael Powell 4 years ago in Question 0

Please pardon my clumsy use of verbiage here...

I will probably default to the RectangleVisual3D, initially, but I'd like to know whether there is something like a closed-path LinesVisual3D. Could work its way out in 3D, in my case it would be along a 2D plane.

Basically I'd like to render things like triangles, trapezoids, etc. Then be able to potentially specify things like line issues (i.e. brush), and fill.

Thank you...
WPF Media3D