bs-community / skinview3d

Three.js powered Minecraft skin viewer.
https://skinview3d-demo.vercel.app
MIT License
542 stars 90 forks source link

Bindings of skinview3d #107

Open g-plane opened 2 years ago

g-plane commented 2 years ago

I'm going to create some packages which are bindings of skinview3d for some popular front-end frameworks/libraries. These packages will provide components and accept properties then pass them to skinview3d.

Currently these frameworks are considered:

The frameworks below will not be supported:

Additionally, I'm going to create a special binding which will provide Web Components. This allows users to use it if they don't use any front-end frameworks or they're using unsupported frameworks we mentioned above. (Angular and Vue.js 2 support Web Components.)

I've noticed that @Hacksore has created a package for React: Hacksore/react-skinview3d, but it doesn't provide "many options" to let users control the behavior of skinview3d. Personally, I think it could be reasonable since it keeps simple for those users who don't care too much. But for some advanced users, such as Blessing Skin, it's not enough, so I'm not sure if we need to create another binding (It doesn't mean it will replace @Hacksore 's package.), and I'd like to hear from @Hacksore .

Hacksore commented 2 years ago

@g-plane I wouldn't mind if we move react-skinview3d to this org and give it a more concise and extensible API.

Don't really have much experience with creating ng/Vue libraries though.

g-plane commented 2 years ago

It can be a breaking change if API of react-skinview3d changed hugely, which may confuse users.

Hacksore commented 2 years ago

I'd say confusion is possible but that's what major versions are for šŸ˜….

g-plane commented 2 years ago

I may put all binding packages into a monorepo. Do we have a nice way to migrate that?

Hacksore commented 2 years ago

Not really but you can take the source of mine.

What monorepo tool do you plan on using?

g-plane commented 2 years ago

Just pnpm, nothing else.

Hacksore commented 2 years ago

Would it be a good idea to maybe scope these packages like @bs-community/react-skinview3d, @bs-community/vue-skinview3d etc?

Not sure there is an npm org set up for this but something we could here input on from @yushijinhun.

g-plane commented 2 years ago

I'd like that the npm organization name can be "skinview3d", and they will be "@skinview3d/react" and "@skinview3d/vue", etc.

so1ve commented 1 year ago

Hi šŸ‘‹ I have decided to make a vue binding of skinview3d. Please let me know if you want to put it in a monorepo :)

g-plane commented 1 year ago

Welcome.

so1ve commented 1 year ago

Here it is: https://github.com/so1ve/vue-skinview3d

Hacksore commented 1 year ago

Been keeping react-skinview3d updated as well. Initially the wrapper was very opinionated and lacking support for much customization but now you should be able to do almost anything skinview3d can.

I've created the npm organization skinview3d so let's get all the binds created separately then we can merge them into a monrepo.

@g-plane I'd prefer to use turborepo for the monorepo, do you have objections?

Current standing of bindings so far some of which may never happen.

g-plane commented 1 year ago

I prefer Turborepo too.

so1ve commented 1 year ago

I can create a binding for solid too, but I'd like to work on it after we merge the existing bindings into a monorepo to reduce workload.

Hacksore commented 1 year ago

@g-plane do you want to still continue this or should we close out this issue?

g-plane commented 1 year ago

I don't have time on working on this, but I think we can keep this open for those interested in it.

Hacksore commented 1 year ago

@g-plane can you create a new repo and we can move this issue to it?

g-plane commented 1 year ago

I think we can turn this repo into monorepo by using pnpm.

Hacksore commented 1 year ago

@g-plane but I think it's better to keep the source separated from lib bindings.

g-plane commented 1 year ago

@yushijinhun How do you think?

JoCat commented 10 months ago

In principle, nothing prevents you from leaving the main skinview3d library here and creating a separate mono repository for bindings. By the way, I can also help with this.