Reverse engineer a hype document


(Joshua Stomel) #1

Suppose I find a hype animation on the web and I want to see how it was done. I can download the hyperesources file and the page html. Is there any way to load that into hype and see how the animation was generated?


(Jonathan Deutsch) #2

The ultimate answer is no and you should ask the author if they are willing to share their .hype document.

From a technical standpoint the answer is “yes-ish.” Hype documents (as in *.hype) are composed of a data.plist file that contains all their information and user included resources like images/video. By default when exporting, Hype will in fact output the entire data.plist file. You’ll see this as a file in the .hyperesources folder that looks like 21CF21-restorable.plist. This is for backup purposes, as we find many users accidentally delete their .hype document. Thus a .hype document can be restored from a .hyperesources folder by choosing the Help > Restore Document from Export… menu item if this exists. The restorable.plist file is copied to the .hype document as data.plist and the images are likewise copied over. A caveat is that exported images may have been optimized, so it won’t be an identical .hype document as the source in this case.

So if you have access to the entire .hyperesources folder, and a user has not unchecked “Create restorable document file when exporting” in Hype’s preferences, then you can get back the .hype document and see how it was done.

The fly in the ointment is that if you don’t have access to the entire folder and are just looking at the site and using a web developer console to look at the files, you won’t see the restorable.plist file since it isn’t actually used in the site. As you can see, the actual restorable.plist filename is prefixed with a series of letters and characters; the purpose of this is to prevent someone like yourself from too easily hijacking the .hype document. For support purposes, we (Tumult Inc.) often have users only send us a URL of a document they are working on. To more easily help them, we know the formula to find the correct prefix for the restorable.plist and can then download it. Even though exporting this file is an option, I’m sure many users aren’t fully aware of it and thus it would be inappropriate for us to share how to derive it - sorry! For you to figure this out, you would need to do true reverse engineering of either many exports to derive the formula or debug/disassemble the Hype binary!

Similarly, for support purposes we used to have an internal tool that could just look at the *_hype_generated_script.js file and recreate a document, but maintaining this was a lot of work and also missed any data that was in a .hype document but not in the javascript data (ex. the names of elements!). Making such a tool with v3.6’s features would be quite the task. This is why we later changed to the restorable.plist file.

I’m sure that’s more than you cared to know :slight_smile:… like I said, it would be much easier just to email the author and ask… that way you also have their blessing.