Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addons: Deprecate MMD modules. #29698

Merged
merged 2 commits into from
Oct 23, 2024
Merged

Addons: Deprecate MMD modules. #29698

merged 2 commits into from
Oct 23, 2024

Conversation

Mugen87
Copy link
Collaborator

@Mugen87 Mugen87 commented Oct 19, 2024

Related issue: -

Description

The development of WebGPURenderer adds a lot of new code to the repository. It was previously mentioned in #29171 that we should revisit what we currently support as addons and example code. Certain addons like SDFGeometryGenerator, TiltLoader or PackedPhongMaterial have already been removed during this process.

The PR deprecates all modules which are related to the MMD (MikuMikuDance) format. This includes MMDLoader, MMDExporter, MMDAnimationHelper and MMDPhysics.

@takahirox put a lot of effort in developing these modules but unfortunately no collaborator is even remotely familiar with MMD. Given the huge and complex code base, the requirement for a custom toon material, the need for a separate parser (libs/mmdparser.module.js) and MMD's very specific character, I think the MMD suite should be moved to a third-party repository.

When done, the examples can be added back as external ones (meaning they include MMD modules from a different repository via jsdelivr).

Edit: New third-party repository: https://github.com/takahirox/three-mmd-loader

@takahirox
Copy link
Collaborator

takahirox commented Oct 20, 2024

That's sad, but I can understand the decision. Due to untransparent MMD specification that only rare people would know, a lot of custom code, and the need of external library, it would be hard to maintain to manage MMD stuffs in the official Three.js repo especially in the phase of developing new core modules, WebGPURenderer and related ones. Third-party repo would be more appropriate place to manage them.

I'm thinking of opening an repo for Three.js MMD stuffs (financial support is welcome, Three.js MMD users!).

When done, the examples can be added back as external ones (meaning they include MMD modules from a different repository via jsdelivr).

That sounds awesome. I will let you know when ready.

One request, if MMD stuffs are not immediate blockers, would you mind displaying deprecating messages with the link to the new repo for existing Three.js MMD users in a next few releases and then removing MMD modules?

@Mugen87
Copy link
Collaborator Author

Mugen87 commented Oct 20, 2024

That sounds good. If you share the link to the new repository, I'll rewrite the PR and implement deprecating warnings first.

The usual deprecating cycle of 10 releases is too long, imo. Removing the modules at the end of the year should be sufficient so developers have two releases to detect the deprecation warning and move to the new repository. Would that be okay for you?

@Makio64
Copy link
Contributor

Makio64 commented Oct 20, 2024

Would be nice to add a section in the doc with addons list and the external links 🔗

@takahirox
Copy link
Collaborator

The usual deprecating cycle of 10 releases is too long, imo

I feel the same, too. 2 or 3 cycles would be long enough. I will let you know when I create a repo soon.

@Mugen87 Mugen87 changed the title Addons: Remove MMD modules. Addons: Deprecate MMD modules. Oct 21, 2024
@Mugen87 Mugen87 added this to the r170 milestone Oct 21, 2024
@takahirox
Copy link
Collaborator

Likely when will r170 be? I hope I can create a repo hopefully that is ready to use by then.

@Mugen87
Copy link
Collaborator Author

Mugen87 commented Oct 21, 2024

October 30.

@Mugen87
Copy link
Collaborator Author

Mugen87 commented Oct 23, 2024

@takahirox Actually the external repository hasn't been fully ready until October 30. A simple link is sufficient for the beginning so developers know where to look for the alternative.

@takahirox
Copy link
Collaborator

takahirox commented Oct 23, 2024

Still brand new, but this is the repo I would add Three.js MMD stuffs. https://github.com/takahirox/three-mmd-loader

@Mugen87 Mugen87 merged commit e4bae2f into mrdoob:dev Oct 23, 2024
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants