Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Kurt Miller, posted on July 24, 2001

Image Description, by Kurt Miller

Today's image is a screenshot of an application I recently released entitled 3D-Exe. It came about when an artist friend of mine (Max Shelekhov) asked me if I knew a way for him to distribute his models in such a way that people could download and view them without needing an application like 3DSMax, which mostly only other artists would have. After a few idea exchanges with Max, I implemented 3D-Exe. It takes 3DS model files and TGA textures, to produce a stand-alone executable that serves as a viewer (requires OpenGL) for the models.

In the screenshot you see both the main application running, and an example of an executable produced by it. The slick space ship model in the image was created by Max Shelekhov. By the way, if you like the model, I highly suggest you check out some of his other great artwork here.

3D-Exe is available on my recently launched company site, Gradient Studios. In addition, the full C++ source code has been released under the GPL. I don't have time to work on this project right now yet there's quite a bit that could be done to make this sort of program more stable, feature-rich, etc. If anyone out there feels like picking it up where I left off, you're more than welcome to. Some suggestions for improvements are in the readme.txt included with the source. That's all. Hope you enjoy it.

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

July 25, 2001, 04:20 AM

I didn't mean you personaly, but rather everybody on the page.

But you have to admid that therer is not a single negative word on the entire page....
I guess you don't think that that has anything to do with the author beeing Kurt himself? :-)
What I mean is that a lot of guys (and girls?) here tend to having the urge of showing off when someone has posted an IOTD, always complaining on and remarking this and that. This is not the case with this one...

I just think that everyone should be delat with on equal basis.


July 25, 2001, 04:28 AM

I think the reason why people aren't being negative is because they can see a use for this app, a lot of IOTD's show 'engines' that have no clear purpose. Whenever anyone releases something completed (game) or tool (as in this case) there is a lot more positive feedback. This is the way it should be, people want to see completed useful (or at least entertaining) product. Especially when it is something new, it's a lot harder to criticise when you haven't got anything to compare against eg terrain renderers!!!

The Legend

July 25, 2001, 04:29 AM

I would be confused if you had meant me personnaly.
Do you really think that the guys really remark and complain here.
Since the last posts I thought that the number of compliments in this forum was very high.

It seems that even I could post an IOTD and everybody would be happy, while even I am unhappy with my engine (I think you've seen that thread I've started).


July 25, 2001, 04:31 AM

If the 3DS file is encrypted with a password. And that password is stored in the file (but encrypted with the password before being stored). Then tell me this...

How does the app decrypt the file to show it? If its only way to get at the data is to decrypt it with the password, but it doesn't have access to the password because it is encrypted with the password (Wow!). Then it wont be much of a file viewer...

The only way I can see to get round this is to not encrypt the password. But this is an awful solution...

Any ideas, anyone.


The Legend

July 25, 2001, 04:36 AM

Look up encryption algos.

You have one algo that encrypts the file with a password and does not save it in the file.
You have a second algo that takes the encrypted file and the password and generates the original file.

There is also another case when you have two passwords (called public and private key there, you know PGP) and one algo.

If you encrypt the file with one key you can decrypt it with the other key in this case.


July 25, 2001, 04:58 AM

Yeah. I know about single key and public key systems. I just assumed that a nice (Dumb) single key system would be easier to implement. Of course, you could always use Crypto++ to do it all for you...

Kurt Miller

July 25, 2001, 05:01 AM

Rico - To my knowledge he hasn't released his models.
The Legend - No, the loader doesn't handle any such specific case.
MCSons - The executables can get pretty big (depends on mesh/texture size). The version available for download writes out raw mesh/texture data, no compression.
Kezza - Justin's description is quite accurate.

Thanks to all for the feedback, I really appreciate it =].


July 25, 2001, 05:07 AM

I just had the same idea..

file = exe|data|infoblock


July 25, 2001, 11:16 AM

If done right, then the exe shouldnt be more than 10kb + data.


July 25, 2001, 11:19 AM

How about, you use the windows functions to add a resource to the exe and then use a program like upx(or not).


July 25, 2001, 12:41 PM

It's too dark, the skybox clips off when it's behind the window, and I was drawing that many polygons per second back in 1989 on a Spectrum Z80. And the fire button doesn't work.

How's that, Glen? :)



July 25, 2001, 03:05 PM

Since this is no longer the current image of the day, you'll probably never see this message.. but you thought you understood my message, and you didn't :) This is partly my fault, since there's something you were thinking that I didn't realize (in encryption circles, your protection scheme idea would be considered absolutely perverse, so it didn't spring to mind. I won't blame you for this, because the current state of encryption is by no means intuitive, and took a long time to develop despite its apparent simplicity once you see it).

I think your misunderstanding is coming from a fundamental flaw in your proposed security scheme for this data. Rather than having a password that is required in order to *decompress* the data, you should instead encrypt the model/texture data itself (processing/garbling all the data!), so that the original data is only obtained through running the decryption algorithm on the encrypted data with the correct decryption key. The manner in which the data was garbled is dependent on the key which was used to encrypt it. So you can see.. when you receive the program without the key, you do not possess the decryption key in any form. You can consider that there is a particular decryption key which is inherent in the encrypted data, since there is (hopefully) only one decryption key which can bring the data back to its original form.. but if the encryption/decryption algorithm pair is secure enough, then you will have an extremely difficult time guessing what the decryption key is, having just that encrypted data. Encryption schemes with this level of security exist.

If you want to compress the data too (you probably would in this case), then you can compress the data too. You can do this either before or after the encryption and it'll be just as secure.. but personally I'd choose to compress it before the encryption because the data would likely compress better.


July 25, 2001, 03:09 PM

ohhhh.. ok. I see... You're not saying it's impossible to do this effectively... you're just saying that the idea that you originally proposed which involved a flag, was bad. Sorry for the needless explanation and finger pointing :)

This thread contains 43 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.