@needle-tools/gltf-build-pipeline 2.16.0-next.fc19d36 → 3.0.0-next.03f5d79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +41 -2
  2. package/dist/cli/index.js +4147 -232
  3. package/package.json +9 -14
  4. package/tools/pmrem/pkg/pmrem_wasm.d.ts +25 -0
  5. package/tools/pmrem/pkg/pmrem_wasm.js +110 -0
  6. package/tools/pmrem/pkg/pmrem_wasm_bg.wasm +0 -0
  7. package/dist/cache/cache.d.ts +0 -58
  8. package/dist/cache/cache.js +0 -330
  9. package/dist/cache/index.d.ts +0 -2
  10. package/dist/cache/index.js +0 -2
  11. package/dist/cache/job-cache.d.ts +0 -26
  12. package/dist/cache/job-cache.js +0 -84
  13. package/dist/cli/index.d.ts +0 -2
  14. package/dist/config/index.d.ts +0 -53
  15. package/dist/config/index.js +0 -156
  16. package/dist/constants.d.ts +0 -7
  17. package/dist/constants.js +0 -7
  18. package/dist/extensions/NEEDLE_compression_texture/NEEDLE_compression_texture.d.ts +0 -24
  19. package/dist/extensions/NEEDLE_compression_texture/NEEDLE_compression_texture.js +0 -54
  20. package/dist/extensions/NEEDLE_compression_texture/index.d.ts +0 -1
  21. package/dist/extensions/NEEDLE_compression_texture/index.js +0 -1
  22. package/dist/extensions/NEEDLE_lightmaps/index.d.ts +0 -39
  23. package/dist/extensions/NEEDLE_lightmaps/index.js +0 -257
  24. package/dist/extensions/NEEDLE_mesh_compression/NEEDLE_mesh_compression.d.ts +0 -27
  25. package/dist/extensions/NEEDLE_mesh_compression/NEEDLE_mesh_compression.js +0 -88
  26. package/dist/extensions/NEEDLE_mesh_compression/index.d.ts +0 -1
  27. package/dist/extensions/NEEDLE_mesh_compression/index.js +0 -1
  28. package/dist/extensions/NEEDLE_opaque/NEEDLE_opaque.d.ts +0 -27
  29. package/dist/extensions/NEEDLE_opaque/NEEDLE_opaque.js +0 -1048
  30. package/dist/extensions/NEEDLE_opaque/index.d.ts +0 -3
  31. package/dist/extensions/NEEDLE_opaque/index.js +0 -30
  32. package/dist/extensions/NEEDLE_pmrem/index.d.ts +0 -21
  33. package/dist/extensions/NEEDLE_pmrem/index.js +0 -95
  34. package/dist/extensions/NEEDLE_progressive/NEEDLE_progressive.d.ts +0 -48
  35. package/dist/extensions/NEEDLE_progressive/NEEDLE_progressive.js +0 -69
  36. package/dist/extensions/NEEDLE_progressive/index.d.ts +0 -1
  37. package/dist/extensions/NEEDLE_progressive/index.js +0 -1
  38. package/dist/extensions/NEEDLE_progressive_mesh_settings/index.d.ts +0 -23
  39. package/dist/extensions/NEEDLE_progressive_mesh_settings/index.js +0 -41
  40. package/dist/extensions/NEEDLE_progressive_texture_settings/index.d.ts +0 -25
  41. package/dist/extensions/NEEDLE_progressive_texture_settings/index.js +0 -38
  42. package/dist/extensions/index.d.ts +0 -15
  43. package/dist/extensions/index.js +0 -34
  44. package/dist/extensions/utils.d.ts +0 -9
  45. package/dist/extensions/utils.js +0 -79
  46. package/dist/functions/weld.3.d.ts +0 -76
  47. package/dist/functions/weld.3.js +0 -414
  48. package/dist/index.d.ts +0 -8
  49. package/dist/index.js +0 -8
  50. package/dist/scripts/index.d.ts +0 -2
  51. package/dist/scripts/index.js +0 -2
  52. package/dist/scripts/pack-gltf.d.ts +0 -17
  53. package/dist/scripts/pack-gltf.js +0 -152
  54. package/dist/scripts/stats.d.ts +0 -5
  55. package/dist/scripts/stats.js +0 -20
  56. package/dist/transforms/index.d.ts +0 -9
  57. package/dist/transforms/index.js +0 -9
  58. package/dist/transforms/needle_animation_transform.d.ts +0 -2
  59. package/dist/transforms/needle_animation_transform.js +0 -5
  60. package/dist/transforms/needle_asset.d.ts +0 -3
  61. package/dist/transforms/needle_asset.js +0 -50
  62. package/dist/transforms/needle_common.d.ts +0 -17
  63. package/dist/transforms/needle_common.js +0 -1
  64. package/dist/transforms/needle_mesh_transform.d.ts +0 -15
  65. package/dist/transforms/needle_mesh_transform.js +0 -223
  66. package/dist/transforms/needle_pmrem.d.ts +0 -21
  67. package/dist/transforms/needle_pmrem.js +0 -238
  68. package/dist/transforms/needle_progressive.d.ts +0 -45
  69. package/dist/transforms/needle_progressive.js +0 -1101
  70. package/dist/transforms/needle_texture_transform.d.ts +0 -15
  71. package/dist/transforms/needle_texture_transform.js +0 -267
  72. package/dist/transforms/needle_toktx.d.ts +0 -26
  73. package/dist/transforms/needle_toktx.js +0 -250
  74. package/dist/transforms/needle_webp.d.ts +0 -15
  75. package/dist/transforms/needle_webp.js +0 -53
  76. package/dist/transforms/toktx.d.ts +0 -52
  77. package/dist/transforms/toktx.js +0 -221
  78. package/dist/transforms/toktx_types.d.ts +0 -78
  79. package/dist/transforms/toktx_types.js +0 -62
  80. package/dist/transforms/util.d.ts +0 -21
  81. package/dist/transforms/util.js +0 -90
  82. package/dist/utils/analytics.d.ts +0 -24
  83. package/dist/utils/analytics.js +0 -128
  84. package/dist/utils/compression_utils.d.ts +0 -2
  85. package/dist/utils/compression_utils.js +0 -6
  86. package/dist/utils/fileutils.d.ts +0 -22
  87. package/dist/utils/fileutils.js +0 -195
  88. package/dist/utils/guid.d.ts +0 -1
  89. package/dist/utils/guid.js +0 -5
  90. package/dist/utils/index.d.ts +0 -10
  91. package/dist/utils/index.js +0 -10
  92. package/dist/utils/merge.d.ts +0 -12
  93. package/dist/utils/merge.js +0 -31
  94. package/dist/utils/mesh.d.ts +0 -13
  95. package/dist/utils/mesh.js +0 -124
  96. package/dist/utils/nodeio.d.ts +0 -11
  97. package/dist/utils/nodeio.js +0 -116
  98. package/dist/utils/stats.d.ts +0 -70
  99. package/dist/utils/stats.js +0 -265
  100. package/dist/utils/test-assert.d.ts +0 -8
  101. package/dist/utils/test-assert.js +0 -18
  102. package/dist/utils/texture.d.ts +0 -5
  103. package/dist/utils/texture.js +0 -14
  104. package/dist/utils/validate.d.ts +0 -6
  105. package/dist/utils/validate.js +0 -17
  106. package/dist/utils/version.d.ts +0 -1
  107. package/dist/utils/version.gen.d.ts +0 -1
  108. package/dist/utils/version.gen.js +0 -1
  109. package/dist/utils/version.js +0 -4
  110. package/scripts/clear-caches.mjs +0 -4
  111. package/scripts/defaults.mjs +0 -12
  112. package/scripts/fileutils.mjs +0 -6
  113. package/scripts/index.mjs +0 -41
  114. package/scripts/limit-caches.mjs +0 -4
  115. package/scripts/make-progressive.mjs +0 -16
  116. package/scripts/pack-gltf.mjs +0 -107
package/README.md CHANGED
@@ -14,10 +14,10 @@ Includes support for generating LOD quality level for textures and meshes. Use w
14
14
  In general all files that have been processed by this package are valid glTF/GLB files.
15
15
  The glTF Build Pipeline package is meant to be used as a last step before delivery.
16
16
  That means:
17
- - files are meant to be loaded e.g. in a web runtime like three.js
17
+ - files are meant to be loaded by [Needle Engine](https://needle.tools) (and other three.js based runtimes)
18
18
  - files are not to be opened in Blender again to be further edited
19
19
 
20
- To load progressively enhanced glTF files in any three.js based engine see examples at [@needle-tools/gltf-progressive](https://www.npmjs.com/package/@needle-tools/gltf-progressive)
20
+ To load progressively enhanced glTF files in Needle Engine or another three.js based runtime, see examples at [@needle-tools/gltf-progressive](https://www.npmjs.com/package/@needle-tools/gltf-progressive)
21
21
 
22
22
  ### Installation
23
23
 
@@ -26,6 +26,45 @@ To load progressively enhanced glTF files in any three.js based engine see examp
26
26
  ### Commands
27
27
  - `help` - use help to view options
28
28
 
29
+ ### Platform support
30
+
31
+ The bundled `basisu` encoder (used for HDR / EXR → KTX2 HDR) supports:
32
+
33
+ | OS | Arch | Status |
34
+ |---------|-----------------------|--------|
35
+ | Linux | x64 | Supported |
36
+ | Linux | arm64 | Not supported |
37
+ | macOS | arm64 (Apple Silicon) | Supported |
38
+ | macOS | x64 (Intel) | Not supported |
39
+ | Windows | x64 | Supported |
40
+
41
+ ### Configuration
42
+
43
+ The pipeline reads an optional `needle.config.json` from the working directory (or any parent directory). Configure pipeline behaviour under the `gltf` key:
44
+
45
+ ```json
46
+ {
47
+ "gltf": {
48
+ "usecase": "product",
49
+ "textures": { "lods": true },
50
+ "meshes": { "lods": true },
51
+ "audio": { "enabled": true, "bitrate": 64 },
52
+ "exr": { "enabled": true }
53
+ }
54
+ }
55
+ ```
56
+
57
+ The `gltf` value may also be a string shorthand for `usecase` — `"gltf": "product"` is equivalent to `"gltf": { "usecase": "product" }`.
58
+
59
+ | Key | Type | Default | Description |
60
+ |-----|------|---------|-------------|
61
+ | `usecase` | `"default" \| "product" \| "world"` | `"default"` | High-level optimisation profile. |
62
+ | `textures.lods` | `boolean` | `true` | Generate progressive texture LODs. |
63
+ | `meshes.lods` | `boolean` | `true` | Generate progressive mesh LODs. |
64
+ | `audio.enabled` | `boolean` | `true` | Compress externally referenced `.wav` audio files to Opus in an `.ogg` container, rewriting the URIs in the glTF. Lossy formats (`.mp3`, `.ogg`, `.m4a`, `.aac`) pass through unchanged to avoid compounding compression artifacts. Requires `ffmpeg` with `libopus` on `PATH`; when missing the build logs a warning and leaves the audio files untouched. |
65
+ | `audio.bitrate` | `number` (kbps) | `128` | Opus encoding bitrate. 96 is near-transparent for most music; 128 matches YouTube's music tier and is the safe "won't sound bad" default. Drop to 48–64 for known mono/UI-only assets. |
66
+ | `exr.enabled` | `boolean` | `true` | Convert EXR textures to KTX2 HDR via PMREM. When `false`, EXR textures (bundled and externally referenced) are left as-is so a downstream step can handle them. |
67
+
29
68
  # Contact
30
69
 
31
70
  For licensing questions please contact us.