3D Model Researcher - extract 3D models from binary files

3D Model Researcher is a program for studying binary files of 3D models. Model Researcher allows to display and visualize the data read from the file with the specified parameters, and also save them in the 3D Obj format. The program is a great help with the search for vertex data, faces, texture coordinates and normal vectors in an unknown 3D format. The main feature of the program is the support of the scripts in the programming language Python, which allows to extract models from almost any format.



- Analyze the 3D model files, search of vertices, faces, texture coordinates, normal vectors
- Data output is presented textually
- Data visualization in 3D format
- Visualization of texture coordinates
- Applying textures to the model
- Support of Python scripts
- Normals vectors
- System of submeshes
- Loading and saving templates with form values
- Data export in Obj format

Work of the program
Pro version

Page of the program:

About Pro:

Scripts usage:
Description of API functions:

The latest version can be downloaded from the website.
3D Model Researcher v2.3 22-11-17
3D Model Researcher Pro (Demo)

Awesome man!

Isn’t this the same as hex2obj?

The program “3D Model Researcher” has a different interface, another way of outputting data, support for textures. Each program has analogues.
Today a new version of the program has been released. I will soon add support for normal vectors.

So it’s an improved version of hex2obj with more options? That’s good.

No, it’s a completely different program written from scratch.
The prototype of the program was the Model Inspector.
On the functional, it is similar to hex2obj.

Yes, but it works similar to hex2obj right? For all intents and purposes it’s a successor.

There are many programs that work the same way: 3Ds Max and Blender, Photoshop and Gimp, etc. But you can not say that they are a successor :buckteeth:.
The screenshot clearly shows which program affected the 3D Model Researcher.

It looks better than hex2obj and that’s good enough for me.

hey Lazov thanks for this great program. it’s an amazing research tool.

I have been testing it on some binary files and while I can find the vertex data and faces easily, I’m having trouble finding the UVs. so I uploaded the file and the template that I used and if you have the time I would appreciate if you could look at it and let me know where I should look for the UV coordinates.


thanks in advance.

Seems like a really neat way to ‘visualize’ the process of searching offsets to find model data, which is probably one of the harder, tedious parts of learning format reversing that ends up turning people off from ever trying to learn it.

OriginOfWaves, thank you! There was a bug with short_sign in the program, I fixed it. But the texture can not be superimposed normally. Now I am correcting this. Can you throw me the texture?
Kuro., I hope the program will be useful. When searching for data, we make almost no calculations. I think it’s great.

looks good. i like the builtin model display and texture support. i coulda used that for overwatch. now… i’d give it a try, but your data host is pretty unstable. impossible to download. it just fails a lot. you could maybe mirror it on mediafire or google drive? and… do i wanna ask if those are potentially hex offsets. i think it’s a common thing to not translate those to decimal.

episoder, I added a link to the mirror in the first post. I did not understand the question about offset. All parameters are given in decimal form.

good. and… maybe consider adding an option to display offsets as hexadecimal. it’s a lot easier to copy from hexeditors to this. nobody wants to calculate decimal offsets. :wink:

yeah no problem.


OriginOfWaves, Thanks again! I updated the program. I added one interesting function that converts texture coordinates, if they are very small.
Here is your model with the template (remove the flip):

The program has been updated!

thanks a bunch for the quick update Lazov. wonder why those texture coordinates were so small. :s:

OriginOfWaves, the texture coordinates are stored in integer type Short, 2 bytes. At the output they are divided by the number 0xFFFF. We need to get a number from 0 to 1. Sometimes the denominator is indicated in the file with the model. I added the conversion.

field test.

  • can you add hexadecimal offsets pls? i wanna barf on my calculator. i’m not a super head hex converter.
  • i don’t see anything in uv window. maybe use line drawing?
  • something in the uv type conversion is wrong. it crashes on half_float and float types.
  • maybe you could save the last opened or savedto directory? i don’t wanna browse my folders after crashes.