DirectX .x files are increasingly being phased out or unsupported in modern 3D workflows. Even tools like Blender no longer provide a reliable built-in way to open and work with these files. For Hamilton automation workflows especially, this becomes a real problem because VENUS still relies on .x and .hxx model formats for deck resources and labware visualization.
The goal of this project is to provide a reliable, open, and practical way to keep working with these files without being locked into outdated or vendor-specific tooling.
DirectX 3D Viewer can help you:
Open and inspect legacy Hamilton .x and .hxx 3D assets
View .x, .hxx, .obj, and .stl files in a native Direct3D 11 viewport
Convert between .x, .obj, .stl, and .glb
Take clean screenshots of models
Apply basic transforms such as rotate ±90° and mirror on X/Y/Z
Use orbit, pan, and dolly camera controls
Toggle wireframe, grid, and perspective / orthographic views
Drag and drop files directly into the viewer
I spent a lot of time building this because I think the community needs a dependable way to work with these files as mainstream support continues to disappear. I would really appreciate feedback, testing, bug reports, and suggestions from anyone who works with Hamilton 3D assets or legacy .x files.
I have a few suggestions, you can use helix-toolkit to do 3D display in WPF and you can use assimp to load many other kinds of model files (which was supported by helix). Then you do not need to write and test so many codes to load these file types.
Also you can do these works in html with three.js, and then you can embed your work in electron to enable it run in other os.
all these can support more functions of 3D, like material with image and more model types.
I can update you and the rest of the Automators when this is setup, should be a simple converter for browser based conversion that could be static and even hosted on GitHub pages.
adrs2002\threeXfileLoader was based on very old version of three.js, I tried to port it to current version of three.js, but I failed. I wrote a loader (typescript) for x file of text format, and it worked fine for Hamilton’s model files. I can share it to your project, if you need.