@forgeax/engine-render 0.1.4 → 0.1.7

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 (979) hide show
  1. package/README.md +268 -640
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts +2 -0
  4. package/dist/__tests__/device-scope-lifecycle.unit.test.d.ts.map +1 -0
  5. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts +2 -0
  6. package/dist/__tests__/device-scope-stale-matrix.unit.test.d.ts.map +1 -0
  7. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts +2 -0
  8. package/dist/__tests__/fullscreen-feature-plan.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/gpu-driven-indirect-raster-evidence.d.ts.map +1 -1
  10. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts +6 -0
  11. package/dist/__tests__/gpu-driven-view-gpu-evidence.d.ts.map +1 -1
  12. package/dist/{gpu-driven/view-reference.d.ts → __tests__/gpu-driven-view-reference.d.ts} +4 -4
  13. package/dist/__tests__/gpu-driven-view-reference.d.ts.map +1 -0
  14. package/dist/__tests__/gpu-scene-render-graph-gpu.d.ts.map +1 -1
  15. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts +2 -0
  16. package/dist/__tests__/ibl/face-uniforms.unit.test.d.ts.map +1 -0
  17. package/dist/__tests__/morph-feature-plan.unit.test.d.ts +2 -0
  18. package/dist/__tests__/morph-feature-plan.unit.test.d.ts.map +1 -0
  19. package/dist/__tests__/render-feature-plan.test-d.d.ts +2 -0
  20. package/dist/__tests__/render-feature-plan.test-d.d.ts.map +1 -0
  21. package/dist/__tests__/render-feature-plan.unit.test.d.ts +2 -0
  22. package/dist/__tests__/render-feature-plan.unit.test.d.ts.map +1 -0
  23. package/dist/__tests__/ssao-config.unit.test.d.ts +2 -0
  24. package/dist/__tests__/ssao-config.unit.test.d.ts.map +1 -0
  25. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts +2 -0
  26. package/dist/__tests__/standard-clustered-pipeline.unit.test.d.ts.map +1 -0
  27. package/dist/__tests__/standard-descriptors.test-d.d.ts +2 -0
  28. package/dist/__tests__/standard-descriptors.test-d.d.ts.map +1 -0
  29. package/dist/__tests__/standard-pipeline.dawn.test.d.ts +2 -0
  30. package/dist/__tests__/standard-pipeline.dawn.test.d.ts.map +1 -0
  31. package/dist/__tests__/standard-pipeline.integration.test.d.ts +2 -0
  32. package/dist/__tests__/standard-pipeline.integration.test.d.ts.map +1 -0
  33. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts +2 -0
  34. package/dist/__tests__/standard-profile-oracle.unit.test.d.ts.map +1 -0
  35. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts +2 -0
  36. package/dist/__tests__/visibility-resource-short-circuit.unit.test.d.ts.map +1 -0
  37. package/dist/{renderer/backend-selection.d.ts → assembly/backend-contract.d.ts} +15 -4
  38. package/dist/assembly/backend-contract.d.ts.map +1 -0
  39. package/dist/assembly/factory.d.ts +214 -0
  40. package/dist/assembly/factory.d.ts.map +1 -0
  41. package/dist/assembly/host-contract.d.ts +84 -0
  42. package/dist/assembly/host-contract.d.ts.map +1 -0
  43. package/dist/{renderer → assembly}/material/assembly.d.ts +0 -1
  44. package/dist/{renderer → assembly}/material/assembly.d.ts.map +1 -1
  45. package/dist/assembly/material/pipeline-projection.d.ts +30 -0
  46. package/dist/assembly/material/pipeline-projection.d.ts.map +1 -0
  47. package/dist/authoring.d.ts +11 -11
  48. package/dist/authoring.d.ts.map +1 -1
  49. package/dist/authoring.mjs +25 -3
  50. package/dist/authoring.mjs.map +1 -1
  51. package/dist/chunk-CQXZC5XI.mjs +182 -0
  52. package/dist/chunk-CQXZC5XI.mjs.map +1 -0
  53. package/dist/chunk-HCOGPHKS.mjs +93 -0
  54. package/dist/chunk-HCOGPHKS.mjs.map +1 -0
  55. package/dist/chunk-YEJIUW7D.mjs +1152 -0
  56. package/dist/chunk-YEJIUW7D.mjs.map +1 -0
  57. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts +2 -0
  58. package/dist/components/__tests__/points-lines-admission.unit.test.d.ts.map +1 -0
  59. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts +2 -0
  60. package/dist/components/__tests__/points-lines-schema.unit.test.d.ts.map +1 -0
  61. package/dist/components/__tests__/schema-contract.unit.test.d.ts +2 -0
  62. package/dist/components/__tests__/schema-contract.unit.test.d.ts.map +1 -0
  63. package/dist/components/glyph-text.d.ts +1 -1
  64. package/dist/components/glyph-text.d.ts.map +1 -1
  65. package/dist/components/index.d.ts +4 -2
  66. package/dist/components/index.d.ts.map +1 -1
  67. package/dist/components/instances.d.ts +1 -1
  68. package/dist/components/instances.d.ts.map +1 -1
  69. package/dist/components/light-helpers.d.ts +1 -1
  70. package/dist/components/light-helpers.d.ts.map +1 -1
  71. package/dist/components/lines.d.ts +5 -0
  72. package/dist/components/lines.d.ts.map +1 -0
  73. package/dist/components/mesh-filter.d.ts +7 -7
  74. package/dist/components/mesh-filter.d.ts.map +1 -1
  75. package/dist/components/points.d.ts +15 -0
  76. package/dist/components/points.d.ts.map +1 -0
  77. package/dist/components/scene-instance.d.ts +11 -11
  78. package/dist/components/skybox-background.d.ts +56 -0
  79. package/dist/components/skybox-background.d.ts.map +1 -0
  80. package/dist/components/skylight.d.ts +55 -0
  81. package/dist/components/skylight.d.ts.map +1 -0
  82. package/dist/components/sprite-animation.d.ts +2 -3
  83. package/dist/components/sprite-animation.d.ts.map +1 -1
  84. package/dist/components/sprite-instances.d.ts +1 -1
  85. package/dist/components/sprite-playback-mode.d.ts +6 -1
  86. package/dist/components/sprite-playback-mode.d.ts.map +1 -1
  87. package/dist/components/sprite-region-override.d.ts +2 -3
  88. package/dist/components/sprite-region-override.d.ts.map +1 -1
  89. package/dist/components/tile-layer.d.ts +5 -0
  90. package/dist/components/tile-layer.d.ts.map +1 -1
  91. package/dist/construct-renderer.d.ts +18 -1
  92. package/dist/construct-renderer.d.ts.map +1 -1
  93. package/dist/construct-renderer.mjs +27463 -4
  94. package/dist/construct-renderer.mjs.map +1 -1
  95. package/dist/debug-draw-glue.d.ts +2 -53
  96. package/dist/debug-draw-glue.d.ts.map +1 -1
  97. package/dist/device/device-scope.d.ts +83 -0
  98. package/dist/device/device-scope.d.ts.map +1 -0
  99. package/dist/{gpu-resource-store.d.ts → device/gpu-residency.d.ts} +91 -48
  100. package/dist/device/gpu-residency.d.ts.map +1 -0
  101. package/dist/device/resource-types.d.ts +8 -0
  102. package/dist/device/resource-types.d.ts.map +1 -0
  103. package/dist/engine-metrics.d.ts +2 -2
  104. package/dist/engine-metrics.d.ts.map +1 -1
  105. package/dist/errors/recover.d.ts +28 -1
  106. package/dist/errors/recover.d.ts.map +1 -1
  107. package/dist/errors/render.d.ts +320 -248
  108. package/dist/errors/render.d.ts.map +1 -1
  109. package/dist/features/fullscreen.d.ts +19 -0
  110. package/dist/features/fullscreen.d.ts.map +1 -0
  111. package/dist/features/host.d.ts +32 -26
  112. package/dist/features/host.d.ts.map +1 -1
  113. package/dist/features/morph/morph-feature.d.ts +39 -5
  114. package/dist/features/morph/morph-feature.d.ts.map +1 -1
  115. package/dist/features/plan.d.ts +182 -0
  116. package/dist/features/plan.d.ts.map +1 -0
  117. package/dist/features/prepared-gpu-work.d.ts +21 -17
  118. package/dist/features/prepared-gpu-work.d.ts.map +1 -1
  119. package/dist/features/prepared-graphics-store.d.ts +2 -1
  120. package/dist/features/prepared-graphics-store.d.ts.map +1 -1
  121. package/dist/features/prepared-graphics.d.ts +11 -21
  122. package/dist/features/prepared-graphics.d.ts.map +1 -1
  123. package/dist/features/render-graph-compute.d.ts +2 -2
  124. package/dist/features/render-graph-compute.d.ts.map +1 -1
  125. package/dist/features/render-graph-contribution.d.ts +4 -7
  126. package/dist/features/render-graph-contribution.d.ts.map +1 -1
  127. package/dist/features/render-graph-raster.d.ts +7 -3
  128. package/dist/features/render-graph-raster.d.ts.map +1 -1
  129. package/dist/features/render-graph-resources.d.ts +6 -6
  130. package/dist/features/render-graph-resources.d.ts.map +1 -1
  131. package/dist/features/targets.d.ts +5 -5
  132. package/dist/features/targets.d.ts.map +1 -1
  133. package/dist/features/types.d.ts +11 -190
  134. package/dist/features/types.d.ts.map +1 -1
  135. package/dist/features/vocabulary.d.ts +14 -0
  136. package/dist/features/vocabulary.d.ts.map +1 -0
  137. package/dist/fullscreen-post-process-pass.d.ts +4 -25
  138. package/dist/fullscreen-post-process-pass.d.ts.map +1 -1
  139. package/dist/glyph-text-layout-system.d.ts +3 -2
  140. package/dist/glyph-text-layout-system.d.ts.map +1 -1
  141. package/dist/gpu-driven/batch-topology.d.ts +6 -75
  142. package/dist/gpu-driven/batch-topology.d.ts.map +1 -1
  143. package/dist/gpu-driven/production-raster.d.ts +13 -112
  144. package/dist/gpu-driven/production-raster.d.ts.map +1 -1
  145. package/dist/gpu-driven/view-gpu.d.ts +10 -66
  146. package/dist/gpu-driven/view-gpu.d.ts.map +1 -1
  147. package/dist/gpu-resource.d.ts +3 -3
  148. package/dist/gpu-scene-schema.d.ts +1 -94
  149. package/dist/gpu-scene-schema.d.ts.map +1 -1
  150. package/dist/gpu-scene.d.ts +7 -33
  151. package/dist/gpu-scene.d.ts.map +1 -1
  152. package/dist/hdrp-buffers.d.ts +3 -53
  153. package/dist/hdrp-buffers.d.ts.map +1 -1
  154. package/dist/ibl/IblPipelineCache.d.ts +74 -180
  155. package/dist/ibl/IblPipelineCache.d.ts.map +1 -1
  156. package/dist/ibl/skylight-bind-group.d.ts +1 -1
  157. package/dist/index.d.ts +17 -43
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/index.mjs +167 -3
  160. package/dist/index.mjs.map +1 -1
  161. package/dist/inspection-types.d.ts +72 -0
  162. package/dist/inspection-types.d.ts.map +1 -0
  163. package/dist/instance-buffer-cache.d.ts +1 -4
  164. package/dist/instance-buffer-cache.d.ts.map +1 -1
  165. package/dist/internal.d.ts +1 -73
  166. package/dist/internal.d.ts.map +1 -1
  167. package/dist/internal.mjs +1 -43
  168. package/dist/internal.mjs.map +1 -1
  169. package/dist/lifecycle.d.ts +36 -2
  170. package/dist/lifecycle.d.ts.map +1 -1
  171. package/dist/materials.d.ts +0 -3
  172. package/dist/materials.d.ts.map +1 -1
  173. package/dist/mesh-material-bindings.d.ts +0 -1
  174. package/dist/mesh-material-bindings.d.ts.map +1 -1
  175. package/dist/pbr-pipeline.d.ts +77 -29
  176. package/dist/pbr-pipeline.d.ts.map +1 -1
  177. package/dist/pipeline/standard-forward-lane.d.ts +5 -0
  178. package/dist/pipeline/standard-forward-lane.d.ts.map +1 -0
  179. package/dist/pipeline/standard-pipeline.d.ts +31 -0
  180. package/dist/pipeline/standard-pipeline.d.ts.map +1 -0
  181. package/dist/pipeline/standard-profile.d.ts +40 -0
  182. package/dist/pipeline/standard-profile.d.ts.map +1 -0
  183. package/dist/pipeline-builder.d.ts +3 -3
  184. package/dist/pipeline-builder.d.ts.map +1 -1
  185. package/dist/pipeline-spec-types.d.ts +24 -0
  186. package/dist/pipeline-spec-types.d.ts.map +1 -0
  187. package/dist/pipeline-spec.d.ts +16 -155
  188. package/dist/pipeline-spec.d.ts.map +1 -1
  189. package/dist/plugin.d.ts +1 -14
  190. package/dist/plugin.d.ts.map +1 -1
  191. package/dist/points-lines/__tests__/bounds.unit.test.d.ts +2 -0
  192. package/dist/points-lines/__tests__/bounds.unit.test.d.ts.map +1 -0
  193. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts +2 -0
  194. package/dist/points-lines/__tests__/cache-recovery.unit.test.d.ts.map +1 -0
  195. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts +2 -0
  196. package/dist/points-lines/__tests__/inspection-lanes.integration.test.d.ts.map +1 -0
  197. package/dist/points-lines/__tests__/inspection.unit.test.d.ts +2 -0
  198. package/dist/points-lines/__tests__/inspection.unit.test.d.ts.map +1 -0
  199. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts +2 -0
  200. package/dist/points-lines/__tests__/lane-structural.integration.test.d.ts.map +1 -0
  201. package/dist/points-lines/__tests__/points-lines.bench.d.ts +2 -0
  202. package/dist/points-lines/__tests__/points-lines.bench.d.ts.map +1 -0
  203. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts +2 -0
  204. package/dist/points-lines/__tests__/raster-lane.integration.test.d.ts.map +1 -0
  205. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts +2 -0
  206. package/dist/points-lines/__tests__/snapshot.unit.test.d.ts.map +1 -0
  207. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts +2 -0
  208. package/dist/points-lines/__tests__/view-ubo.unit.test.d.ts.map +1 -0
  209. package/dist/points-lines/admission.d.ts +36 -0
  210. package/dist/points-lines/admission.d.ts.map +1 -0
  211. package/dist/points-lines/bounds.d.ts +8 -0
  212. package/dist/points-lines/bounds.d.ts.map +1 -0
  213. package/dist/points-lines/expansion-cache.d.ts +28 -0
  214. package/dist/points-lines/expansion-cache.d.ts.map +1 -0
  215. package/dist/points-lines/inspection.d.ts +53 -0
  216. package/dist/points-lines/inspection.d.ts.map +1 -0
  217. package/dist/points-lines/prepare.d.ts +67 -0
  218. package/dist/points-lines/prepare.d.ts.map +1 -0
  219. package/dist/points-lines/record.d.ts +60 -0
  220. package/dist/points-lines/record.d.ts.map +1 -0
  221. package/dist/points-lines/snapshot.d.ts +49 -0
  222. package/dist/points-lines/snapshot.d.ts.map +1 -0
  223. package/dist/post-process-errors.d.ts +18 -18
  224. package/dist/post-process-errors.d.ts.map +1 -1
  225. package/dist/prepare/prepared-graphics-resolver.d.ts +2 -5
  226. package/dist/prepare/prepared-graphics-resolver.d.ts.map +1 -1
  227. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts +2 -0
  228. package/dist/record/__tests__/typed-frame-graph-plan.unit.test.d.ts.map +1 -0
  229. package/dist/record/frame-lighting.d.ts +7 -73
  230. package/dist/record/frame-lighting.d.ts.map +1 -1
  231. package/dist/record/frame-snapshot.d.ts +44 -44
  232. package/dist/record/frame-snapshot.d.ts.map +1 -1
  233. package/dist/record/frame-targets.d.ts +5 -38
  234. package/dist/record/frame-targets.d.ts.map +1 -1
  235. package/dist/record/frame.d.ts +64 -52
  236. package/dist/record/frame.d.ts.map +1 -1
  237. package/dist/record/helpers.d.ts +3 -2
  238. package/dist/record/helpers.d.ts.map +1 -1
  239. package/dist/record/main-pass-geometry.d.ts +12 -4
  240. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  241. package/dist/record/main-pass-material.d.ts +90 -59
  242. package/dist/record/main-pass-material.d.ts.map +1 -1
  243. package/dist/record/main-pass-sprite-draws.d.ts +28 -3
  244. package/dist/record/main-pass-sprite-draws.d.ts.map +1 -1
  245. package/dist/record/main-pass.d.ts +1 -1
  246. package/dist/record/main-pass.d.ts.map +1 -1
  247. package/dist/record/mesh-ssbo.d.ts +276 -3
  248. package/dist/record/mesh-ssbo.d.ts.map +1 -1
  249. package/dist/record/render-context.d.ts +252 -0
  250. package/dist/record/render-context.d.ts.map +1 -0
  251. package/dist/record/shadow-pass.d.ts +15 -88
  252. package/dist/record/shadow-pass.d.ts.map +1 -1
  253. package/dist/record/skybox-post-pass.d.ts +1 -1
  254. package/dist/record/skybox-post-pass.d.ts.map +1 -1
  255. package/dist/record/typed-frame-graph.d.ts +29 -7
  256. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  257. package/dist/record/view-ubo.d.ts +9 -3
  258. package/dist/record/view-ubo.d.ts.map +1 -1
  259. package/dist/render-contract.d.ts +424 -0
  260. package/dist/render-contract.d.ts.map +1 -0
  261. package/dist/render-data.d.ts.map +1 -1
  262. package/dist/render-graph-primitives.d.ts +14 -362
  263. package/dist/render-graph-primitives.d.ts.map +1 -1
  264. package/dist/render-pipeline.d.ts +25 -64
  265. package/dist/render-pipeline.d.ts.map +1 -1
  266. package/dist/render-system-extract.d.ts +110 -338
  267. package/dist/render-system-extract.d.ts.map +1 -1
  268. package/dist/render-system.d.ts +24 -713
  269. package/dist/render-system.d.ts.map +1 -1
  270. package/dist/scene/render-scene-types.d.ts +61 -0
  271. package/dist/scene/render-scene-types.d.ts.map +1 -0
  272. package/dist/scene/render-scene.d.ts +112 -0
  273. package/dist/scene/render-scene.d.ts.map +1 -0
  274. package/dist/scene-instances/post-spawn-resolve-joints.d.ts +2 -5
  275. package/dist/scene-instances/post-spawn-resolve-joints.d.ts.map +1 -1
  276. package/dist/ssao-buffers.d.ts +22 -3
  277. package/dist/ssao-buffers.d.ts.map +1 -1
  278. package/dist/systems/skin-palette-allocator.d.ts +2 -4
  279. package/dist/systems/skin-palette-allocator.d.ts.map +1 -1
  280. package/dist/systems/skin-palette-types.d.ts +14 -0
  281. package/dist/systems/skin-palette-types.d.ts.map +1 -0
  282. package/dist/systems/transparent-sort-config.d.ts +23 -2
  283. package/dist/systems/transparent-sort-config.d.ts.map +1 -1
  284. package/dist/tilemap-chunk-extract-system.d.ts +4 -3
  285. package/dist/tilemap-chunk-extract-system.d.ts.map +1 -1
  286. package/dist/typed-render-graph-primitives.d.ts +2 -4
  287. package/dist/typed-render-graph-primitives.d.ts.map +1 -1
  288. package/dist/typed-shadow-passes.d.ts +3 -3
  289. package/dist/typed-shadow-passes.d.ts.map +1 -1
  290. package/package.json +23 -23
  291. package/src/__tests__/authoring-path.unit.test.ts +9 -0
  292. package/src/__tests__/backend-selection-rhi-capture.test-d.ts +1 -1
  293. package/src/__tests__/callback-inference.test-d.ts +6 -3
  294. package/src/__tests__/cluster-grid-default-surface.unit.test.ts +7 -4
  295. package/src/__tests__/construct-renderer-identity.unit.test.ts +15 -2
  296. package/src/__tests__/device-scope-lifecycle.unit.test.ts +151 -0
  297. package/src/__tests__/device-scope-stale-matrix.unit.test.ts +42 -0
  298. package/src/__tests__/direct-extract-consumer-contract.test-d.ts +8 -19
  299. package/src/__tests__/direct-light-snapshot.unit.test.ts +3 -13
  300. package/src/__tests__/factory-contract.integration.test.ts +158 -209
  301. package/src/__tests__/fallback-row-stride-surface.unit.test.ts +1 -4
  302. package/src/__tests__/frame-observation.contract.test.ts +17 -8
  303. package/src/__tests__/fullscreen-feature-plan.unit.test.ts +32 -0
  304. package/src/__tests__/glyph-text-layout-recovery.unit.test.ts +6 -11
  305. package/src/__tests__/gpu-driven-indirect-raster-evidence.ts +21 -18
  306. package/src/__tests__/gpu-driven-production.integration.test.ts +32 -205
  307. package/src/__tests__/gpu-driven-scaling.unit.test.ts +4 -7
  308. package/src/__tests__/gpu-driven-view-gpu-evidence.ts +87 -8
  309. package/src/__tests__/gpu-driven-view-graph.integration.test.ts +170 -8
  310. package/src/{gpu-driven/view-reference.ts → __tests__/gpu-driven-view-reference.ts} +4 -3
  311. package/src/__tests__/gpu-driven-view.browser.test.ts +12 -1
  312. package/src/__tests__/gpu-driven-view.dawn.test.ts +12 -1
  313. package/src/__tests__/gpu-driven-view.unit.test.ts +11 -267
  314. package/src/__tests__/gpu-resource-store-stride.unit.test.ts +3 -3
  315. package/src/__tests__/gpu-scene-render-graph-gpu.ts +2 -3
  316. package/src/__tests__/gpu-scene.dawn.test.ts +2 -6
  317. package/src/__tests__/gpu-scene.unit.test.ts +10 -24
  318. package/src/__tests__/ibl/face-uniforms.unit.test.ts +46 -0
  319. package/src/__tests__/infinite-grid-no-vertex-probe.unit.test.ts +34 -66
  320. package/src/__tests__/ktx2-basis-gpu-consumer.dawn.test.ts +14 -5
  321. package/src/__tests__/light-buffer-layout.unit.test.ts +4 -49
  322. package/src/__tests__/material-cooked-projection.unit.test.ts +31 -58
  323. package/src/__tests__/material-snapshot-mutation.integration.test.ts +10 -15
  324. package/src/__tests__/material-static-dynamic-route.unit.test.ts +31 -50
  325. package/src/__tests__/material-stride-surface.unit.test.ts +2 -2
  326. package/src/__tests__/mesh-buffer-usage-surface.unit.test.ts +7 -8
  327. package/src/__tests__/morph-culling-reentry.dawn.test.ts +29 -38
  328. package/src/__tests__/morph-feature-gpu-work.integration.test.ts +45 -43
  329. package/src/__tests__/morph-feature-plan.unit.test.ts +53 -0
  330. package/src/__tests__/morph-visual-evidence.integration.test.ts +47 -33
  331. package/src/__tests__/nineslice-handle-surface.unit.test.ts +11 -6
  332. package/src/__tests__/post-process-error-policy-owner.unit.test.ts +6 -13
  333. package/src/__tests__/prepared-graphics-capability.unit.test.ts +6 -81
  334. package/src/__tests__/prepared-graphics-generation.unit.test.ts +3 -17
  335. package/src/__tests__/prepared-graphics-lifecycle.unit.test.ts +6 -74
  336. package/src/__tests__/prepared-graphics-resolver.unit.test.ts +1 -3
  337. package/src/__tests__/prepared-graphics-snapshot.unit.test.ts +2 -2
  338. package/src/__tests__/profiler-default-off.test.ts +1 -1
  339. package/src/__tests__/profiler-phase-catalog.test.ts +2 -2
  340. package/src/__tests__/profiler-phase-integration.test.ts +5 -13
  341. package/src/__tests__/profiler-phase-token.test.ts +3 -8
  342. package/src/__tests__/public-surface.test-d.ts +65 -3
  343. package/src/__tests__/recover-error-policy-owner.unit.test.ts +1 -21
  344. package/src/__tests__/render-error-code-owner.test-d.ts +24 -23
  345. package/src/__tests__/render-error-detail-ssot.test-d.ts +0 -95
  346. package/src/__tests__/render-error-exhaustive.test-d.ts +27 -1
  347. package/src/__tests__/render-feature-assembly.test-d.ts +8 -16
  348. package/src/__tests__/render-feature-context.test-d.ts +16 -40
  349. package/src/__tests__/render-feature-contract.test-d.ts +9 -18
  350. package/src/__tests__/render-feature-diagnostics.unit.test.ts +6 -8
  351. package/src/__tests__/render-feature-docs.unit.test.ts +8 -7
  352. package/src/__tests__/render-feature-gpu-work.integration.test.ts +14 -75
  353. package/src/__tests__/render-feature-plan.test-d.ts +161 -0
  354. package/src/__tests__/render-feature-plan.unit.test.ts +170 -0
  355. package/src/__tests__/render-feature-prepared-diagnostics.unit.test.ts +8 -19
  356. package/src/__tests__/render-feature-prepared-errors.test-d.ts +3 -6
  357. package/src/__tests__/render-feature-prepared-graphics-docs.unit.test.ts +10 -71
  358. package/src/__tests__/render-feature-prepared-graphics-isolation.unit.test.ts +11 -61
  359. package/src/__tests__/render-feature-prepared-graphics-negative.test-d.ts +20 -43
  360. package/src/__tests__/render-feature-prepared-graphics.test-d.ts +56 -78
  361. package/src/__tests__/render-feature-public-surface.test-d.ts +6 -24
  362. package/src/__tests__/render-feature-retry.unit.test.ts +7 -48
  363. package/src/__tests__/render-feature-scheduling.unit.test.ts +15 -27
  364. package/src/__tests__/render-feature-stage-failed-policy-owner.unit.test.ts +0 -9
  365. package/src/__tests__/render-feature-stage-fault-recovery.unit.test.ts +19 -109
  366. package/src/__tests__/render-feature-visibility-context.test-d.ts +1 -6
  367. package/src/__tests__/render-feature-visibility-context.unit.test.ts +1 -2
  368. package/src/__tests__/render-feature-zero-work.unit.test.ts +14 -20
  369. package/src/__tests__/render-scene-projection.unit.test.ts +73 -111
  370. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +82 -95
  371. package/src/__tests__/renderer-lifecycle.integration.test.ts +49 -1
  372. package/src/__tests__/shader-stage-surface.unit.test.ts +14 -9
  373. package/src/__tests__/ssao-config.unit.test.ts +36 -0
  374. package/src/__tests__/ssao-kernel-surface.unit.test.ts +4 -5
  375. package/src/__tests__/standard-clustered-pipeline.unit.test.ts +28 -0
  376. package/src/__tests__/standard-descriptors.test-d.ts +22 -0
  377. package/src/__tests__/standard-pipeline.dawn.test.ts +61 -0
  378. package/src/__tests__/standard-pipeline.integration.test.ts +124 -0
  379. package/src/__tests__/standard-profile-oracle.unit.test.ts +62 -0
  380. package/src/__tests__/surface-configuration.unit.test.ts +1 -2
  381. package/src/__tests__/texture-usage-surface.unit.test.ts +3 -6
  382. package/src/__tests__/typed-pipeline-topology.unit.test.ts +40 -206
  383. package/src/__tests__/urp-pipeline-targets.unit.test.ts +1 -11
  384. package/src/__tests__/urp-pipeline.unit.test.ts +2 -2
  385. package/src/__tests__/vertex-color-pipeline.unit.test.ts +10 -2
  386. package/src/__tests__/vertex-layout-consumer.unit.test.ts +1 -1
  387. package/src/__tests__/visibility-diagnostics.integration.test.ts +7 -11
  388. package/src/__tests__/visibility-extract.integration.test.ts +20 -11
  389. package/src/__tests__/visibility-extract.perf.test.ts +66 -32
  390. package/src/__tests__/visibility-feature-dedup.integration.test.ts +2 -4
  391. package/src/__tests__/visibility-hidden-report.unit.test.ts +1 -2
  392. package/src/__tests__/visibility-instances.integration.test.ts +7 -11
  393. package/src/__tests__/visibility-multi-world.integration.test.ts +38 -6
  394. package/src/__tests__/visibility-producer-matrix.integration.test.ts +18 -41
  395. package/src/__tests__/visibility-public-surface.test-d.ts +10 -9
  396. package/src/__tests__/visibility-resolver.unit.test.ts +2 -1
  397. package/src/__tests__/visibility-resource-short-circuit.unit.test.ts +80 -0
  398. package/src/__tests__/visibility-snapshot-contract.unit.test.ts +2 -1
  399. package/src/__tests__/vocabulary.unit.test.ts +1 -1
  400. package/src/assembly/backend-contract.ts +57 -0
  401. package/src/{renderer/renderer-factory.ts → assembly/factory.ts} +1741 -2699
  402. package/src/assembly/host-contract.ts +101 -0
  403. package/src/{renderer → assembly}/material/assembly.ts +2 -7
  404. package/src/assembly/material/pipeline-projection.ts +63 -0
  405. package/src/authoring.ts +15 -22
  406. package/src/components/__tests__/points-lines-admission.unit.test.ts +219 -0
  407. package/src/components/__tests__/points-lines-schema.unit.test.ts +56 -0
  408. package/src/components/__tests__/schema-contract.unit.test.ts +10 -0
  409. package/src/components/glyph-text.ts +3 -2
  410. package/src/components/index.ts +14 -9
  411. package/src/components/instances.ts +4 -5
  412. package/src/components/light-helpers.ts +1 -1
  413. package/src/components/lines.ts +18 -0
  414. package/src/components/mesh-filter.ts +11 -10
  415. package/src/components/points.ts +40 -0
  416. package/src/components/post-process-params.ts +3 -3
  417. package/src/components/scene-instance.ts +12 -12
  418. package/src/components/skybox-background.ts +103 -0
  419. package/src/components/{environment.ts → skylight.ts} +2 -110
  420. package/src/components/sprite-animation.ts +3 -4
  421. package/src/components/sprite-instances.ts +2 -2
  422. package/src/components/sprite-playback-mode.ts +7 -1
  423. package/src/components/sprite-region-override.ts +2 -3
  424. package/src/components/tile-layer.ts +8 -2
  425. package/src/construct-renderer.ts +67 -4
  426. package/src/debug-draw-glue.ts +8 -129
  427. package/src/device/device-scope.ts +306 -0
  428. package/src/{gpu-resource-store.ts → device/gpu-residency.ts} +540 -639
  429. package/src/device/resource-types.ts +20 -0
  430. package/src/engine-metrics.ts +12 -19
  431. package/src/errors/recover.ts +45 -3
  432. package/src/errors/render.ts +469 -429
  433. package/src/features/fullscreen.ts +46 -0
  434. package/src/features/host.ts +575 -309
  435. package/src/features/morph/morph-feature.ts +195 -105
  436. package/src/features/plan.ts +447 -0
  437. package/src/features/prepared-gpu-work.ts +72 -15
  438. package/src/features/prepared-graphics-store.ts +20 -6
  439. package/src/features/prepared-graphics.ts +12 -71
  440. package/src/features/render-graph-compute.ts +14 -5
  441. package/src/features/render-graph-contribution.ts +43 -63
  442. package/src/features/render-graph-raster.ts +32 -8
  443. package/src/features/render-graph-resources.ts +25 -23
  444. package/src/features/targets.ts +8 -21
  445. package/src/features/types.ts +39 -227
  446. package/src/features/vocabulary.ts +24 -0
  447. package/src/fullscreen-post-process-pass.ts +14 -57
  448. package/src/glyph-text-layout-system.ts +70 -96
  449. package/src/gpu-driven/batch-topology.ts +24 -202
  450. package/src/gpu-driven/production-raster.ts +99 -1109
  451. package/src/gpu-driven/view-gpu.ts +46 -192
  452. package/src/gpu-resource.ts +4 -4
  453. package/src/gpu-scene-schema.ts +11 -99
  454. package/src/gpu-scene.ts +231 -364
  455. package/src/hdrp-buffers.ts +12 -221
  456. package/src/ibl/IblPipelineCache.ts +471 -711
  457. package/src/ibl/skylight-bind-group.ts +4 -4
  458. package/src/index.ts +75 -217
  459. package/src/inspection-types.ts +80 -0
  460. package/src/instance-buffer-cache.ts +1 -29
  461. package/src/internal.ts +6 -85
  462. package/src/lifecycle.ts +64 -19
  463. package/src/materials.ts +7 -29
  464. package/src/mesh-material-bindings.ts +0 -1
  465. package/src/pbr-pipeline.ts +441 -53
  466. package/src/{urp-pipeline.ts → pipeline/standard-forward-lane.ts} +38 -149
  467. package/src/{hdrp-pipeline.ts → pipeline/standard-pipeline.ts} +221 -191
  468. package/src/pipeline/standard-profile.ts +65 -0
  469. package/src/pipeline-builder.ts +60 -64
  470. package/src/pipeline-spec-types.ts +28 -0
  471. package/src/pipeline-spec.ts +72 -609
  472. package/src/plugin.ts +7 -75
  473. package/src/points-lines/__tests__/bounds.unit.test.ts +21 -0
  474. package/src/points-lines/__tests__/cache-recovery.unit.test.ts +157 -0
  475. package/src/points-lines/__tests__/inspection-lanes.integration.test.ts +146 -0
  476. package/src/points-lines/__tests__/inspection.unit.test.ts +173 -0
  477. package/src/points-lines/__tests__/lane-structural.integration.test.ts +122 -0
  478. package/src/points-lines/__tests__/points-lines.bench.ts +400 -0
  479. package/src/points-lines/__tests__/raster-lane.integration.test.ts +44 -0
  480. package/src/points-lines/__tests__/snapshot.unit.test.ts +101 -0
  481. package/src/points-lines/__tests__/view-ubo.unit.test.ts +73 -0
  482. package/src/points-lines/admission.ts +238 -0
  483. package/src/points-lines/bounds.ts +23 -0
  484. package/src/points-lines/expansion-cache.ts +215 -0
  485. package/src/points-lines/inspection.ts +97 -0
  486. package/src/points-lines/prepare.ts +177 -0
  487. package/src/points-lines/record.ts +125 -0
  488. package/src/points-lines/snapshot.ts +130 -0
  489. package/src/post-process-errors.ts +31 -33
  490. package/src/prepare/prepared-graphics-resolver.ts +5 -4
  491. package/src/record/__tests__/material-slot-plan.unit.test.ts +1 -33
  492. package/src/record/__tests__/typed-frame-graph-plan.unit.test.ts +41 -0
  493. package/src/record/__tests__/video-texture-view.unit.test.ts +1 -1
  494. package/src/record/frame-lighting.ts +88 -197
  495. package/src/record/frame-snapshot.ts +45 -60
  496. package/src/record/frame-targets.ts +8 -243
  497. package/src/record/frame.ts +521 -797
  498. package/src/record/helpers.ts +6 -11
  499. package/src/record/main-pass-geometry.ts +198 -147
  500. package/src/record/main-pass-material.ts +517 -190
  501. package/src/record/main-pass-sprite-draws.ts +199 -118
  502. package/src/record/main-pass.ts +166 -144
  503. package/src/record/mesh-ssbo.ts +517 -38
  504. package/src/record/render-context.ts +384 -0
  505. package/src/record/shadow-pass.ts +154 -1843
  506. package/src/record/skybox-post-pass.ts +14 -15
  507. package/src/record/typed-frame-graph.ts +224 -262
  508. package/src/record/view-ubo.ts +53 -37
  509. package/src/render-contract.ts +582 -0
  510. package/src/render-data.ts +3 -3
  511. package/src/render-graph-primitives.ts +76 -851
  512. package/src/render-pipeline.ts +104 -188
  513. package/src/render-system-extract.ts +1114 -1732
  514. package/src/render-system.ts +614 -1939
  515. package/src/scene/render-scene-types.ts +67 -0
  516. package/src/scene/render-scene.ts +1087 -0
  517. package/src/scene-instances/post-spawn-resolve-joints.ts +4 -7
  518. package/src/ssao-buffers.ts +167 -8
  519. package/src/systems/skin-palette-allocator.ts +21 -64
  520. package/src/systems/skin-palette-types.ts +14 -0
  521. package/src/systems/transparent-sort-config.ts +25 -3
  522. package/src/tilemap-chunk-extract-system.ts +53 -70
  523. package/src/typed-render-graph-primitives.ts +35 -24
  524. package/src/typed-shadow-passes.ts +26 -56
  525. package/dist/__tests__/analytic-sky-contract.test.d.ts +0 -2
  526. package/dist/__tests__/analytic-sky-contract.test.d.ts.map +0 -1
  527. package/dist/__tests__/analytic-sky-falsify.test.d.ts +0 -2
  528. package/dist/__tests__/analytic-sky-falsify.test.d.ts.map +0 -1
  529. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts +0 -2
  530. package/dist/__tests__/assets-runtime-handoff.integration.test.d.ts.map +0 -1
  531. package/dist/__tests__/backend-selection.integration.test.d.ts +0 -2
  532. package/dist/__tests__/backend-selection.integration.test.d.ts.map +0 -1
  533. package/dist/__tests__/camera-temporal.test-d.d.ts +0 -2
  534. package/dist/__tests__/camera-temporal.test-d.d.ts.map +0 -1
  535. package/dist/__tests__/camera-temporal.test.d.ts +0 -2
  536. package/dist/__tests__/camera-temporal.test.d.ts.map +0 -1
  537. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts +0 -2
  538. package/dist/__tests__/directional-shadow-probe-atlas-layout.unit.test.d.ts.map +0 -1
  539. package/dist/__tests__/environment-inspection.test.d.ts +0 -2
  540. package/dist/__tests__/environment-inspection.test.d.ts.map +0 -1
  541. package/dist/__tests__/fog-ai-user.fixture.d.ts +0 -2
  542. package/dist/__tests__/fog-ai-user.fixture.d.ts.map +0 -1
  543. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts +0 -16
  544. package/dist/__tests__/fog-custom-render-feature.fixture.d.ts.map +0 -1
  545. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts +0 -2
  546. package/dist/__tests__/fog-custom-render-feature.integration.test.d.ts.map +0 -1
  547. package/dist/__tests__/fog-inspection.integration.test.d.ts +0 -2
  548. package/dist/__tests__/fog-inspection.integration.test.d.ts.map +0 -1
  549. package/dist/__tests__/fog-owner-state.integration.test.d.ts +0 -2
  550. package/dist/__tests__/fog-owner-state.integration.test.d.ts.map +0 -1
  551. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts +0 -2
  552. package/dist/__tests__/fog-pipeline-topology.integration.test.d.ts.map +0 -1
  553. package/dist/__tests__/fog-public-surface.integration.test.d.ts +0 -2
  554. package/dist/__tests__/fog-public-surface.integration.test.d.ts.map +0 -1
  555. package/dist/__tests__/fog-ray-contract.integration.test.d.ts +0 -2
  556. package/dist/__tests__/fog-ray-contract.integration.test.d.ts.map +0 -1
  557. package/dist/__tests__/fog-source-absence.integration.test.d.ts +0 -2
  558. package/dist/__tests__/fog-source-absence.integration.test.d.ts.map +0 -1
  559. package/dist/__tests__/fog-temporal.integration.test.d.ts +0 -2
  560. package/dist/__tests__/fog-temporal.integration.test.d.ts.map +0 -1
  561. package/dist/__tests__/frame-chain.unit.test.d.ts +0 -2
  562. package/dist/__tests__/frame-chain.unit.test.d.ts.map +0 -1
  563. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts +0 -2
  564. package/dist/__tests__/gpu-scene-field-type-owner.test-d.d.ts.map +0 -1
  565. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts +0 -2
  566. package/dist/__tests__/hdrp-pipeline.unit.test.d.ts.map +0 -1
  567. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts +0 -2
  568. package/dist/__tests__/ibl/ibl-fallback.unit.test.d.ts.map +0 -1
  569. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts +0 -2
  570. package/dist/__tests__/material-derived-error-stop-draw.integration.test.d.ts.map +0 -1
  571. package/dist/__tests__/material-derived-payload.integration.test.d.ts +0 -2
  572. package/dist/__tests__/material-derived-payload.integration.test.d.ts.map +0 -1
  573. package/dist/__tests__/materials.unit.test.d.ts +0 -2
  574. package/dist/__tests__/materials.unit.test.d.ts.map +0 -1
  575. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts +0 -2
  576. package/dist/__tests__/param-schema-projection-census.unit.test.d.ts.map +0 -1
  577. package/dist/__tests__/persistent-render-scene.unit.test.d.ts +0 -2
  578. package/dist/__tests__/persistent-render-scene.unit.test.d.ts.map +0 -1
  579. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts +0 -2
  580. package/dist/__tests__/pipeline-error-policy-owner.unit.test.d.ts.map +0 -1
  581. package/dist/__tests__/pipeline-pass-trace.test.d.ts +0 -2
  582. package/dist/__tests__/pipeline-pass-trace.test.d.ts.map +0 -1
  583. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts +0 -2
  584. package/dist/__tests__/pipeline-stage-owner.test-d.d.ts.map +0 -1
  585. package/dist/__tests__/plugin.test.d.ts +0 -2
  586. package/dist/__tests__/plugin.test.d.ts.map +0 -1
  587. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts +0 -2
  588. package/dist/__tests__/prepared-graphics-backend-matrix.unit.test.d.ts.map +0 -1
  589. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts +0 -2
  590. package/dist/__tests__/prepared-graphics-resolver-recording.unit.test.d.ts.map +0 -1
  591. package/dist/__tests__/public-pipeline-id.test-d.d.ts +0 -2
  592. package/dist/__tests__/public-pipeline-id.test-d.d.ts.map +0 -1
  593. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts +0 -2
  594. package/dist/__tests__/render-dispatch-membership.unit.test.d.ts.map +0 -1
  595. package/dist/__tests__/render-feature-construction.unit.test.d.ts +0 -2
  596. package/dist/__tests__/render-feature-construction.unit.test.d.ts.map +0 -1
  597. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts +0 -2
  598. package/dist/__tests__/render-feature-error-code-owner.test-d.d.ts.map +0 -1
  599. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts +0 -2
  600. package/dist/__tests__/render-feature-gpu-buffer-usage-owner.test-d.d.ts.map +0 -1
  601. package/dist/__tests__/render-feature-graph.integration.test.d.ts +0 -2
  602. package/dist/__tests__/render-feature-graph.integration.test.d.ts.map +0 -1
  603. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts +0 -2
  604. package/dist/__tests__/render-feature-graphics-staging.unit.test.d.ts.map +0 -1
  605. package/dist/__tests__/render-feature-order.unit.test.d.ts +0 -2
  606. package/dist/__tests__/render-feature-order.unit.test.d.ts.map +0 -1
  607. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts +0 -2
  608. package/dist/__tests__/render-feature-prepared-graphics-recording.unit.test.d.ts.map +0 -1
  609. package/dist/__tests__/render-feature-staging.unit.test.d.ts +0 -2
  610. package/dist/__tests__/render-feature-staging.unit.test.d.ts.map +0 -1
  611. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts +0 -2
  612. package/dist/__tests__/renderer-render-scene-public.test-d.d.ts.map +0 -1
  613. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts +0 -2
  614. package/dist/__tests__/scene-temporal-coverage.unit.test.d.ts.map +0 -1
  615. package/dist/__tests__/sun-snapshot-consumers.test.d.ts +0 -2
  616. package/dist/__tests__/sun-snapshot-consumers.test.d.ts.map +0 -1
  617. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts +0 -2
  618. package/dist/__tests__/surface-backend-kind-owner.test-d.d.ts.map +0 -1
  619. package/dist/__tests__/taa-history-store.unit.test.d.ts +0 -2
  620. package/dist/__tests__/taa-history-store.unit.test.d.ts.map +0 -1
  621. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts +0 -2
  622. package/dist/__tests__/temporal-frame-transaction.integration.test.d.ts.map +0 -1
  623. package/dist/__tests__/temporal-inspection.unit.test.d.ts +0 -2
  624. package/dist/__tests__/temporal-inspection.unit.test.d.ts.map +0 -1
  625. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts +0 -2
  626. package/dist/assets/__tests__/asset-decoders.unit.test.d.ts.map +0 -1
  627. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts +0 -2
  628. package/dist/assets/__tests__/mipmap-generator.unit.test.d.ts.map +0 -1
  629. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts +0 -2
  630. package/dist/assets/__tests__/render-asset-port.unit.test.d.ts.map +0 -1
  631. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts +0 -2
  632. package/dist/assets/__tests__/resolve-render-asset.unit.test.d.ts.map +0 -1
  633. package/dist/chunk-DJIMFYX6.mjs +0 -1439
  634. package/dist/chunk-DJIMFYX6.mjs.map +0 -1
  635. package/dist/chunk-F2SIOCRM.mjs +0 -7423
  636. package/dist/chunk-F2SIOCRM.mjs.map +0 -1
  637. package/dist/chunk-JMSB7AR4.mjs +0 -3
  638. package/dist/chunk-JMSB7AR4.mjs.map +0 -1
  639. package/dist/chunk-KHI6K4C6.mjs +0 -659
  640. package/dist/chunk-KHI6K4C6.mjs.map +0 -1
  641. package/dist/chunk-PORZOL2V.mjs +0 -569
  642. package/dist/chunk-PORZOL2V.mjs.map +0 -1
  643. package/dist/chunk-UOJGMDGP.mjs +0 -29913
  644. package/dist/chunk-UOJGMDGP.mjs.map +0 -1
  645. package/dist/components/__tests__/atmosphere-red.test.d.ts +0 -2
  646. package/dist/components/__tests__/atmosphere-red.test.d.ts.map +0 -1
  647. package/dist/components/__tests__/atmosphere.test.d.ts +0 -2
  648. package/dist/components/__tests__/atmosphere.test.d.ts.map +0 -1
  649. package/dist/components/__tests__/fog.test-d.d.ts +0 -2
  650. package/dist/components/__tests__/fog.test-d.d.ts.map +0 -1
  651. package/dist/components/__tests__/fog.test.d.ts +0 -2
  652. package/dist/components/__tests__/fog.test.d.ts.map +0 -1
  653. package/dist/components/atmosphere.d.ts +0 -18
  654. package/dist/components/atmosphere.d.ts.map +0 -1
  655. package/dist/components/environment.d.ts +0 -115
  656. package/dist/components/environment.d.ts.map +0 -1
  657. package/dist/deferred-lighting.d.ts +0 -13
  658. package/dist/deferred-lighting.d.ts.map +0 -1
  659. package/dist/dynamic-texture-store.d.ts +0 -42
  660. package/dist/dynamic-texture-store.d.ts.map +0 -1
  661. package/dist/environment/__tests__/failure-injection.test.d.ts +0 -2
  662. package/dist/environment/__tests__/failure-injection.test.d.ts.map +0 -1
  663. package/dist/environment/__tests__/generation-red.test.d.ts +0 -2
  664. package/dist/environment/__tests__/generation-red.test.d.ts.map +0 -1
  665. package/dist/environment/__tests__/generation.test.d.ts +0 -2
  666. package/dist/environment/__tests__/generation.test.d.ts.map +0 -1
  667. package/dist/environment/__tests__/graph-transaction.test.d.ts +0 -2
  668. package/dist/environment/__tests__/graph-transaction.test.d.ts.map +0 -1
  669. package/dist/environment/__tests__/inspection-red.test.d.ts +0 -2
  670. package/dist/environment/__tests__/inspection-red.test.d.ts.map +0 -1
  671. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts +0 -2
  672. package/dist/environment/__tests__/lifecycle-evidence.test.d.ts.map +0 -1
  673. package/dist/environment/__tests__/pipeline-topology.test.d.ts +0 -2
  674. package/dist/environment/__tests__/pipeline-topology.test.d.ts.map +0 -1
  675. package/dist/environment/__tests__/readiness.test.d.ts +0 -2
  676. package/dist/environment/__tests__/readiness.test.d.ts.map +0 -1
  677. package/dist/environment/__tests__/recovery.test.d.ts +0 -2
  678. package/dist/environment/__tests__/recovery.test.d.ts.map +0 -1
  679. package/dist/environment/__tests__/resize-dispose.test.d.ts +0 -2
  680. package/dist/environment/__tests__/resize-dispose.test.d.ts.map +0 -1
  681. package/dist/environment/__tests__/signature-red.test.d.ts +0 -2
  682. package/dist/environment/__tests__/signature-red.test.d.ts.map +0 -1
  683. package/dist/environment/__tests__/signature.test.d.ts +0 -2
  684. package/dist/environment/__tests__/signature.test.d.ts.map +0 -1
  685. package/dist/environment/descriptors.d.ts +0 -2
  686. package/dist/environment/descriptors.d.ts.map +0 -1
  687. package/dist/environment/extracted-environment.d.ts +0 -53
  688. package/dist/environment/extracted-environment.d.ts.map +0 -1
  689. package/dist/environment/generation.d.ts +0 -62
  690. package/dist/environment/generation.d.ts.map +0 -1
  691. package/dist/environment/gpu-bundle.d.ts +0 -23
  692. package/dist/environment/gpu-bundle.d.ts.map +0 -1
  693. package/dist/environment/graph.d.ts +0 -108
  694. package/dist/environment/graph.d.ts.map +0 -1
  695. package/dist/environment/inspection.d.ts +0 -48
  696. package/dist/environment/inspection.d.ts.map +0 -1
  697. package/dist/environment/lifecycle.d.ts +0 -22
  698. package/dist/environment/lifecycle.d.ts.map +0 -1
  699. package/dist/environment/readiness.d.ts +0 -29
  700. package/dist/environment/readiness.d.ts.map +0 -1
  701. package/dist/environment/signature.d.ts +0 -70
  702. package/dist/environment/signature.d.ts.map +0 -1
  703. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts +0 -2
  704. package/dist/extract/__tests__/directional-csm-domain.unit.test.d.ts.map +0 -1
  705. package/dist/extract/__tests__/environment-source.test.d.ts +0 -2
  706. package/dist/extract/__tests__/environment-source.test.d.ts.map +0 -1
  707. package/dist/extract/__tests__/schema-readers.unit.test.d.ts +0 -2
  708. package/dist/extract/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  709. package/dist/extract/directional-csm.d.ts +0 -129
  710. package/dist/extract/directional-csm.d.ts.map +0 -1
  711. package/dist/extract/index.d.ts +0 -5
  712. package/dist/extract/index.d.ts.map +0 -1
  713. package/dist/extract/material-interface.d.ts +0 -56
  714. package/dist/extract/material-interface.d.ts.map +0 -1
  715. package/dist/extract/schema-readers.d.ts +0 -20
  716. package/dist/extract/schema-readers.d.ts.map +0 -1
  717. package/dist/features/graph-contribution.d.ts +0 -64
  718. package/dist/features/graph-contribution.d.ts.map +0 -1
  719. package/dist/features/index.d.ts +0 -21
  720. package/dist/features/index.d.ts.map +0 -1
  721. package/dist/features/morph/index.d.ts +0 -3
  722. package/dist/features/morph/index.d.ts.map +0 -1
  723. package/dist/features/morph/morph-bounds.d.ts +0 -42
  724. package/dist/features/morph/morph-bounds.d.ts.map +0 -1
  725. package/dist/features/scene-temporal.d.ts +0 -45
  726. package/dist/features/scene-temporal.d.ts.map +0 -1
  727. package/dist/features/taa-resolve.d.ts +0 -21
  728. package/dist/features/taa-resolve.d.ts.map +0 -1
  729. package/dist/frame-chain.d.ts +0 -14
  730. package/dist/frame-chain.d.ts.map +0 -1
  731. package/dist/gpu-driven/view-reference.d.ts.map +0 -1
  732. package/dist/gpu-resource-store.d.ts.map +0 -1
  733. package/dist/hdrp-cluster-membership.d.ts +0 -2
  734. package/dist/hdrp-cluster-membership.d.ts.map +0 -1
  735. package/dist/hdrp-pipeline.d.ts +0 -36
  736. package/dist/hdrp-pipeline.d.ts.map +0 -1
  737. package/dist/ibl/cubemap-projection.d.ts +0 -23
  738. package/dist/ibl/cubemap-projection.d.ts.map +0 -1
  739. package/dist/ibl/face-uniforms.d.ts +0 -65
  740. package/dist/ibl/face-uniforms.d.ts.map +0 -1
  741. package/dist/mesh-update-errors.d.ts +0 -71
  742. package/dist/mesh-update-errors.d.ts.map +0 -1
  743. package/dist/mipmap-generator.d.ts +0 -39
  744. package/dist/mipmap-generator.d.ts.map +0 -1
  745. package/dist/param-schema-projection-census.d.ts +0 -18
  746. package/dist/param-schema-projection-census.d.ts.map +0 -1
  747. package/dist/persistent-render-scene.d.ts +0 -158
  748. package/dist/persistent-render-scene.d.ts.map +0 -1
  749. package/dist/pipeline/index.d.ts +0 -11
  750. package/dist/pipeline/index.d.ts.map +0 -1
  751. package/dist/pipeline-errors.d.ts +0 -110
  752. package/dist/pipeline-errors.d.ts.map +0 -1
  753. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts +0 -2
  754. package/dist/prepare/__tests__/schema-readers.unit.test.d.ts.map +0 -1
  755. package/dist/prepare/index.d.ts +0 -4
  756. package/dist/prepare/index.d.ts.map +0 -1
  757. package/dist/prepare/schema-readers.d.ts +0 -11
  758. package/dist/prepare/schema-readers.d.ts.map +0 -1
  759. package/dist/record/__tests__/environment-record.test.d.ts +0 -2
  760. package/dist/record/__tests__/environment-record.test.d.ts.map +0 -1
  761. package/dist/record/__tests__/frame-targets.unit.test.d.ts +0 -2
  762. package/dist/record/__tests__/frame-targets.unit.test.d.ts.map +0 -1
  763. package/dist/record/__tests__/membership-timing.unit.test.d.ts +0 -2
  764. package/dist/record/__tests__/membership-timing.unit.test.d.ts.map +0 -1
  765. package/dist/record/__tests__/render-submission.integration.test.d.ts +0 -2
  766. package/dist/record/__tests__/render-submission.integration.test.d.ts.map +0 -1
  767. package/dist/record/__tests__/render-submission.perf.test.d.ts +0 -2
  768. package/dist/record/__tests__/render-submission.perf.test.d.ts.map +0 -1
  769. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts +0 -2
  770. package/dist/record/__tests__/shadow-submit-mode.unit.test.d.ts.map +0 -1
  771. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts +0 -2
  772. package/dist/record/__tests__/view-ubo-layout.unit.test.d.ts.map +0 -1
  773. package/dist/record/frame-observation.d.ts +0 -38
  774. package/dist/record/frame-observation.d.ts.map +0 -1
  775. package/dist/record/index.d.ts +0 -15
  776. package/dist/record/index.d.ts.map +0 -1
  777. package/dist/record/main-pass-skin.d.ts +0 -46
  778. package/dist/record/main-pass-skin.d.ts.map +0 -1
  779. package/dist/record/main-pass-sprite.d.ts +0 -69
  780. package/dist/record/main-pass-sprite.d.ts.map +0 -1
  781. package/dist/record/material-payload.d.ts +0 -43
  782. package/dist/record/material-payload.d.ts.map +0 -1
  783. package/dist/record/material-slot-plan.d.ts +0 -26
  784. package/dist/record/material-slot-plan.d.ts.map +0 -1
  785. package/dist/record/membership-timing.d.ts +0 -232
  786. package/dist/record/membership-timing.d.ts.map +0 -1
  787. package/dist/record/shadow-caster-uniform.d.ts +0 -8
  788. package/dist/record/shadow-caster-uniform.d.ts.map +0 -1
  789. package/dist/record/shadow-submit-mode.d.ts +0 -66
  790. package/dist/record/shadow-submit-mode.d.ts.map +0 -1
  791. package/dist/render-dispatch-membership.d.ts +0 -47
  792. package/dist/render-dispatch-membership.d.ts.map +0 -1
  793. package/dist/render-pipeline-context.d.ts +0 -289
  794. package/dist/render-pipeline-context.d.ts.map +0 -1
  795. package/dist/render-pipeline-target.d.ts +0 -16
  796. package/dist/render-pipeline-target.d.ts.map +0 -1
  797. package/dist/render-scene-projection.d.ts +0 -174
  798. package/dist/render-scene-projection.d.ts.map +0 -1
  799. package/dist/render-system-fold.d.ts +0 -266
  800. package/dist/render-system-fold.d.ts.map +0 -1
  801. package/dist/renderer/asset-service.d.ts +0 -10
  802. package/dist/renderer/asset-service.d.ts.map +0 -1
  803. package/dist/renderer/backend-selection.d.ts.map +0 -1
  804. package/dist/renderer/environment-classify.d.ts +0 -6
  805. package/dist/renderer/environment-classify.d.ts.map +0 -1
  806. package/dist/renderer/environment-error.d.ts +0 -13
  807. package/dist/renderer/environment-error.d.ts.map +0 -1
  808. package/dist/renderer/material/pipeline-projection.d.ts +0 -91
  809. package/dist/renderer/material/pipeline-projection.d.ts.map +0 -1
  810. package/dist/renderer/renderer-factory.d.ts +0 -289
  811. package/dist/renderer/renderer-factory.d.ts.map +0 -1
  812. package/dist/renderer.d.ts +0 -771
  813. package/dist/renderer.d.ts.map +0 -1
  814. package/dist/scene-utils/collect-subtree.d.ts +0 -11
  815. package/dist/scene-utils/collect-subtree.d.ts.map +0 -1
  816. package/dist/ssao-data.d.ts +0 -34
  817. package/dist/ssao-data.d.ts.map +0 -1
  818. package/dist/surface-format.d.ts +0 -10
  819. package/dist/surface-format.d.ts.map +0 -1
  820. package/dist/taa-history-store.d.ts +0 -88
  821. package/dist/taa-history-store.d.ts.map +0 -1
  822. package/dist/temporal-coverage.d.ts +0 -35
  823. package/dist/temporal-coverage.d.ts.map +0 -1
  824. package/dist/temporal-frame-transaction.d.ts +0 -92
  825. package/dist/temporal-frame-transaction.d.ts.map +0 -1
  826. package/dist/temporal-inspection.d.ts +0 -57
  827. package/dist/temporal-inspection.d.ts.map +0 -1
  828. package/dist/temporal-view.d.ts +0 -43
  829. package/dist/temporal-view.d.ts.map +0 -1
  830. package/dist/tilemap/resolve-tileset-runtime.d.ts +0 -23
  831. package/dist/tilemap/resolve-tileset-runtime.d.ts.map +0 -1
  832. package/dist/urp-pipeline.d.ts +0 -4
  833. package/dist/urp-pipeline.d.ts.map +0 -1
  834. package/src/__tests__/analytic-sky-contract.test.ts +0 -27
  835. package/src/__tests__/analytic-sky-falsify-carriers.mjs +0 -43
  836. package/src/__tests__/analytic-sky-falsify.test.ts +0 -94
  837. package/src/__tests__/assets-runtime-handoff.integration.test.ts +0 -36
  838. package/src/__tests__/backend-selection.integration.test.ts +0 -11
  839. package/src/__tests__/camera-temporal.test-d.ts +0 -8
  840. package/src/__tests__/camera-temporal.test.ts +0 -188
  841. package/src/__tests__/directional-shadow-probe-atlas-layout.unit.test.ts +0 -18
  842. package/src/__tests__/environment-inspection.test.ts +0 -45
  843. package/src/__tests__/fog-ai-user.fixture.ts +0 -350
  844. package/src/__tests__/fog-custom-render-feature.fixture.ts +0 -33
  845. package/src/__tests__/fog-custom-render-feature.integration.test.ts +0 -76
  846. package/src/__tests__/fog-inspection.integration.test.ts +0 -127
  847. package/src/__tests__/fog-owner-state.integration.test.ts +0 -112
  848. package/src/__tests__/fog-pipeline-topology.integration.test.ts +0 -93
  849. package/src/__tests__/fog-public-surface.integration.test.ts +0 -60
  850. package/src/__tests__/fog-ray-contract.integration.test.ts +0 -73
  851. package/src/__tests__/fog-source-absence.integration.test.ts +0 -51
  852. package/src/__tests__/fog-temporal.integration.test.ts +0 -115
  853. package/src/__tests__/frame-chain.unit.test.ts +0 -26
  854. package/src/__tests__/gpu-scene-field-type-owner.test-d.ts +0 -27
  855. package/src/__tests__/hdrp-pipeline.unit.test.ts +0 -100
  856. package/src/__tests__/ibl/ibl-fallback.unit.test.ts +0 -23
  857. package/src/__tests__/material-derived-error-stop-draw.integration.test.ts +0 -69
  858. package/src/__tests__/material-derived-payload.integration.test.ts +0 -164
  859. package/src/__tests__/materials.unit.test.ts +0 -25
  860. package/src/__tests__/param-schema-projection-census.unit.test.ts +0 -40
  861. package/src/__tests__/persistent-render-scene.unit.test.ts +0 -1311
  862. package/src/__tests__/pipeline-error-policy-owner.unit.test.ts +0 -167
  863. package/src/__tests__/pipeline-pass-trace.test.ts +0 -92
  864. package/src/__tests__/pipeline-stage-owner.test-d.ts +0 -13
  865. package/src/__tests__/plugin.test.ts +0 -25
  866. package/src/__tests__/prepared-graphics-backend-matrix.unit.test.ts +0 -129
  867. package/src/__tests__/prepared-graphics-resolver-recording.unit.test.ts +0 -180
  868. package/src/__tests__/public-pipeline-id.test-d.ts +0 -6
  869. package/src/__tests__/render-dispatch-membership.unit.test.ts +0 -117
  870. package/src/__tests__/render-feature-construction.unit.test.ts +0 -124
  871. package/src/__tests__/render-feature-error-code-owner.test-d.ts +0 -27
  872. package/src/__tests__/render-feature-gpu-buffer-usage-owner.test-d.ts +0 -46
  873. package/src/__tests__/render-feature-graph.integration.test.ts +0 -205
  874. package/src/__tests__/render-feature-graphics-staging.unit.test.ts +0 -200
  875. package/src/__tests__/render-feature-order.unit.test.ts +0 -66
  876. package/src/__tests__/render-feature-prepared-graphics-recording.unit.test.ts +0 -107
  877. package/src/__tests__/render-feature-staging.unit.test.ts +0 -94
  878. package/src/__tests__/renderer-render-scene-public.test-d.ts +0 -27
  879. package/src/__tests__/scene-temporal-coverage.unit.test.ts +0 -259
  880. package/src/__tests__/sun-snapshot-consumers.test.ts +0 -35
  881. package/src/__tests__/surface-backend-kind-owner.test-d.ts +0 -42
  882. package/src/__tests__/taa-history-store.unit.test.ts +0 -196
  883. package/src/__tests__/temporal-frame-transaction.integration.test.ts +0 -537
  884. package/src/__tests__/temporal-inspection.unit.test.ts +0 -138
  885. package/src/assets/__tests__/asset-decoders.unit.test.ts +0 -92
  886. package/src/assets/__tests__/mipmap-generator.unit.test.ts +0 -52
  887. package/src/assets/__tests__/render-asset-port.unit.test.ts +0 -54
  888. package/src/assets/__tests__/resolve-render-asset.unit.test.ts +0 -47
  889. package/src/components/__tests__/atmosphere-red.test.ts +0 -51
  890. package/src/components/__tests__/atmosphere.test.ts +0 -79
  891. package/src/components/__tests__/fog.test-d.ts +0 -49
  892. package/src/components/__tests__/fog.test.ts +0 -60
  893. package/src/components/atmosphere.ts +0 -64
  894. package/src/deferred-lighting.ts +0 -92
  895. package/src/dynamic-texture-store.ts +0 -111
  896. package/src/environment/README.md +0 -76
  897. package/src/environment/__tests__/failure-injection.test.ts +0 -50
  898. package/src/environment/__tests__/generation-red.test.ts +0 -64
  899. package/src/environment/__tests__/generation.test.ts +0 -37
  900. package/src/environment/__tests__/graph-transaction.test.ts +0 -85
  901. package/src/environment/__tests__/inspection-red.test.ts +0 -53
  902. package/src/environment/__tests__/lifecycle-evidence.test.ts +0 -40
  903. package/src/environment/__tests__/pipeline-topology.test.ts +0 -33
  904. package/src/environment/__tests__/readiness.test.ts +0 -42
  905. package/src/environment/__tests__/recovery.test.ts +0 -62
  906. package/src/environment/__tests__/resize-dispose.test.ts +0 -30
  907. package/src/environment/__tests__/signature-red.test.ts +0 -45
  908. package/src/environment/__tests__/signature.test.ts +0 -60
  909. package/src/environment/descriptors.ts +0 -7
  910. package/src/environment/extracted-environment.ts +0 -239
  911. package/src/environment/generation.ts +0 -158
  912. package/src/environment/gpu-bundle.ts +0 -144
  913. package/src/environment/graph.ts +0 -588
  914. package/src/environment/inspection.ts +0 -107
  915. package/src/environment/lifecycle.ts +0 -124
  916. package/src/environment/readiness.ts +0 -76
  917. package/src/environment/signature.ts +0 -185
  918. package/src/extract/__tests__/directional-csm-domain.unit.test.ts +0 -391
  919. package/src/extract/__tests__/environment-source.test.ts +0 -105
  920. package/src/extract/__tests__/schema-readers.unit.test.ts +0 -16
  921. package/src/extract/directional-csm.ts +0 -959
  922. package/src/extract/index.ts +0 -10
  923. package/src/extract/material-interface.ts +0 -604
  924. package/src/extract/schema-readers.ts +0 -27
  925. package/src/features/graph-contribution.ts +0 -577
  926. package/src/features/index.ts +0 -100
  927. package/src/features/morph/index.ts +0 -24
  928. package/src/features/morph/morph-bounds.ts +0 -123
  929. package/src/features/scene-temporal.ts +0 -274
  930. package/src/features/taa-resolve.ts +0 -244
  931. package/src/frame-chain.ts +0 -21
  932. package/src/hdrp-cluster-membership.ts +0 -70
  933. package/src/ibl/cubemap-projection.ts +0 -60
  934. package/src/ibl/face-uniforms.ts +0 -150
  935. package/src/mesh-update-errors.ts +0 -113
  936. package/src/mipmap-generator.ts +0 -244
  937. package/src/param-schema-projection-census.ts +0 -73
  938. package/src/persistent-render-scene.ts +0 -1752
  939. package/src/pipeline/index.ts +0 -40
  940. package/src/pipeline-errors.ts +0 -172
  941. package/src/prepare/__tests__/schema-readers.unit.test.ts +0 -16
  942. package/src/prepare/index.ts +0 -8
  943. package/src/prepare/schema-readers.ts +0 -20
  944. package/src/record/__tests__/environment-record.test.ts +0 -35
  945. package/src/record/__tests__/frame-targets.unit.test.ts +0 -54
  946. package/src/record/__tests__/membership-timing.unit.test.ts +0 -524
  947. package/src/record/__tests__/render-submission.integration.test.ts +0 -76
  948. package/src/record/__tests__/render-submission.perf.test.ts +0 -141
  949. package/src/record/__tests__/shadow-submit-mode.unit.test.ts +0 -88
  950. package/src/record/__tests__/view-ubo-layout.unit.test.ts +0 -101
  951. package/src/record/frame-observation.ts +0 -122
  952. package/src/record/index.ts +0 -15
  953. package/src/record/main-pass-skin.ts +0 -51
  954. package/src/record/main-pass-sprite.ts +0 -166
  955. package/src/record/material-payload.ts +0 -292
  956. package/src/record/material-slot-plan.ts +0 -68
  957. package/src/record/membership-timing.ts +0 -1012
  958. package/src/record/shadow-caster-uniform.ts +0 -37
  959. package/src/record/shadow-submit-mode.ts +0 -277
  960. package/src/render-dispatch-membership.ts +0 -155
  961. package/src/render-pipeline-context.ts +0 -332
  962. package/src/render-pipeline-target.ts +0 -96
  963. package/src/render-scene-projection.ts +0 -1738
  964. package/src/render-system-fold.ts +0 -531
  965. package/src/renderer/asset-service.ts +0 -32
  966. package/src/renderer/backend-selection.ts +0 -121
  967. package/src/renderer/environment-classify.ts +0 -30
  968. package/src/renderer/environment-error.ts +0 -19
  969. package/src/renderer/material/pipeline-projection.ts +0 -140
  970. package/src/renderer.ts +0 -940
  971. package/src/scene-utils/collect-subtree.ts +0 -40
  972. package/src/ssao-data.ts +0 -106
  973. package/src/surface-format.ts +0 -37
  974. package/src/taa-history-store.ts +0 -429
  975. package/src/temporal-coverage.ts +0 -106
  976. package/src/temporal-frame-transaction.ts +0 -301
  977. package/src/temporal-inspection.ts +0 -194
  978. package/src/temporal-view.ts +0 -174
  979. package/src/tilemap/resolve-tileset-runtime.ts +0 -72
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/assets/asset-decoders.ts","../src/features/morph/morph-bounds.ts","../src/features/morph/morph-feature.ts","../src/scene-utils/collect-subtree.ts","../src/scene-instances/post-spawn-resolve-joints.ts","../src/plugin.ts"],"names":["err","ok"],"mappings":"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","file":"chunk-PORZOL2V.mjs","sourcesContent":["import { validateCookedMaterialRecord } from '@forgeax/engine-pack';\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n type AssetLoadError,\n err,\n MATERIAL_TEXTURE_SLOTS,\n type MaterialAsset,\n ok,\n type RenderPipelineAsset,\n type SamplerAsset,\n} from '@forgeax/engine-types';\n\nfunction invalid(guid: string, expected: string, reason: string) {\n return err({\n code: 'asset-package-invalid' as const,\n expected,\n hint: 'recook the render asset and publish its complete cooked payload',\n detail: { guid, reason },\n });\n}\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validMaterial(value: unknown): value is MaterialAsset {\n if (!record(value) || value.kind !== 'material') return false;\n if (value.cooked !== undefined && !validateCookedMaterialRecord(value.cooked).ok) {\n return false;\n }\n if (value.passes !== undefined && !Array.isArray(value.passes)) return false;\n if (value.parameters !== undefined && !Array.isArray(value.parameters)) return false;\n return value.values === undefined || record(value.values);\n}\n\nfunction resolveMaterialWireRef(\n value: unknown,\n refs: readonly string[],\n field: string,\n guid: string,\n): ReturnType<typeof ok<string | number>> | ReturnType<typeof err<AssetLoadError>> {\n if (typeof value !== 'number') return ok(value as string | number);\n if (!Number.isSafeInteger(value) || value < 0 || refs[value] === undefined) {\n return err<AssetLoadError>({\n code: 'asset-package-invalid',\n expected: `${field} to reference a GUID through the material Pack refs[] table`,\n hint: 'recook the material so every texture or sampler ref has a matching refs[] entry',\n detail: { guid, reason: `${field} refs[${value}] is out of bounds` },\n });\n }\n return ok(refs[value] as string);\n}\n\nfunction resolveMaterialWireRefs(\n value: MaterialAsset,\n refs: readonly string[],\n guid: string,\n): ReturnType<typeof ok<MaterialAsset>> | ReturnType<typeof err<AssetLoadError>> {\n if (refs.length === 0) return ok(value);\n\n let changed = false;\n let parent = value.parent;\n if (typeof parent === 'number') {\n const resolved = resolveMaterialWireRef(parent, refs, 'parent', guid);\n if (!resolved.ok) return resolved;\n parent = resolved.value as unknown as MaterialAsset['parent'];\n changed = true;\n }\n\n if (value.values === undefined) {\n return changed ? ok({ ...value, ...(parent === undefined ? {} : { parent }) }) : ok(value);\n }\n\n const textureFields = new Set(\n value.parameters === undefined\n ? MATERIAL_TEXTURE_SLOTS\n : value.parameters\n .filter((parameter) => parameter.type === 'texture')\n .map((parameter) => parameter.name),\n );\n const values = { ...value.values };\n for (const [field, raw] of Object.entries(values)) {\n if (typeof raw === 'number' && textureFields.has(field)) {\n const resolved = resolveMaterialWireRef(raw, refs, field, guid);\n if (!resolved.ok) return resolved;\n values[field] = resolved.value as NonNullable<MaterialAsset['values']>[string];\n changed = true;\n continue;\n }\n if (!record(raw)) continue;\n const rawRecord = raw as unknown as Record<string, unknown>;\n let rewritten: Record<string, unknown> | undefined;\n for (const key of ['texture', 'sampler'] as const) {\n if (!(key in rawRecord)) continue;\n const resolved = resolveMaterialWireRef(rawRecord[key], refs, `${field}.${key}`, guid);\n if (!resolved.ok) return resolved;\n if (resolved.value !== rawRecord[key]) {\n rewritten ??= { ...rawRecord };\n rewritten[key] = resolved.value;\n changed = true;\n }\n }\n if (rewritten !== undefined) {\n values[field] = rewritten as unknown as NonNullable<MaterialAsset['values']>[string];\n }\n }\n return ok(changed ? { ...value, ...(parent === undefined ? {} : { parent }), values } : value);\n}\n\nexport const materialContribution: AssetDecoderContribution<MaterialAsset, 'material'> = {\n kind: { kind: 'material' } as AssetKind<MaterialAsset, 'material'>,\n consumer: 'Render MaterialScene',\n decoder: {\n async decode({ envelope }) {\n if (!validMaterial(envelope.payload)) {\n return invalid(\n envelope.guid,\n 'a material payload with cooked passes, parameters, and values',\n 'material owner validation failed',\n );\n }\n return resolveMaterialWireRefs(envelope.payload, envelope.refs, envelope.guid);\n },\n },\n};\n\nexport const samplerContribution: AssetDecoderContribution<SamplerAsset, 'sampler'> = {\n kind: { kind: 'sampler' } as AssetKind<SamplerAsset, 'sampler'>,\n consumer: 'Render DeviceScope',\n decoder: {\n async decode({ envelope }) {\n return envelope.payload.kind === 'sampler'\n ? ok(envelope.payload)\n : invalid(envelope.guid, 'a sampler payload', 'sampler owner validation failed');\n },\n },\n};\n\nexport const renderPipelineContribution: AssetDecoderContribution<\n RenderPipelineAsset,\n 'render-pipeline'\n> = {\n kind: { kind: 'render-pipeline' } as AssetKind<RenderPipelineAsset, 'render-pipeline'>,\n consumer: 'Render Pipeline',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'render-pipeline' && payload.pipelineId.trim().length > 0\n ? ok(payload)\n : invalid(\n envelope.guid,\n 'a render-pipeline payload with a pipelineId',\n 'render-pipeline owner validation failed',\n );\n },\n },\n};\n","export const MORPH_MAX_TARGETS = 8;\n\nexport type MorphVec3 = readonly [number, number, number];\n\nexport interface MorphBounds {\n readonly min: MorphVec3;\n readonly max: MorphVec3;\n}\n\nexport interface MorphTargetBounds {\n readonly min: MorphVec3;\n readonly max: MorphVec3;\n}\n\nexport interface MorphCullInput {\n readonly weights?: ArrayLike<number>;\n readonly expectedWeightCount: number;\n readonly baseAabbIntersectsFrustum: boolean;\n}\n\nexport type MorphCullDecision = 'draw' | 'cull';\n\nfunction finiteVec3(value: MorphVec3): boolean {\n return value.every((component) => Number.isFinite(component));\n}\n\nfunction validWeights(weights: ArrayLike<number> | undefined, expected: number): boolean {\n if (weights === undefined || weights.length !== expected) return false;\n for (let index = 0; index < weights.length; index++) {\n if (!Number.isFinite(weights[index] ?? Number.NaN)) return false;\n }\n return true;\n}\n\n/** Compute a conservative AABB from base bounds and target delta bounds. */\nexport function deriveMorphBounds(\n base: MorphBounds,\n targets: readonly MorphTargetBounds[],\n weights: ArrayLike<number>,\n): MorphBounds {\n if (\n !finiteVec3(base.min) ||\n !finiteVec3(base.max) ||\n targets.length > MORPH_MAX_TARGETS ||\n !validWeights(weights, targets.length)\n ) {\n return base;\n }\n\n const min = [base.min[0], base.min[1], base.min[2]];\n const max = [base.max[0], base.max[1], base.max[2]];\n for (let targetIndex = 0; targetIndex < targets.length; targetIndex++) {\n const target = targets[targetIndex];\n const weight = weights[targetIndex] ?? 0;\n if (target === undefined || !finiteVec3(target.min) || !finiteVec3(target.max)) return base;\n for (let axis = 0; axis < 3; axis++) {\n const low = (weight >= 0 ? target.min[axis] : target.max[axis]) ?? 0;\n const high = (weight >= 0 ? target.max[axis] : target.min[axis]) ?? 0;\n min[axis] = (min[axis] ?? 0) + weight * low;\n max[axis] = (max[axis] ?? 0) + weight * high;\n }\n }\n return {\n min: [min[0] ?? 0, min[1] ?? 0, min[2] ?? 0],\n max: [max[0] ?? 0, max[1] ?? 0, max[2] ?? 0],\n };\n}\n\n/** Keep non-zero valid morphs drawable even when their base AABB is outside. */\nexport function morphCullDecision(input: MorphCullInput): MorphCullDecision {\n if (!Number.isInteger(input.expectedWeightCount) || input.expectedWeightCount < 0) return 'cull';\n if (!validWeights(input.weights, input.expectedWeightCount)) {\n return 'cull';\n }\n for (let index = 0; index < input.expectedWeightCount; index++) {\n if ((input.weights?.[index] ?? 0) !== 0) return 'draw';\n }\n return input.baseAabbIntersectsFrustum ? 'draw' : 'cull';\n}\n\nexport interface MorphReentryState {\n seen: boolean;\n visible: boolean;\n generation: number;\n weights: Float32Array | undefined;\n}\n\nexport interface MorphReentryInput {\n readonly frameNumber: number;\n readonly visible: boolean;\n readonly generation: number;\n readonly weights: ArrayLike<number>;\n}\n\nexport interface MorphReentryResult {\n readonly frameNumber: number;\n readonly reentered: boolean;\n readonly clearStale: boolean;\n readonly weights: readonly number[];\n}\n\nexport function createMorphReentryState(): MorphReentryState {\n return { seen: false, visible: false, generation: -1, weights: undefined };\n}\n\n/** Track visibility transitions so a re-entry always rewrites the current weights. */\nexport function stepMorphReentry(\n state: MorphReentryState,\n input: MorphReentryInput,\n): MorphReentryResult {\n const reentered =\n state.seen && input.visible && (!state.visible || state.generation !== input.generation);\n const clearStale = reentered && state.weights !== undefined;\n const weights = Array.from(\n { length: input.weights.length },\n (_, index) => input.weights[index] ?? 0,\n );\n state.seen = true;\n state.visible = input.visible;\n state.generation = input.generation;\n state.weights = new Float32Array(weights);\n return { frameNumber: input.frameNumber, reentered, clearStale, weights };\n}\n","import type { World } from '@forgeax/engine-ecs';\nimport { err, ok } from '@forgeax/engine-types';\nimport { RenderFeatureStageFailedError } from '../../errors/render';\nimport type { RenderFeatureGpuBufferRef } from '../prepared-gpu-work';\nimport type { RenderFeature } from '../types';\nimport {\n createMorphReentryState,\n deriveMorphBounds,\n MORPH_MAX_TARGETS,\n type MorphBounds,\n type MorphReentryState,\n type MorphTargetBounds,\n morphCullDecision,\n stepMorphReentry,\n} from './morph-bounds';\n\nconst COMPUTE_STAGE = 0x4;\nconst MORPH_WEIGHTS_BYTES = MORPH_MAX_TARGETS * Float32Array.BYTES_PER_ELEMENT;\nconst MORPH_WORKGROUP_SIZE = 64;\n\nexport const MORPH_COMPUTE_WGSL = `\nstruct MorphWeights { values: array<f32, 8> };\n@group(0) @binding(0) var<storage, read> source: array<vec4<f32>>;\n@group(0) @binding(1) var<storage, read_write> output: array<vec4<f32>>;\n@group(0) @binding(2) var<uniform> weights: MorphWeights;\n\n@compute @workgroup_size(${MORPH_WORKGROUP_SIZE})\nfn morph_main(@builtin(global_invocation_id) id: vec3<u32>) {\n let vertex = id.x;\n let vertex_count = arrayLength(&output);\n if (vertex >= vertex_count) { return; }\n var position = source[vertex];\n for (var target_index = 0u; target_index < 8u; target_index = target_index + 1u) {\n position = position + source[(target_index + 1u) * vertex_count + vertex] * weights.values[target_index];\n }\n output[vertex] = position;\n}\n`;\n\nexport interface MorphFeatureRenderable {\n readonly identity: string;\n readonly vertexCount: number;\n readonly baseBounds: MorphBounds;\n readonly targetBounds: readonly MorphTargetBounds[];\n readonly weights: ArrayLike<number>;\n readonly baseAabbIntersectsFrustum: boolean;\n readonly basePositions?: ArrayLike<number>;\n readonly targetDeltas?: ArrayLike<number>;\n}\n\nexport interface MorphFeatureCollectContext {\n readonly worlds: readonly World[];\n readonly frameNumber: number;\n}\n\nexport interface MorphFeatureOptions {\n readonly collect: (context: MorphFeatureCollectContext) => readonly MorphFeatureRenderable[];\n}\n\nexport interface MorphFeatureDraw {\n readonly identity: string;\n readonly vertexCount: number;\n readonly targetCount: number;\n readonly bounds: MorphBounds;\n readonly weights: Float32Array;\n readonly reentered: boolean;\n readonly clearStale: boolean;\n readonly source: Float32Array;\n}\n\nexport interface MorphFeatureFrame {\n readonly frameNumber: number;\n readonly draws: readonly MorphFeatureDraw[];\n readonly culledCount: number;\n readonly zeroWeightCount: number;\n readonly reentryCount: number;\n}\n\nexport interface MorphFeature extends RenderFeature<MorphFeatureFrame> {\n /** Resolve the current output buffer for an evidence readback or downstream draw. */\n preparedOutput(identity: string): RenderFeatureGpuBufferRef | undefined;\n}\n\ninterface MorphGpuState {\n readonly program: import('../prepared-gpu-work').RenderFeatureGpuProgramRef;\n readonly source: import('../prepared-gpu-work').RenderFeatureGpuBufferRef;\n readonly output: import('../prepared-gpu-work').RenderFeatureGpuBufferRef;\n readonly weights: import('../prepared-gpu-work').RenderFeatureGpuBufferRef;\n readonly bindings: import('../prepared-gpu-work').RenderFeatureGpuBindingsRef;\n}\n\nfunction stageFailure(stage: 'prepare' | 'contribute'): RenderFeatureStageFailedError {\n return new RenderFeatureStageFailedError('forgeax.morph', -1, stage, 'next-frame');\n}\n\nfunction copyWeights(input: ArrayLike<number>): Float32Array {\n const weights = new Float32Array(MORPH_MAX_TARGETS);\n for (let index = 0; index < Math.min(input.length, MORPH_MAX_TARGETS); index++) {\n weights[index] = input[index] ?? 0;\n }\n return weights;\n}\n\nfunction copySource(renderable: MorphFeatureRenderable, targetCount: number): Float32Array {\n const source = new Float32Array((MORPH_MAX_TARGETS + 1) * renderable.vertexCount * 4);\n const basePositions = renderable.basePositions;\n const targetDeltas = renderable.targetDeltas;\n for (let vertex = 0; vertex < renderable.vertexCount; vertex++) {\n const base = vertex * 4;\n source[base] = basePositions?.[vertex * 3] ?? 0;\n source[base + 1] = basePositions?.[vertex * 3 + 1] ?? 0;\n source[base + 2] = basePositions?.[vertex * 3 + 2] ?? 0;\n source[base + 3] = 1;\n for (let target = 0; target < targetCount; target++) {\n const sourceBase = (target + 1) * renderable.vertexCount * 4 + vertex * 4;\n const deltaBase = (target * renderable.vertexCount + vertex) * 3;\n source[sourceBase] = targetDeltas?.[deltaBase] ?? 0;\n source[sourceBase + 1] = targetDeltas?.[deltaBase + 1] ?? 0;\n source[sourceBase + 2] = targetDeltas?.[deltaBase + 2] ?? 0;\n source[sourceBase + 3] = 0;\n }\n }\n return source;\n}\n\nfunction validRenderable(renderable: MorphFeatureRenderable): boolean {\n return (\n renderable.identity.length > 0 &&\n Number.isInteger(renderable.vertexCount) &&\n renderable.vertexCount > 0 &&\n renderable.targetBounds.length > 0 &&\n renderable.targetBounds.length <= MORPH_MAX_TARGETS &&\n renderable.weights.length === renderable.targetBounds.length\n );\n}\n\nexport function createMorphFeature(options: MorphFeatureOptions): MorphFeature {\n const reentry = new Map<string, MorphReentryState>();\n const prepared = new Map<string, MorphGpuState>();\n\n const feature: MorphFeature = {\n identity: 'forgeax.morph',\n requiredCapabilities: ['compute', 'storageBuffer'],\n extract: ({ worlds, frameNumber }) => {\n const renderables = options.collect({ worlds, frameNumber });\n const draws: MorphFeatureDraw[] = [];\n let culledCount = 0;\n let zeroWeightCount = 0;\n let reentryCount = 0;\n for (const renderable of renderables) {\n if (!validRenderable(renderable)) return err(stageFailure('prepare'));\n const weights = copyWeights(renderable.weights);\n const decision = morphCullDecision({\n weights: renderable.weights,\n expectedWeightCount: renderable.targetBounds.length,\n baseAabbIntersectsFrustum: renderable.baseAabbIntersectsFrustum,\n });\n const state = reentry.get(renderable.identity) ?? createMorphReentryState();\n reentry.set(renderable.identity, state);\n const transition = stepMorphReentry(state, {\n frameNumber,\n visible: decision === 'draw',\n generation: 0,\n weights,\n });\n if (decision === 'cull') {\n culledCount += 1;\n if (weights.every((weight) => weight === 0)) zeroWeightCount += 1;\n continue;\n }\n if (transition.reentered) reentryCount += 1;\n draws.push({\n identity: renderable.identity,\n vertexCount: renderable.vertexCount,\n targetCount: renderable.targetBounds.length,\n bounds: deriveMorphBounds(\n renderable.baseBounds,\n renderable.targetBounds,\n renderable.weights,\n ),\n weights,\n reentered: transition.reentered,\n clearStale: transition.clearStale,\n source: copySource(renderable, renderable.targetBounds.length),\n });\n }\n prepared.clear();\n return ok({\n frameNumber,\n draws,\n culledCount,\n zeroWeightCount,\n reentryCount,\n });\n },\n prepare: (data, context) => {\n if (data.draws.length === 0) return ok(undefined);\n const gpu = context.gpu;\n if (gpu === undefined) return err(stageFailure('prepare'));\n const program = gpu.prepareProgram('morph.compute', {\n wgsl: MORPH_COMPUTE_WGSL,\n entryPoints: ['morph_main'],\n bindings: [\n {\n label: 'forgeax.morph.bindings',\n entries: [\n { binding: 0, visibility: COMPUTE_STAGE, buffer: { type: 'read-only-storage' } },\n { binding: 1, visibility: COMPUTE_STAGE, buffer: { type: 'storage' } },\n { binding: 2, visibility: COMPUTE_STAGE, buffer: { type: 'uniform' } },\n ],\n },\n ],\n });\n if (!program.ok) return err(program.error);\n for (const draw of data.draws) {\n const prefix = `morph.${draw.identity}`;\n const source = gpu.prepareBuffer(`${prefix}.source`, {\n size: draw.source.byteLength,\n usage: ['storage'],\n data: draw.source,\n });\n if (!source.ok) return err(source.error);\n const output = gpu.prepareBuffer(`${prefix}.output`, {\n size: draw.vertexCount * 16,\n usage: ['storage', 'vertex', 'copy-src'],\n });\n if (!output.ok) return err(output.error);\n const weights = gpu.prepareBuffer(`${prefix}.weights`, {\n size: MORPH_WEIGHTS_BYTES,\n usage: ['uniform'],\n data: draw.weights,\n });\n if (!weights.ok) return err(weights.error);\n const bindings = gpu.prepareBindings(`${prefix}.bindings`, {\n program: program.value,\n entries: [\n { binding: 0, buffer: source.value },\n { binding: 1, buffer: output.value },\n { binding: 2, buffer: weights.value },\n ],\n });\n if (!bindings.ok) return err(bindings.error);\n prepared.set(draw.identity, {\n program: program.value,\n source: source.value,\n output: output.value,\n weights: weights.value,\n bindings: bindings.value,\n });\n }\n return ok(undefined);\n },\n contribute: (data, context) => {\n if (data.draws.length === 0) return ok(undefined);\n const gpu = context.gpu;\n if (gpu === undefined) return err(stageFailure('contribute'));\n for (const draw of data.draws) {\n const state = prepared.get(draw.identity);\n if (state === undefined) return err(stageFailure('contribute'));\n const added = context.staging.addComputePass(`morph.${draw.identity}`, {\n program: state.program,\n bindings: state.bindings,\n dispatches: [\n {\n entryPoint: 'morph_main',\n workgroups: [Math.max(1, Math.ceil(draw.vertexCount / MORPH_WORKGROUP_SIZE))],\n bindings: state.bindings,\n },\n ],\n });\n if (!added.ok) return added;\n }\n return ok(undefined);\n },\n recover: () => {\n prepared.clear();\n return ok(undefined);\n },\n preparedOutput: (identity) => prepared.get(identity)?.output,\n dispose: () => {\n prepared.clear();\n reentry.clear();\n return ok(undefined);\n },\n };\n return feature;\n}\n","// M1 shared util — collectSubtree (AC-16).\n// Extracted from post-spawn-resolve-joints.ts:116-133.\n// Walks Children.entities BFS from spawnRoot; accepts optional external visited Set\n// for cross-root de-duplication (AC-03).\n\nimport type { EntityHandle, World } from '@forgeax/engine-ecs';\n\nimport { Children } from '@forgeax/engine-scene';\n\n/**\n * Walk `Children.entities` BFS from `spawnRoot` to collect all descendant\n * entities (incl. spawnRoot itself). When a shared `visited` Set is passed,\n * it is reused across roots for cross-root de-duplication; when omitted a\n * fresh Set is created (single-root / backward-compat).\n *\n * Entities without a `Children` component surface as leaves.\n */\nexport function collectSubtree(\n world: World,\n spawnRoot: EntityHandle,\n visited?: Set<number>,\n): Set<number> {\n if (visited === undefined) visited = new Set<number>();\n if (visited.has(spawnRoot as number)) return visited;\n const queue: number[] = [spawnRoot as number];\n visited.add(spawnRoot as number);\n while (queue.length > 0) {\n const cur = queue.shift() as number;\n const childrenData = world.get(cur as EntityHandle, Children);\n if (!childrenData.ok) continue;\n const list = childrenData.value.entities as ArrayLike<number>;\n for (let i = 0; i < list.length; i++) {\n const child = list[i] as number;\n if (visited.has(child)) continue;\n visited.add(child);\n queue.push(child);\n }\n }\n return visited;\n}\n","// @forgeax/engine-runtime — postSpawnResolveJoints hook (M1 / T-14).\n//\n// Invoked after sceneInstances.instantiate to auto-wire Skin.joints: Entity[]\n// from the SkinAsset.jointPaths via Name-component lookup on the\n// spawned entity subtree. This is the v1 missing item #2: instantiate auto-calls\n// postSpawnResolveJoints so AI users never manually populate Skin.joints.\n//\n// Resolution protocol (plan-strategy D-6a + tweak-20260611 D-7 subtree-scope):\n// - From the spawnRoot, walk ChildOf relations BFS to collect the spawned\n// subtree's entities. nameIndex is built only over those entities.\n// - For each Skin-bearing entity in the subtree, resolve the skeleton handle\n// to jointPaths via the resolver.\n// - For each jointPath leaf name, match against the subtree-local Name index.\n// - Same-name sibling within the subtree: first-match with console.warn (D-6a).\n// - Missing entity: fail-fast 'skin-joint-path-unresolved' error.\n// - Empty jointPaths: no-op (no crash).\n//\n// Why subtree-scope (tweak-20260611 D-7):\n// Without scope, multiple instantiate() calls on the same SceneAsset (e.g. 3\n// Fox foxes side-by-side) all wire to the FIRST instance's joint entities\n// because Name leaf strings collide globally — Skin.joints[] points to\n// instance-0's bones for every spawn, three foxes share one skeleton, poses\n// cannot differ. Scoping to ChildOf descendants of spawnRoot eliminates the\n// collision: each spawn has its own copy of the subtree, names collide only\n// among siblings within the same spawn, where D-6a's first-match-with-warn\n// remains the correct policy.\n//\n// Decision anchors:\n// - requirements AC-14 (post-spawn auto-wire)\n// - plan-strategy D-6a (first-match strategy within subtree)\n// - tweak-20260611 plan-strategy D-7 (subtree-scope)\n// - charter P3 (explicit failure: path-unresolved fail-fast)\n\nimport type { EntityHandle, World } from '@forgeax/engine-ecs';\nimport { Name } from '@forgeax/engine-scene';\nimport { Skin } from '@forgeax/engine-skinning';\nimport type { SkinAsset } from '@forgeax/engine-types';\nimport { collectSubtree } from '../scene-utils/collect-subtree';\n\n// feat-20260705-runtime-tier2-decomposition M1 / w6 (D-1): SkinJointResolver\n// relocated to registry/instantiate.ts so the hook contract travels with the\n// instantiate cluster into @forgeax/engine-assets-runtime. Imported back here as\n// a forward (runtime -> assets-runtime-bound module) type-only reference and\n// re-exported for existing consumers of this module's SkinJointResolver export.\nexport interface SkinJointResolver {\n resolveSkinAsset(skeletonHandle: number): SkinAsset | undefined;\n}\n\ninterface JointPathUnresolvedError {\n code: 'skin-joint-path-unresolved';\n expected: string;\n hint: string;\n detail: {\n skinEntity: number;\n path: readonly string[];\n failedAtIndex: number;\n };\n}\n\ninterface SkinAssetUnresolvedError {\n code: 'skin-asset-unresolved';\n expected: string;\n hint: string;\n detail: {\n skinEntity: number;\n skeletonHandle: number;\n };\n}\n\ntype ResolveError = JointPathUnresolvedError | SkinAssetUnresolvedError;\n\nexport function postSpawnResolveJoints(\n world: World,\n resolver: SkinJointResolver,\n spawnRoot: EntityHandle,\n): { ok: true } | { ok: false; error: ResolveError } {\n // tweak-20260611 D-7: scope nameIndex to the spawnRoot's ChildOf-descendant\n // subtree (incl. spawnRoot itself). Multiple instantiate() calls on the same\n // SceneAsset each get an independent subtree, so leaf-name collisions across\n // instances no longer wire all spawns to the first instance's joints.\n const subtree = collectSubtree(world, spawnRoot);\n const nameIndex = new Map<string, number[]>();\n const nameQuery = world.query({ read: [Name] });\n if (nameQuery.ok) {\n for (const row of nameQuery.value) {\n if (!subtree.has(row.entity as number)) continue;\n const nameVal = row.get(Name).value;\n const list = nameIndex.get(nameVal) ?? [];\n list.push(row.entity);\n nameIndex.set(nameVal, list);\n }\n }\n\n // Walk Skin-bearing entities IN THE SUBTREE and resolve joints. Skin is\n // matched through the owner identity projection, and entities outside the subtree\n // are filtered after readEntityAt (cheaper than per-archetype filtering).\n const skinQuery = world.query({ read: [Skin] });\n if (!skinQuery.ok) return { ok: true };\n for (const queryRow of skinQuery.value) {\n const entity = queryRow.entity;\n if (!subtree.has(entity as number)) continue;\n const skeletonHandle = queryRow.get(Skin).skeleton as number;\n\n const skinAsset = resolver.resolveSkinAsset(skeletonHandle);\n if (skinAsset === undefined) {\n // feat-20260612 M2 fixup: was a silent `continue` that left\n // `Skin.joints` empty -- the M2-introduced\n // JointCountMismatchError fail-fast in render-system-extract then\n // triggered every frame on the browser-async-pack-fetch path.\n // The cure is to load SkinAssets through the SceneAsset.skinGuids\n // cross-edge (gltfImporter scene branch emits the SkinAsset GUIDs into\n // the scene envelope's refs[], the runtime recursion source) so this\n // resolver should always succeed; if it does not, fail-fast here\n // with a precise errorCode rather than silently producing an\n // unresolvable Skin.joints state.\n return {\n ok: false,\n error: {\n code: 'skin-asset-unresolved',\n expected: `SkinAsset registered for skeleton handle ${skeletonHandle} when instantiate triggers postSpawnResolveJoints`,\n hint: `SkinAsset matching skeletonGuid for handle ${skeletonHandle} was not found in AssetRegistry; verify the SceneAsset.skinGuids[] cross-edge is populated by the importer (gltfImporter scene branch) and that AssetRegistry.load(sceneGuid, sceneAssetKind) recursively loaded each SkinAsset before instantiate (browser-async-pack-fetch path)`,\n detail: { skinEntity: entity, skeletonHandle },\n },\n };\n }\n\n const jointEntityList: number[] = [];\n for (const jointPath of skinAsset.jointPaths) {\n const pathSegments = jointPath.split('/').filter(Boolean);\n if (pathSegments.length === 0) continue;\n\n const leafName = pathSegments[pathSegments.length - 1];\n if (leafName === undefined) continue;\n\n const nameMatches = nameIndex.get(leafName);\n if (nameMatches === undefined || nameMatches.length === 0) {\n return {\n ok: false,\n error: {\n code: 'skin-joint-path-unresolved',\n expected: `joint entity with Name=\"${leafName}\" exists in the spawned subtree (root entity ${spawnRoot})`,\n hint: `joint path \"${jointPath}\" for skin entity ${entity} could not be resolved within spawnRoot ${spawnRoot}'s ChildOf-subtree; verify glTF node names are preserved and instantiateScene seeded a Children mirror`,\n detail: {\n skinEntity: entity,\n path: pathSegments,\n failedAtIndex: pathSegments.length - 1,\n },\n },\n };\n }\n\n if (nameMatches.length > 1) {\n console.warn(\n `[Skin] same-name sibling: \"${leafName}\" matches ${nameMatches.length} entities ` +\n `within spawn subtree of root ${spawnRoot}; using first-match (entity ${nameMatches[0]}) per D-6a`,\n );\n }\n\n jointEntityList.push(nameMatches[0] as number);\n }\n\n world.set(entity, Skin, {\n joints: new Uint32Array(jointEntityList),\n } as never);\n }\n\n return { ok: true };\n}\n","import type { Component, World } from '@forgeax/engine-ecs';\nimport type { Plugin } from '@forgeax/engine-plugin';\nimport {\n SCENE_ASSET_SKIN_RESOLVER_RESOURCE_KEY,\n type SceneAssetSkinResolver,\n worldSetSceneInstantiateHook,\n} from '@forgeax/engine-scene';\n\nimport { Camera } from './components/camera';\nimport { DirectionalLight } from './components/directional-light';\nimport { SkyboxBackground, Skylight } from './components/environment';\nimport { GlyphText } from './components/glyph-text';\nimport { Instances } from './components/instances';\nimport { Layer } from './components/layer';\nimport { MeshFilter } from './components/mesh-filter';\nimport { MeshRenderer } from './components/mesh-renderer';\nimport { PointLight } from './components/point-light';\nimport { PointLightShadow } from './components/point-light-shadow';\nimport { PostProcessParams } from './components/post-process-params';\nimport { SceneInstance } from './components/scene-instance';\nimport { SortKey } from './components/sort-key';\nimport { SpotLight } from './components/spot-light';\nimport { SpriteAnimation } from './components/sprite-animation';\nimport { SpriteInstances } from './components/sprite-instances';\nimport { SpriteRegionOverride } from './components/sprite-region-override';\nimport { TileLayer } from './components/tile-layer';\nimport { Tilemap } from './components/tilemap';\nimport { Visibility } from './components/visibility';\nimport type { RenderFeature } from './features';\nimport type { Renderer } from './renderer';\nimport { postSpawnResolveJoints } from './scene-instances/post-spawn-resolve-joints';\n\nconst RENDER_COMPONENTS: readonly Component[] = [\n Camera,\n DirectionalLight,\n GlyphText,\n Instances,\n Layer,\n MeshFilter,\n MeshRenderer,\n PointLight,\n PointLightShadow,\n PostProcessParams,\n SceneInstance,\n SkyboxBackground,\n Skylight,\n SortKey,\n SpotLight,\n SpriteAnimation,\n SpriteInstances,\n SpriteRegionOverride,\n TileLayer,\n Tilemap,\n Visibility,\n];\n\nfunction registerRenderComponents(world: World): () => void {\n const leases = RENDER_COMPONENTS.map((component) =>\n world.components.register(component).unwrap(),\n );\n return () => {\n for (let index = leases.length - 1; index >= 0; index -= 1) leases[index]?.dispose();\n };\n}\n\nfunction installSceneInstantiateHook(world: World): () => void {\n worldSetSceneInstantiateHook(world, (currentWorld, root) => {\n if (!currentWorld.hasResource(SCENE_ASSET_SKIN_RESOLVER_RESOURCE_KEY)) {\n return { ok: true };\n }\n const resolver = currentWorld.getResource<SceneAssetSkinResolver>(\n SCENE_ASSET_SKIN_RESOLVER_RESOURCE_KEY,\n );\n return postSpawnResolveJoints(currentWorld, resolver, root);\n });\n return () => worldSetSceneInstantiateHook(world, null);\n}\n\ndeclare module '@forgeax/engine-plugin' {\n interface EngineContextServices {\n renderer?: Renderer;\n }\n}\n\n/** Install the built-in render and authoring component vocabulary in one World. */\nexport function renderComponentsPlugin(): Plugin {\n return {\n name: 'render-components',\n inject: ['world'],\n apply(ctx) {\n ctx.effect(() => registerRenderComponents(ctx.world), 'render/components');\n ctx.effect(() => installSceneInstantiateHook(ctx.world), 'render/scene-instantiate-hook');\n },\n };\n}\n\n/** Provide the renderer without transferring its host-owned lifetime. */\nexport function rendererPlugin(renderer: Renderer): Plugin {\n return {\n name: 'renderer',\n provide: 'renderer',\n apply(ctx) {\n ctx.provide('renderer', renderer);\n },\n };\n}\n\n/** Provide an App/Worker-owned Renderer and release it after dependent Fibers. */\nexport function ownedRendererPlugin(renderer: Renderer): Plugin {\n return {\n name: 'renderer',\n provide: 'renderer',\n apply(ctx) {\n ctx.provide('renderer', renderer);\n ctx.effect(() => () => renderer.dispose(), 'render/renderer');\n },\n };\n}\n\n/** Install a producer at Renderer safe points and remove it with the owning Fiber. */\nexport function renderFeaturePlugin(feature: RenderFeature<unknown>): Plugin {\n return {\n name: `render-feature:${feature.identity}`,\n inject: ['renderer'],\n async apply(ctx) {\n const renderer = ctx.renderer;\n if (renderer === undefined)\n throw new Error('render feature plugin requires the renderer service');\n const installed = await renderer.installRenderFeature(feature);\n if (!installed.ok) throw installed.error;\n return async () => {\n const removed = await renderer.uninstallRenderFeature(feature);\n if (!removed.ok) throw removed.error;\n };\n },\n };\n}\n"]}