donmccurdy / glTF-Transform

glTF 2.0 SDK for JavaScript and TypeScript, on Web and Node.js.
https://gltf-transform.dev
MIT License
1.42k stars 150 forks source link

List of community extensions #1249

Open donmccurdy opened 10 months ago

donmccurdy commented 10 months ago

glTF Transform aims to support all KHR extensions and most EXT extensions, by installation from the @gltf-transform/extensions package. In addition, one important (and unique?) aspect of this project is that users can register implementations of new extensions, and then the glTF Transform API — including its optimization functions — gains the ability to optimize them.

I think it'd make a lot of sense to feature a list of glTF extensions implemented by others. Including:

The list could be at https://gltf-transform.dev/extensions for now, perhaps a new page later.

javagl commented 9 months ago

(Edited to fix the extension name)

The Cesium 3D Tiles Tools include (internal!) implementations of EXT_structural_metadata, EXT_mesh_features, and EXT_instance_features. The project is currently being refactored into several packages, and the extensions might soon be available as a separate npm package (with glTF-Transform as its only dependency). They will still be considered to be "internal" in some way, but might evolve into something that is public.

donmccurdy commented 9 months ago

To make sure I'm not misinterpreting your meaning for "internal", would you be glad to see these extensions included in a public list on https://gltf-transform.dev/, or prefer that this not happen until some later date?

Minor — I think you mean EXT_instance_features and not EXT_mesh_gpu_instancing? The latter is already in this repository.

javagl commented 9 months ago

(You're right, ... I updated it to EXT_instance_features)

"Internal" means that the implementations are not declared as public API, and even when the package is published on npm, it will mainly be for internal use (no stability guarantees and such...). How this is conveyed (e.g. when they are mentioned on the website) can be decided when the package is published.