notnullgames / Herosaver

An educational tool for exporting stl from THREE.js
https://notnullgames.github.io/Herosaver/
GNU General Public License v3.0
19 stars 26 forks source link

Saving OBJ files not working #1

Open konsumer opened 4 years ago

konsumer commented 4 years ago

Currently STL & JSON bookmarklets work, but OBJ stopped working.

In dev-console, I get a bunch of errors, like this:

THREE.OBJExporter.parseMesh(): geometry type unsupported 
konsumer commented 4 years ago

The exported STL appears valid, but blender crashes when I try to import it, so it might also be damaged.

chiefofkaiser commented 4 years ago

Opening the Exported STL in 3D Builder, Cura, or Blender displays a large spikey mass. OBJ file does not open. Let me know if there is anything else I can add

konsumer commented 4 years ago

I think I need to look at the JSON, when I have more time, and see if it's good. if so, then they might be doing soemthing to break the output.

CodilX commented 4 years ago

They did make changes, and substantial ones at that. When loading meshes and after (from what I can tell) initial transformations, they obfuscate the meshes by changing weights, morphs, etc to pseudo random absurd values and those meshes get loaded into memory. The process is reversed when preparing the model for rendering. That modified mesh is what we can access and is why we're getting a garbled mess (take all of this with a grain of salt, it's non trivial to read and follow minified code even when beautified).

To bypass this requires modifying their functions to terminate before obfuscation or by undoing the obfuscation process when exporting.

The issue at hand is this would essentially mean breaking/cracking their "protection"/drm/whatever you want to call it. Up till now all iterations of "herosaver" were a purely academic exercise hovering in a gray area, but "cracking" their obfuscation would surely cross the line into legal trouble territory (speculation).

lillypath869 commented 4 years ago

Personally, I like what they are doing with the upper body. Basically making it a solid cube that engulfs the entire bounding box of the model.

From what I had seen, they are only messing with weights and not morphs.

Lastly, they put defensive measures in for other implementations of the script that modify the DOM to add menus. For those, they are sorting the geometry position attributes.

Antharon commented 4 years ago

so there are two ways to fix this - either bypass that obfuscation by setting all those weights to neutral number or collecting them and applying them in reverse?

When I first ripp-off herosaver I put saving script into chrome extension, so script will not inject any elements into DOM, this might help with preventing detection of herosaver. You can put whole herosaver UI into extension popup.

NilsBaumgartner1994 commented 4 years ago

leaving dot for new informations

konsumer commented 4 years ago

@Antharon I'm not sure how to do either of your suggestions, but I'll accept a PR. RE: extension: I'd prefer to not need an extension that needs to be rewritten for each browser. Greasemonkey can do the same stuff, if we really need something that runs outside the context of the page, but I have a feeling we don't need that.

jesmartinez commented 4 years ago

Any news on the project? I tried to fix it without success.

CodilX commented 4 years ago

In the latest update - a huge cube envelopes the exported model that is in a T pose with some meshes wrongly positioned. They also redid the weights and indexes, but maybe someone can figure it out ;)

konsumer commented 4 years ago

I'm pretty busy right now, so I don't have time to dig in, but I'm happy to accept PRs if anyone else works it out.

srgank666 commented 3 years ago

HI there. There is no news on this one? I'm trying to take a look but I'm javascript newbie....

konsumer commented 3 years ago

Nope. I haven't had any time, and I'm not sure it's fixable, to begin with. I'll happily accept a PR, if someone figures it out, though.

LonelyDeveloper0 commented 7 months ago

Any news? Did you manage to fix it? I really need this .obj option, export the model with color

adunis commented 7 months ago

Hello! No, I didn't manage to fix it.

On Tue, 5 Mar 2024 at 18:48, SEI LA @.***> wrote:

Any news? Did you manage to fix it? I really need this .obj option, export the model with color

— Reply to this email directly, view it on GitHub https://github.com/notnullgames/Herosaver/issues/1#issuecomment-1979315195, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALMK4XLC4AFHYBYVFYQBME3YWYANRAVCNFSM4QFIPYYKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJXHEZTCNJRHE2Q . You are receiving this because you are subscribed to this thread.Message ID: @.***>

LonelyDeveloper0 commented 7 months ago

really sad, do you know another way to do this?