@carbonenginejs/runtime-resource 0.8.0 → 0.9.1

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 (297) hide show
  1. package/LICENSE +21 -21
  2. package/NOTICE +31 -29
  3. package/README.md +67 -548
  4. package/dist/CjsMotherLode.js +1271 -1271
  5. package/dist/CjsResMan.js +3005 -3005
  6. package/dist/CjsResManQueue.js +214 -214
  7. package/dist/CjsResource.js +566 -566
  8. package/dist/CjsResourceSource.js +68 -59
  9. package/dist/CjsResourceSource.js.map +1 -1
  10. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
  11. package/dist/format/CjsBlueReader.js +269 -269
  12. package/dist/format/CjsFormat.js +197 -192
  13. package/dist/format/CjsFormat.js.map +1 -1
  14. package/dist/format/CjsReader.js +18 -18
  15. package/dist/format/CjsResourceProbe.js +277 -277
  16. package/dist/format/payloadContract.js +173 -173
  17. package/dist/formats/black/CjsBlackFormat.js +278 -278
  18. package/dist/formats/black/core/CjsBlackBinaryReader.js +157 -153
  19. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  20. package/dist/formats/black/core/CjsBlackPropertyReaders.js +387 -382
  21. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  22. package/dist/formats/black/core/CjsBlackReader.js +639 -639
  23. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +437 -433
  24. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  25. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -0
  26. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js.map +1 -0
  27. package/dist/formats/black/core/blackConstants.js +7 -7
  28. package/dist/formats/black/core/blackDefinitions.js +10 -10
  29. package/dist/formats/black/core/blackDefinitions.js.map +1 -1
  30. package/dist/formats/black/core/blackEnums.js +6 -6
  31. package/dist/formats/black/core/blackSchema.js +3 -3
  32. package/dist/formats/black/core/blackVersion.js +22 -22
  33. package/dist/formats/black/core/helpers.js +182 -182
  34. package/dist/formats/black/core/schema.js +4 -4
  35. package/dist/formats/black/index.js +2 -2
  36. package/dist/formats/bnk/CjsBnkFormat.js +125 -125
  37. package/dist/formats/bnk/core/graph.js +140 -140
  38. package/dist/formats/bnk/core/helpers.js +409 -409
  39. package/dist/formats/bnk/core/musicNodes.js +493 -489
  40. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  41. package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
  42. package/dist/formats/bnk/index.js +2 -2
  43. package/dist/formats/cmf/CjsCmfFormat.js +497 -497
  44. package/dist/formats/cmf/core/binary.js +123 -118
  45. package/dist/formats/cmf/core/binary.js.map +1 -1
  46. package/dist/formats/cmf/core/buffers.js +233 -233
  47. package/dist/formats/cmf/core/constants.js +47 -47
  48. package/dist/formats/cmf/core/gr2Anim.js +453 -453
  49. package/dist/formats/cmf/core/helpers.js +287 -287
  50. package/dist/formats/cmf/core/pack.js +276 -276
  51. package/dist/formats/cmf/core/schema.js +364 -364
  52. package/dist/formats/cmf/core/shared.js +268 -268
  53. package/dist/formats/cmf/core/writer.js +517 -517
  54. package/dist/formats/cmf/index.js +2 -2
  55. package/dist/formats/dds/CjsDdsFormat.js +200 -193
  56. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  57. package/dist/formats/dds/core/bc6h.js +288 -288
  58. package/dist/formats/dds/core/bc7.js +256 -251
  59. package/dist/formats/dds/core/bc7.js.map +1 -1
  60. package/dist/formats/dds/core/helpers.js +815 -815
  61. package/dist/formats/dds/index.js +2 -2
  62. package/dist/formats/fbx/CjsFbxFormat.js +266 -266
  63. package/dist/formats/fbx/core/helpers.js +3911 -3901
  64. package/dist/formats/fbx/core/helpers.js.map +1 -1
  65. package/dist/formats/fbx/index.js +2 -2
  66. package/dist/formats/flac/CjsFlacFormat.js +93 -87
  67. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  68. package/dist/formats/flac/core/helpers.js +295 -295
  69. package/dist/formats/flac/index.js +2 -2
  70. package/dist/formats/gif/CjsGifFormat.js +92 -87
  71. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  72. package/dist/formats/gif/core/helpers.js +360 -360
  73. package/dist/formats/gif/index.js +2 -2
  74. package/dist/formats/gltf/CjsGltfFormat.js +290 -290
  75. package/dist/formats/gltf/core/helpers.js +292 -292
  76. package/dist/formats/gltf/core/json.js +79 -79
  77. package/dist/formats/gltf/core/parser.js +666 -666
  78. package/dist/formats/gltf/core/targets.js +163 -163
  79. package/dist/formats/gltf/index.js +2 -2
  80. package/dist/formats/gr2/CjsGr2Format.js +46 -0
  81. package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
  82. package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
  83. package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
  84. package/dist/formats/gr2/core/bitknit2.js +280 -0
  85. package/dist/formats/gr2/core/bitknit2.js.map +1 -0
  86. package/dist/formats/gr2/core/curves.js +1047 -0
  87. package/dist/formats/gr2/core/curves.js.map +1 -0
  88. package/dist/formats/gr2/core/gsf.js +72 -0
  89. package/dist/formats/gr2/core/gsf.js.map +1 -0
  90. package/dist/formats/gr2/core/helpers.js +332 -0
  91. package/dist/formats/gr2/core/helpers.js.map +1 -0
  92. package/dist/formats/gr2/core/json.js +622 -0
  93. package/dist/formats/gr2/core/json.js.map +1 -0
  94. package/dist/formats/gr2/core/oodle1.js +388 -0
  95. package/dist/formats/gr2/core/oodle1.js.map +1 -0
  96. package/dist/formats/gr2/core/reader.js +617 -0
  97. package/dist/formats/gr2/core/reader.js.map +1 -0
  98. package/dist/formats/gr2/core/tangents.js +48 -0
  99. package/dist/formats/gr2/core/tangents.js.map +1 -0
  100. package/dist/formats/gr2/core/targets.js +351 -0
  101. package/dist/formats/gr2/core/targets.js.map +1 -0
  102. package/dist/formats/gr2/index.js +3 -0
  103. package/dist/formats/gr2/index.js.map +1 -0
  104. package/dist/formats/index.js +30 -23
  105. package/dist/formats/index.js.map +1 -1
  106. package/dist/formats/jpeg/CjsJpegFormat.js +212 -206
  107. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  108. package/dist/formats/jpeg/core/helpers.js +350 -350
  109. package/dist/formats/jpeg/core/jpeg.js +387 -377
  110. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  111. package/dist/formats/jpeg/index.js +2 -2
  112. package/dist/formats/mp3/CjsMp3Format.js +197 -192
  113. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  114. package/dist/formats/mp3/core/helpers.js +338 -338
  115. package/dist/formats/mp3/index.js +2 -2
  116. package/dist/formats/mp4/CjsMp4Format.js +197 -191
  117. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  118. package/dist/formats/mp4/core/helpers.js +449 -449
  119. package/dist/formats/mp4/index.js +2 -2
  120. package/dist/formats/obj/CjsObjFormat.js +253 -253
  121. package/dist/formats/obj/core/helpers.js +573 -573
  122. package/dist/formats/obj/core/json.js +64 -64
  123. package/dist/formats/obj/core/parser.js +321 -321
  124. package/dist/formats/obj/index.js +2 -2
  125. package/dist/formats/ogg/CjsOggFormat.js +94 -88
  126. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  127. package/dist/formats/ogg/core/helpers.js +387 -387
  128. package/dist/formats/ogg/core/imdct.js +178 -178
  129. package/dist/formats/ogg/core/vorbis.js +1004 -999
  130. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  131. package/dist/formats/ogg/index.js +2 -2
  132. package/dist/formats/png/CjsPngFormat.js +201 -195
  133. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  134. package/dist/formats/png/core/helpers.js +583 -583
  135. package/dist/formats/png/index.js +2 -2
  136. package/dist/formats/red/CjsRedFormat.js +261 -261
  137. package/dist/formats/red/core/CjsRedReader.js +194 -194
  138. package/dist/formats/red/core/blackDefinitions.js +3 -3
  139. package/dist/formats/red/core/helpers.js +139 -139
  140. package/dist/formats/red/core/redGraph.js +68 -68
  141. package/dist/formats/red/core/schema.js +4 -4
  142. package/dist/formats/red/index.js +2 -2
  143. package/dist/formats/stl/CjsStlFormat.js +365 -365
  144. package/dist/formats/stl/core/helpers.js +261 -261
  145. package/dist/formats/stl/core/json.js +51 -51
  146. package/dist/formats/stl/core/stl.js +634 -629
  147. package/dist/formats/stl/core/stl.js.map +1 -1
  148. package/dist/formats/stl/core/targets.js +163 -163
  149. package/dist/formats/stl/index.js +2 -2
  150. package/dist/formats/tga/CjsTgaFormat.js +197 -192
  151. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  152. package/dist/formats/tga/core/helpers.js +446 -446
  153. package/dist/formats/tga/index.js +2 -2
  154. package/dist/formats/wav/CjsWavFormat.js +198 -192
  155. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  156. package/dist/formats/wav/core/helpers.js +328 -328
  157. package/dist/formats/wav/index.js +2 -2
  158. package/dist/formats/webm/CjsWebmFormat.js +197 -191
  159. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  160. package/dist/formats/webm/core/helpers.js +537 -537
  161. package/dist/formats/webm/index.js +2 -2
  162. package/dist/formats/webp/CjsWebpFormat.js +91 -86
  163. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  164. package/dist/formats/webp/core/helpers.js +214 -214
  165. package/dist/formats/webp/index.js +2 -2
  166. package/dist/formats/wem/CjsWemFormat.js +242 -241
  167. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  168. package/dist/formats/wem/core/bitStream.js +259 -259
  169. package/dist/formats/wem/core/codebookLibrary.js +164 -164
  170. package/dist/formats/wem/core/helpers.js +417 -417
  171. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
  172. package/dist/formats/wem/core/ptadpcm.js +77 -77
  173. package/dist/formats/wem/core/resolve.js +121 -121
  174. package/dist/formats/wem/core/wemToOgg.js +485 -485
  175. package/dist/formats/wem/index.js +2 -2
  176. package/dist/formats/yaml/CjsYamlFormat.js +89 -83
  177. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  178. package/dist/formats/yaml/core/CjsYamlReader.js +311 -305
  179. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  180. package/dist/formats/yaml/core/helpers.js +160 -160
  181. package/dist/formats/yaml/index.js +2 -2
  182. package/dist/index.js +49 -48
  183. package/dist/index.js.map +1 -1
  184. package/dist/resourcePath.js +18 -18
  185. package/dist/resourceStates.js +9 -9
  186. package/dist/resources/AudioGeometryResData.js +47 -47
  187. package/dist/resources/GStateBindingCallbackData.js +31 -31
  188. package/dist/resources/MeshDecalData.js +37 -37
  189. package/dist/resources/MeshDecalLodData.js +34 -34
  190. package/dist/resources/Tr2EffectRes.js +71 -71
  191. package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
  192. package/dist/resources/Tr2GrannyStateRes.js +44 -44
  193. package/dist/resources/Tr2ImageRes.js +114 -114
  194. package/dist/resources/Tr2LightProfileRes.js +40 -40
  195. package/dist/resources/Tr2MaterialArea.js +34 -34
  196. package/dist/resources/Tr2MaterialMesh.js +31 -31
  197. package/dist/resources/Tr2MaterialRes.js +34 -34
  198. package/dist/resources/Tr2ShaderPermutation.js +43 -43
  199. package/dist/resources/Tr2TextureLodManager.js +80 -80
  200. package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
  201. package/dist/resources/Tr2TexturePackChannel.js +37 -37
  202. package/dist/resources/Tr2TexturePipeline.js +52 -52
  203. package/dist/resources/Tr2TexturePipelineParams.js +34 -34
  204. package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
  205. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
  206. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  207. package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
  208. package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
  209. package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
  210. package/dist/resources/TriGeometryRes.js +239 -239
  211. package/dist/resources/TriGeometryResAreaData.js +59 -59
  212. package/dist/resources/TriGeometryResJointData.js +38 -38
  213. package/dist/resources/TriGeometryResLodData.js +88 -88
  214. package/dist/resources/TriGeometryResMeshData.js +63 -63
  215. package/dist/resources/TriGeometryResSkeletonData.js +34 -34
  216. package/dist/resources/TriGrannyRes.js +43 -43
  217. package/dist/resources/TriJointBinding.js +38 -38
  218. package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
  219. package/dist/resources/TriRtGeometryConstants.js +88 -88
  220. package/dist/resources/TriTextureRes.js +304 -304
  221. package/dist/resources/enums.js +18 -18
  222. package/dist/resources/resourceBoundary.js +47 -47
  223. package/dist/resources/texturePipelineBehavior.js +308 -308
  224. package/dist/texture/CjsTextureArrayRes.js +406 -406
  225. package/dist/texture/CjsTextureParameterProxy.js +133 -133
  226. package/docs/README.md +73 -0
  227. package/docs/architecture.md +86 -0
  228. package/docs/concepts/resource-lifecycle.md +217 -0
  229. package/docs/formats/README.md +105 -0
  230. package/docs/formats/gr2.md +161 -0
  231. package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +173 -155
  232. package/docs/formats/stl.md +37 -0
  233. package/docs/formats/wwise.md +44 -0
  234. package/docs/reference/classes/README.md +33 -0
  235. package/docs/reference/classes/core.md +106 -0
  236. package/docs/reference/classes/dropped.md +46 -0
  237. package/docs/reference/classes/formats.md +522 -0
  238. package/docs/reference/classes/resources.md +346 -0
  239. package/docs/reference/classes/texture.md +26 -0
  240. package/docs/reference/events.md +92 -0
  241. package/docs/reference/motherlode-cache.md +244 -0
  242. package/docs/reference/queues.md +102 -0
  243. package/docs/reference/reload.md +107 -0
  244. package/docs/reference/texture-arrays.md +113 -0
  245. package/docs/reference/texture-pipeline.md +53 -0
  246. package/docs/roadmap.md +104 -0
  247. package/format-notices/black/LICENSE +21 -21
  248. package/format-notices/black/NOTICE +47 -47
  249. package/format-notices/bnk/LICENSE +21 -21
  250. package/format-notices/bnk/NOTICE +20 -20
  251. package/format-notices/cmf/LICENSE +21 -21
  252. package/format-notices/cmf/NOTICE +36 -36
  253. package/format-notices/dds/LICENSE +21 -21
  254. package/format-notices/dds/NOTICE +14 -14
  255. package/format-notices/fbx/LICENSE +21 -21
  256. package/format-notices/fbx/NOTICE +14 -14
  257. package/format-notices/flac/LICENSE +21 -21
  258. package/format-notices/flac/NOTICE +14 -14
  259. package/format-notices/gif/LICENSE +21 -21
  260. package/format-notices/gif/NOTICE +14 -14
  261. package/format-notices/gltf/LICENSE +21 -21
  262. package/format-notices/gltf/NOTICE +27 -27
  263. package/format-notices/gr2/LICENSE +21 -0
  264. package/format-notices/gr2/NOTICE +60 -0
  265. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
  266. package/format-notices/jpeg/LICENSE +21 -21
  267. package/format-notices/jpeg/NOTICE +14 -14
  268. package/format-notices/mp3/LICENSE +21 -21
  269. package/format-notices/mp3/NOTICE +14 -14
  270. package/format-notices/mp4/LICENSE +21 -21
  271. package/format-notices/mp4/NOTICE +14 -14
  272. package/format-notices/obj/LICENSE +21 -21
  273. package/format-notices/obj/NOTICE +26 -26
  274. package/format-notices/ogg/LICENSE +21 -21
  275. package/format-notices/ogg/NOTICE +28 -28
  276. package/format-notices/png/LICENSE +21 -21
  277. package/format-notices/png/NOTICE +14 -14
  278. package/format-notices/red/LICENSE +21 -21
  279. package/format-notices/red/NOTICE +31 -31
  280. package/format-notices/stl/LICENSE +21 -21
  281. package/format-notices/stl/NOTICE +21 -21
  282. package/format-notices/tga/LICENSE +21 -21
  283. package/format-notices/tga/NOTICE +14 -14
  284. package/format-notices/wav/LICENSE +21 -21
  285. package/format-notices/wav/NOTICE +14 -14
  286. package/format-notices/webm/LICENSE +21 -21
  287. package/format-notices/webm/NOTICE +14 -14
  288. package/format-notices/webp/LICENSE +21 -21
  289. package/format-notices/webp/NOTICE +14 -14
  290. package/format-notices/wem/LICENSE +57 -57
  291. package/format-notices/wem/NOTICE +33 -33
  292. package/format-notices/yaml/LICENSE +21 -21
  293. package/format-notices/yaml/NOTICE +44 -44
  294. package/package.json +52 -51
  295. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +0 -4
  296. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +0 -1
  297. package/resource-lifecycle.md +0 -679
@@ -0,0 +1,104 @@
1
+ # Roadmap
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource`
5
+ Audience: Integrators and maintainers
6
+ Summary: Records approved future direction and open design questions; nothing on this page is implemented.
7
+
8
+ Everything below is future work. Current behavior is documented in the
9
+ [reference pages](reference/motherlode-cache.md); where this page and a
10
+ reference page disagree, the reference page describes the shipped package.
11
+
12
+ ## Runtime manager follow-up
13
+
14
+ The ResMan/MotherLode contract is complete for its current consumers. Future
15
+ work should be driven by measured application needs rather than another
16
+ resource preparation abstraction:
17
+
18
+ - main-queue priority and starvation policy;
19
+ - cancellation/abort propagation for work that has already started;
20
+ - `WaitUrgent()` after real priority and bounded fairness;
21
+ - queue-time and reader/format-time telemetry;
22
+ - application-level default retention policy selection;
23
+ - automatic resource/payload byte estimation and separate CPU/adapter
24
+ budgets;
25
+ - browser-aware source behavior such as fetch response type selection;
26
+ - purged-resource/device-loss recovery policy (backend device-loss recovery
27
+ belongs to the engine's realization operation).
28
+
29
+ ## Pre-adoption lifecycle API cleanup (approved, not implemented)
30
+
31
+ No released consumer currently depends on the ccpwgl-compatible liveness
32
+ names; the known ccpwgl format integrations are migration targets rather than
33
+ a reason to preserve them. Before runtime-core or another public consumer
34
+ adopts this contract, remove `KeepAlive()` and `KeepPayloadAlive()` instead
35
+ of retaining or deprecating compatibility aliases.
36
+
37
+ The public lifecycle should express caller intent directly:
38
+
39
+ - `Ready()` obtains or reconstructs the CPU payload;
40
+ - `AcquireLock()` returns a scoped hard-retention token;
41
+ - `ReleasePayload()` explicitly drops the CPU payload; and
42
+ - state queries remain pure.
43
+
44
+ ResMan should update identity activity when a canonical resource is acquired
45
+ and payload activity when it publishes or returns a ready payload. Those
46
+ timestamps are cache-policy implementation details, not calls consumers
47
+ should have to make. Cache admission and promotion must also be explicit
48
+ manager operations: merely accessing a resource must not permanently move it
49
+ from the byte-budget candidate set into an unbudgeted live set.
50
+
51
+ Do not add `TouchIdentity()` or `TouchPayload()` to the initial public API
52
+ unless a concrete soft-retention consumer appears. A consumer that needs a
53
+ residency guarantee should acquire a lock; one that merely uses a resource
54
+ should call `Ready()` and allow the configured cache policy to operate.
55
+
56
+ Raw `Lock()` / `Unlock()` is easy to mis-pair across asynchronous success,
57
+ failure, cancellation, and disposal. Prefer a JS-only acquired-lock API:
58
+
59
+ ```js
60
+ const hold = resource.AcquireLock();
61
+ try {
62
+ const payload = await resource.Ready();
63
+ await consume(payload);
64
+ } finally {
65
+ hold.Release();
66
+ }
67
+ ```
68
+
69
+ The acquired token should add exactly one lock, capture the canonical key and
70
+ ownership generation that received it, and release that exact lock at most
71
+ once. `Release()` must be idempotent. If the original record has been
72
+ deleted, replaced, purged, or rebound, releasing the stale token must not
73
+ decrement a new owner's lock. Acquisition and release must never fetch,
74
+ reconstruct, prepare, or release payload data themselves.
75
+
76
+ The token is an async-safety replacement for exposing the existing raw lock
77
+ count, not a new retention policy. For example, runtime-audio can hold
78
+ source/PCM payload through decode and release the token once it owns the
79
+ resulting WebAudio `AudioBuffer`; keeping the resource locked for the full
80
+ playback or decoded-cache lifetime would unnecessarily retain both
81
+ representations. Runtime-lifetime and group retention remain caller policy
82
+ built from explicit tokens, not an implicit default on every loaded resource.
83
+
84
+ ## Open design questions
85
+
86
+ - Should `Unload()` drop only adapter payloads by default, or CPU payloads
87
+ too?
88
+ - Should there be explicit `UnloadAdapterResources()`, `UnloadPayload()`, and
89
+ `Purge()` phases?
90
+ - Which format/resource-specific estimators should supply separate identity,
91
+ CPU-payload, and adapter byte weights without double-counting shared
92
+ buffers?
93
+ - Should manually attached/dynamic resources default to locked, like ccpwgl's
94
+ manual shader resources use `doNotPurge`?
95
+ - What explicit `Reload()`/reconstruction API should restore purged resources
96
+ without introducing surprising browser or network work?
97
+ - A resource-level `Purge()`/`Reload()` vocabulary remains future policy
98
+ work, as does whether `Unload()` should release engine adapter resources
99
+ and optionally CPU payloads.
100
+
101
+ ## Related documentation
102
+
103
+ - [MotherLode identity, cache, and retention](reference/motherlode-cache.md)
104
+ - [Candidate-first atomic reload](reference/reload.md)
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,47 +1,47 @@
1
- format-black
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
-
9
- This package is a CarbonEngineJS-facing reader for `.black` files. It
10
- contains original project code unless third-party material is explicitly listed
11
- below.
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
- interoperability, provenance, and future migration context only. This package is
14
- not affiliated with or endorsed by CCP Games.
15
-
16
- Third-party reference material
17
- ------------------------------
18
-
19
- black-reader-js
20
- Repository: https://github.com/rawrafox/black-reader-js
21
- Author: rawrafox
22
- Package author: aurora
23
- License: MIT
24
- Local license notice: Copyright (c) 2023 @rawrafox and @cppctamber
25
-
26
- CarbonEngineJS uses black-reader-js as reference material for `.black` format
27
- behavior. The format-black package is implemented against CarbonEngineJS
28
- core-types/canonical schema definitions and emits CarbonEngineJS public
29
- Black payload data.
30
-
31
- Provenance and legal requirements
32
- ---------------------------------
33
-
34
- This scaffold currently contains CarbonEngineJS original project code plus the
35
- third-party reference attribution listed above. It does not include copied
36
- CarbonEngine source code or third-party parser code.
37
-
38
- If future work copies, ports, translates, or derives from CarbonEngine, ccpwgl,
39
- Fenris Creations (CCP Games) / EVE assets or tools, or any third-party library,
40
- update this NOTICE before committing that work with:
41
-
42
- - upstream copyright holders;
43
- - upstream project/repository, file path, and revision when known;
44
- - upstream license name, license text or required notice location, and any
45
- redistribution obligations;
46
- - whether the material was copied/ported/adapted, or used only as a behavioral
47
- reference with no copied expression.
1
+ format-black
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+
9
+ This package is a CarbonEngineJS-facing reader for `.black` files. It
10
+ contains original project code unless third-party material is explicitly listed
11
+ below.
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
+ interoperability, provenance, and future migration context only. This package is
14
+ not affiliated with or endorsed by CCP Games.
15
+
16
+ Third-party reference material
17
+ ------------------------------
18
+
19
+ black-reader-js
20
+ Repository: https://github.com/rawrafox/black-reader-js
21
+ Author: rawrafox
22
+ Package author: aurora
23
+ License: MIT
24
+ Local license notice: Copyright (c) 2023 @rawrafox and @cppctamber
25
+
26
+ CarbonEngineJS uses black-reader-js as reference material for `.black` format
27
+ behavior. The format-black package is implemented against CarbonEngineJS
28
+ core-types/canonical schema definitions and emits CarbonEngineJS public
29
+ Black payload data.
30
+
31
+ Provenance and legal requirements
32
+ ---------------------------------
33
+
34
+ This scaffold currently contains CarbonEngineJS original project code plus the
35
+ third-party reference attribution listed above. It does not include copied
36
+ CarbonEngine source code or third-party parser code.
37
+
38
+ If future work copies, ports, translates, or derives from CarbonEngine, ccpwgl,
39
+ Fenris Creations (CCP Games) / EVE assets or tools, or any third-party library,
40
+ update this NOTICE before committing that work with:
41
+
42
+ - upstream copyright holders;
43
+ - upstream project/repository, file path, and revision when known;
44
+ - upstream license name, license text or required notice location, and any
45
+ redistribution obligations;
46
+ - whether the material was copied/ported/adapted, or used only as a behavioral
47
+ reference with no copied expression.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,20 +1,20 @@
1
- formats/bnk
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
- Wwise and the Wwise soundbank format are property of Audiokinetic Inc.
9
-
10
- This reader is original CarbonEngineJS code authored directly in
11
- runtime-resource; no legacy package was copied. The soundbank chunk layout,
12
- HIRC object field layouts, and the event-graph resolution exposed as
13
- `eventMediaFromBanks` were implemented from publicly documented community
14
- knowledge of the format (ww2ogg, vgmstream, wwiser documentation) and
15
- independently verified by hexdump against EVE Online soundbanks (bank
16
- generator version 150); no code was copied from those projects and no
17
- Audiokinetic SDK material was used.
18
- Audiokinetic, CarbonEngine, and Fenris Creations (CCP Games) are mentioned for
19
- interoperability, provenance, and future migration context only. This package
20
- is not affiliated with or endorsed by Audiokinetic Inc. or CCP Games.
1
+ formats/bnk
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+ Wwise and the Wwise soundbank format are property of Audiokinetic Inc.
9
+
10
+ This reader is original CarbonEngineJS code authored directly in
11
+ runtime-resource; no legacy package was copied. The soundbank chunk layout,
12
+ HIRC object field layouts, and the event-graph resolution exposed as
13
+ `eventMediaFromBanks` were implemented from publicly documented community
14
+ knowledge of the format (ww2ogg, vgmstream, wwiser documentation) and
15
+ independently verified by hexdump against EVE Online soundbanks (bank
16
+ generator version 150); no code was copied from those projects and no
17
+ Audiokinetic SDK material was used.
18
+ Audiokinetic, CarbonEngine, and Fenris Creations (CCP Games) are mentioned for
19
+ interoperability, provenance, and future migration context only. This package
20
+ is not affiliated with or endorsed by Audiokinetic Inc. or CCP Games.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,36 +1,36 @@
1
- carbonenginejs/format-cmf
2
- =========================
3
-
4
- A pure-JavaScript reader for Carbon Mesh Format (.cmf) geometry containers.
5
-
6
- CarbonEngineJS-facing code is copyright CarbonEngineJS contributors.
7
- CarbonEngine source material, formats, class names, and schema semantics remain
8
- copyright their original CarbonEngine authors. Fenris Creations (CCP Games)
9
- source material, tools, assets, shader behavior, and EVE-related data remain
10
- copyright their original holders.
11
-
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for interoperability
13
- and provenance context. This package is not affiliated with or endorsed by CCP
14
- Games.
15
-
16
- Format reference
17
- ----------------
18
-
19
- The CMF v1 structure names, enum names, layout, and validation behavior were
20
- implemented from the local CarbonEngine mesh headers and sources:
21
-
22
- - mesh/include/cmf/cmf.h
23
- - mesh/include/cmf/v1.h
24
- - mesh/include/cmf/span.h
25
- - mesh/include/cmf/writer.h
26
- - mesh/src/cmf/writer.cpp
27
- - mesh/src/cmf/utils.cpp
28
-
29
- No CarbonEngine implementation code is copied into this package.
30
-
31
- Third-party dependencies
32
- ------------------------
33
-
34
- meshoptimizer JavaScript package
35
- Used for decoding CMF GPU-buffer sections compressed with meshoptimizer
36
- vertex/index codecs. Copyright Arseny Kapoulkine, MIT License.
1
+ carbonenginejs/format-cmf
2
+ =========================
3
+
4
+ A pure-JavaScript reader for Carbon Mesh Format (.cmf) geometry containers.
5
+
6
+ CarbonEngineJS-facing code is copyright CarbonEngineJS contributors.
7
+ CarbonEngine source material, formats, class names, and schema semantics remain
8
+ copyright their original CarbonEngine authors. Fenris Creations (CCP Games)
9
+ source material, tools, assets, shader behavior, and EVE-related data remain
10
+ copyright their original holders.
11
+
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for interoperability
13
+ and provenance context. This package is not affiliated with or endorsed by CCP
14
+ Games.
15
+
16
+ Format reference
17
+ ----------------
18
+
19
+ The CMF v1 structure names, enum names, layout, and validation behavior were
20
+ implemented from the local CarbonEngine mesh headers and sources:
21
+
22
+ - mesh/include/cmf/cmf.h
23
+ - mesh/include/cmf/v1.h
24
+ - mesh/include/cmf/span.h
25
+ - mesh/include/cmf/writer.h
26
+ - mesh/src/cmf/writer.cpp
27
+ - mesh/src/cmf/utils.cpp
28
+
29
+ No CarbonEngine implementation code is copied into this package.
30
+
31
+ Third-party dependencies
32
+ ------------------------
33
+
34
+ meshoptimizer JavaScript package
35
+ Used for decoding CMF GPU-buffer sections compressed with meshoptimizer
36
+ vertex/index codecs. Copyright Arseny Kapoulkine, MIT License.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,14 +1,14 @@
1
- format-dds
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
-
9
- This package is a standalone CarbonEngineJS-facing reader for DDS texture data.
10
- It contains original project code only unless this notice is expanded with
11
- third-party attribution.
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
- interoperability, provenance, and future migration context only. This package is
14
- not affiliated with or endorsed by CCP Games.
1
+ format-dds
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+
9
+ This package is a standalone CarbonEngineJS-facing reader for DDS texture data.
10
+ It contains original project code only unless this notice is expanded with
11
+ third-party attribution.
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
+ interoperability, provenance, and future migration context only. This package is
14
+ not affiliated with or endorsed by CCP Games.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,14 +1,14 @@
1
- format-fbx
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
-
9
- This package is a browser-safe CarbonEngineJS-facing reader for Autodesk FBX
10
- scene and geometry data. It contains original project code only unless this
11
- notice is expanded with third-party attribution.
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
- interoperability, provenance, and future CMF-import parity context only. This
14
- package is not affiliated with or endorsed by CCP Games.
1
+ format-fbx
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+
9
+ This package is a browser-safe CarbonEngineJS-facing reader for Autodesk FBX
10
+ scene and geometry data. It contains original project code only unless this
11
+ notice is expanded with third-party attribution.
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
+ interoperability, provenance, and future CMF-import parity context only. This
14
+ package is not affiliated with or endorsed by CCP Games.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.