X 3D Viewer for VENUS 3D Models

Hello All,

I wanted to share a project I have been working on for viewing, editing, and converting 3D files especially with .x DirectX files.

https://github.com/zdmilot/DirectX-3D-Viewer/

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.

Best,
Zach

4 Likes

This is incredible, thank you for posting

1 Like

This was so needed by my lab, THANK YOU!

2 Likes

Great work and a useful tool for venus.

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.

2 Likes

Any chance you could add like a shell script utility that auto exports everything to a generic model format?

1 Like

Totally agree and there is a way to do this easily leveraging GitHub - adrs2002/threeXfileLoader: X file(directX 3d file) loader for three.js · GitHub

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.

1 Like

This already exists. You may just need to write a simple .bat file to automate it, but this is the convention for using the CLI tool:

CLI Reference

Run DirectX3DViewer.exe from any terminal to convert 3D files without opening the GUI.

Open a file in the viewer


DirectX3DViewer.exe model.x

Convert between formats


DirectX3DViewer.exe convert <input> <output> [--format <fmt>]

Show full CLI help


DirectX3DViewer.exe --help

Examples

Convert OBJ to DirectX .x binary


DirectX3DViewer.exe convert model.obj model.x

Convert STL to glTF 2.0 binary .glb


DirectX3DViewer.exe convert model.stl output.glb

Convert .x to OBJ using the format flag


DirectX3DViewer.exe convert model.x result --format obj

The --format flag overrides the output extension.

Convert .hxx half-precision .x to OBJ


DirectX3DViewer.exe convert *.hxx output.obj

1 Like

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.