@call-me-sensei/toonlab 0.3.0 → 0.4.19

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 (736) hide show
  1. package/README.md +549 -184
  2. package/agents/README.md +59 -0
  3. package/agents/references/anime-art-direction.md +24 -0
  4. package/agents/references/asset-sourcing-policy.md +23 -0
  5. package/agents/references/custom-gap-report.md +16 -0
  6. package/agents/references/geology-playbook.md +118 -0
  7. package/agents/references/mcp-asset-discovery.md +104 -0
  8. package/agents/references/runtime-entry-points.md +174 -0
  9. package/agents/references/style-bundles.md +71 -0
  10. package/agents/skills/claude/asset-sourcing/SKILL.md +275 -0
  11. package/agents/skills/claude/environment/SKILL.md +59 -0
  12. package/agents/skills/claude/game-dev/SKILL.md +100 -0
  13. package/agents/skills/claude/karst-cliff-construction/SKILL.md +258 -0
  14. package/agents/skills/claude/outdoor-world/SKILL.md +492 -0
  15. package/agents/skills/claude/outdoor-world/references/coastal-landform-formation.md +100 -0
  16. package/agents/skills/claude/post-processing/SKILL.md +44 -0
  17. package/agents/skills/claude/rock-ground-shaders/SKILL.md +118 -0
  18. package/agents/skills/claude/rockgen/SKILL.md +30 -0
  19. package/agents/skills/claude/scene-style-application/SKILL.md +74 -0
  20. package/agents/skills/claude/style-presets/SKILL.md +101 -0
  21. package/agents/skills/claude/toon-shading/SKILL.md +44 -0
  22. package/agents/skills/claude/vegetation-sky/SKILL.md +167 -0
  23. package/agents/skills/claude/visual-verification/SKILL.md +136 -0
  24. package/agents/skills/claude/water/SKILL.md +105 -0
  25. package/agents/skills/codex/asset-sourcing/SKILL.md +275 -0
  26. package/agents/skills/codex/environment/SKILL.md +59 -0
  27. package/agents/skills/codex/game-dev/SKILL.md +100 -0
  28. package/agents/skills/codex/karst-cliff-construction/SKILL.md +258 -0
  29. package/agents/skills/codex/outdoor-world/SKILL.md +492 -0
  30. package/agents/skills/codex/outdoor-world/references/coastal-landform-formation.md +100 -0
  31. package/agents/skills/codex/post-processing/SKILL.md +44 -0
  32. package/agents/skills/codex/rock-ground-shaders/SKILL.md +118 -0
  33. package/agents/skills/codex/rockgen/SKILL.md +30 -0
  34. package/agents/skills/codex/scene-style-application/SKILL.md +74 -0
  35. package/agents/skills/codex/style-presets/SKILL.md +101 -0
  36. package/agents/skills/codex/toon-shading/SKILL.md +44 -0
  37. package/agents/skills/codex/vegetation-sky/SKILL.md +167 -0
  38. package/agents/skills/codex/visual-verification/SKILL.md +136 -0
  39. package/agents/skills/codex/water/SKILL.md +105 -0
  40. package/cli/toonlab.mjs +52 -0
  41. package/compose.yaml +20 -0
  42. package/database/apply-sql.mjs +141 -0
  43. package/database/client.mjs +39 -0
  44. package/database/creation-tags.mjs +23 -0
  45. package/database/env.mjs +16 -0
  46. package/database/generation-service.mjs +314 -0
  47. package/database/migrations/0001_local_workspace.sql +120 -0
  48. package/database/migrations/0002_file_ownership.sql +11 -0
  49. package/database/migrations/0003_remove_autosaves_from_library.sql +7 -0
  50. package/database/migrations/0004_catalog_asset_packs.sql +39 -0
  51. package/database/migrations/0005_creation_tag_discovery.sql +1 -0
  52. package/database/migrations/0006_normalize_creation_tags.sql +28 -0
  53. package/database/providers.mjs +465 -0
  54. package/database/repository.mjs +625 -0
  55. package/database/seeds/catalog/0001_empty_official_catalog.sql +4 -0
  56. package/database/seeds/catalog/0002_2026-08.sql +19454 -0
  57. package/mcp/lab-management.mjs +629 -0
  58. package/mcp/public-catalog.mjs +168 -0
  59. package/mcp/server.mjs +1026 -63
  60. package/mcp/vite-plugin.mjs +443 -26
  61. package/mcp/workspace.mjs +26 -1
  62. package/package.json +312 -45
  63. package/scripts/generate-catalog-seed.mjs +297 -0
  64. package/scripts/setup-local.mjs +128 -0
  65. package/src/agents/index.js +7 -0
  66. package/src/agents/sceneStyleOperations.js +169 -0
  67. package/src/asset-policy/catalogLicenses.js +44 -0
  68. package/src/asset-policy/index.js +315 -0
  69. package/src/assetlib/assetRef.js +1 -1
  70. package/src/assetlib/galleryMaterialFamily.js +165 -0
  71. package/src/assetlib/index.js +6 -2
  72. package/src/assetlib/plateau.js +188 -0
  73. package/src/assetlib/plateauLandmarks.js +144 -0
  74. package/src/assetlib/plateauViewer.js +348 -0
  75. package/src/assetlib/sources.js +16 -2
  76. package/src/catalog/manifest.js +11 -1
  77. package/src/catalog/officialCatalog.js +4 -0
  78. package/src/catalog/officialCatalogAssetRuntime.js +313 -0
  79. package/src/catalog/officialCatalogLod.js +150 -0
  80. package/src/catalog/officialCatalogPlacement.js +228 -0
  81. package/src/catalog/officialCatalogProvider.js +334 -0
  82. package/src/character/animationRetarget.js +1082 -0
  83. package/src/character/characterRuntime.js +376 -0
  84. package/src/character/groundStabilizer.js +137 -0
  85. package/src/character/index.js +8 -0
  86. package/src/character/locomotionActions.js +74 -0
  87. package/src/character/locomotionStateMachine.js +241 -0
  88. package/src/character/mannequinAsset.js +15 -0
  89. package/src/character/mannequinAssetUrl.browser.js +4 -0
  90. package/src/character/mannequinAssetUrl.node.js +3 -0
  91. package/src/character/modelLoader.js +92 -12
  92. package/src/character/walkableCharacterRuntime.js +284 -0
  93. package/src/character/waterInteractionController.js +217 -0
  94. package/src/cloud/ambientSkyBaker.js +248 -0
  95. package/src/cloud/cloudLighting.js +1114 -0
  96. package/src/cloud/cloudParams.js +819 -0
  97. package/src/cloud/cloudReprojection.js +563 -0
  98. package/src/cloud/cloudStyle.js +780 -0
  99. package/src/cloud/cloudStyleSnapshots.js +387 -0
  100. package/src/cloud/cloudVolume.js +1903 -0
  101. package/src/cloud/heroCloudRecipe.js +404 -0
  102. package/src/cloud/index.js +42 -0
  103. package/src/cloud/noise/baseShapeVolume.js +331 -0
  104. package/src/cloud/noise/cirrusMap.js +131 -0
  105. package/src/cloud/noise/curlNoise.js +289 -0
  106. package/src/cloud/noise/erosionVolume.js +188 -0
  107. package/src/cloud/noise/noiseVolume.js +202 -0
  108. package/src/cloud/noise/periodicNoise3.js +295 -0
  109. package/src/cloud/noise/weatherMap.js +470 -0
  110. package/src/cloud/paramSchema.js +458 -0
  111. package/src/collisionMetadata.js +320 -0
  112. package/src/core/systemStylePolicy.js +32 -0
  113. package/src/environment/dayCurves.js +146 -0
  114. package/src/environment/environmentGroundFieldPass.js +354 -0
  115. package/src/environment/environmentMaterialAdapter.js +114 -6
  116. package/src/environment/environmentPresets.js +396 -90
  117. package/src/environment/environmentRigs.js +17 -2
  118. package/src/environment/environmentSettings.js +37 -1
  119. package/src/environment/environmentShaderMaterials.js +37 -6
  120. package/src/environment/environmentState.js +133 -0
  121. package/src/environment/environmentSunShadowPass.js +357 -6
  122. package/src/environment/environmentTextureResolver.js +7 -0
  123. package/src/environment/index.js +51 -0
  124. package/src/environment/manufacturedMaterialContract.js +837 -0
  125. package/src/environment/manufacturedReflectionProvider.js +114 -0
  126. package/src/environment/scanAssetStylize.js +4 -4
  127. package/src/environment/surfaceMaterialModes.js +71 -0
  128. package/src/environment/toonLabEnvironmentMaterials.js +353 -0
  129. package/src/environment/toonLabMaterialPassCoupling.js +347 -0
  130. package/src/environment/toonLabNormalIntegration.js +171 -0
  131. package/src/environment/toonLabRockMaterialResolver.js +592 -0
  132. package/src/environment/toonLabSourceDefaultLit.js +444 -0
  133. package/src/environment/toonLabSourceLibrary.js +762 -0
  134. package/src/environment/toonLabSourceMaterials.js +3718 -0
  135. package/src/environment/toonLabSourceSubsurfaceLighting.js +415 -0
  136. package/src/environment/toonLabSourceTemporal.js +717 -0
  137. package/src/environment/toonLabSurfaceLighting.js +364 -0
  138. package/src/environment/toonLabTextureReadiness.js +105 -0
  139. package/src/environment/toonLabTreeMaterials.js +450 -0
  140. package/src/environment/transparentMaterialProfile.js +87 -0
  141. package/src/environment/urbanPropMaterial.js +2874 -0
  142. package/src/ground-shader/groundPrintLayer.js +375 -0
  143. package/src/ground-shader/groundShaderMaterial.js +851 -0
  144. package/src/ground-shader/groundShaderSettings.js +468 -0
  145. package/src/ground-shader/index.js +3 -0
  146. package/src/index.js +52 -22
  147. package/src/lighting/callMeSenseiLightingContract.js +163 -0
  148. package/src/lighting/index.js +14 -7
  149. package/src/lighting/lightingCapabilities.js +2 -2
  150. package/src/lighting/lightingPresets.js +6 -3
  151. package/src/lighting/lightingStyle.js +41 -6
  152. package/src/lighting/lightingSystem.js +140 -1
  153. package/src/lighting/{unrealExport.js → toonLabExport.js} +40 -41
  154. package/src/post/postProcessing.js +71 -12
  155. package/src/react/index.js +66 -0
  156. package/src/renderer/index.js +9 -0
  157. package/src/renderer/rendererConfiguration.js +250 -0
  158. package/src/rock-shader/index.js +3 -0
  159. package/src/rock-shader/rockMaterial.js +1843 -0
  160. package/src/rock-shader/rockShaderRuntime.js +494 -0
  161. package/src/rock-shader/rockShaderSettings.js +869 -0
  162. package/src/rockgen/export/glbExport.js +104 -14
  163. package/src/rockgen/index.js +4 -3
  164. package/src/rockgen/lod/index.js +6 -0
  165. package/src/rockgen/lod/rockLodMetrics.js +168 -0
  166. package/src/rockgen/lod/rockLodPlanner.js +372 -0
  167. package/src/rockgen/lod/rockLodPolicy.js +235 -0
  168. package/src/rockgen/lod/rockLodRuntime.js +124 -0
  169. package/src/rockgen/lod/rockLodSimplifier.js +173 -0
  170. package/src/rockgen/lod/rockLodValidation.js +113 -0
  171. package/src/rockgen/mesh/meshAttributes.js +17 -0
  172. package/src/rockgen/mesh/meshDocument.js +6 -0
  173. package/src/rockgen/rockDocument.js +352 -9
  174. package/src/rockgen/rockgenPresets.js +114 -13
  175. package/src/rockgen/rockgenSettings.js +62 -11
  176. package/src/runtime/index.js +14 -0
  177. package/src/runtime/sceneCollisionRuntime.js +317 -0
  178. package/src/runtime/sceneSurfaceRuntime.js +451 -0
  179. package/src/runtime/sceneUpdateScheduler.js +203 -0
  180. package/src/shaders-tsl/anime.js +9 -2
  181. package/src/shaders-tsl/chunks/environment-ground-field.js +174 -0
  182. package/src/shaders-tsl/chunks/environment-state.js +79 -0
  183. package/src/shaders-tsl/chunks/environment-sun-shadow.js +99 -32
  184. package/src/shaders-tsl/chunks/normalized-hue.js +41 -0
  185. package/src/shaders-tsl/chunks/pass-depth-color.js +4 -2
  186. package/src/shaders-tsl/chunks/scene-depth-color-pass.js +273 -0
  187. package/src/shaders-tsl/chunks/vegetation-style.js +116 -8
  188. package/src/shaders-tsl/chunks/water-color.js +19 -5
  189. package/src/shaders-tsl/chunks/water-shore-state.js +8 -1
  190. package/src/shaders-tsl/chunks/world-noise.js +30 -0
  191. package/src/shaders-tsl/environment.js +123 -17
  192. package/src/shaders-tsl/flower.js +51 -8
  193. package/src/shaders-tsl/grass.js +194 -29
  194. package/src/shaders-tsl/post-composite.js +83 -2
  195. package/src/shaders-tsl/tree-leaf.js +107 -16
  196. package/src/shaders-tsl/water-breaker.js +18 -4
  197. package/src/shaders-tsl/water.js +43 -3
  198. package/src/shaders-tsl/woody-surface.js +59 -7
  199. package/src/sky/atmosphereDome.js +193 -0
  200. package/src/sky/atmosphereParams.js +396 -0
  201. package/src/sky/atmosphereScattering.js +593 -0
  202. package/src/sky/atmosphereSky.js +371 -0
  203. package/src/sky/cloudShadow.js +355 -0
  204. package/src/sky/godRays.js +257 -0
  205. package/src/sky/index.js +55 -1
  206. package/src/sky/nightSky.js +1190 -0
  207. package/src/sky/renderLayers.js +120 -0
  208. package/src/sky/skyColor.js +582 -0
  209. package/src/sky/skyDayCycle.js +244 -0
  210. package/src/sky/skyParams.js +661 -0
  211. package/src/sky/skyPresets.js +772 -0
  212. package/src/sky/skyQualityTiers.js +383 -0
  213. package/src/sky/skyShaderSettings.js +699 -0
  214. package/src/sky/skyStyleSnapshots.js +211 -0
  215. package/src/sky/skySystem.js +1438 -0
  216. package/src/sky/skyTimeKeyframes.js +361 -0
  217. package/src/sky/stylizedSky.js +405 -116
  218. package/src/sky/sunDriver.js +499 -0
  219. package/src/sky/timeOfDay.js +335 -0
  220. package/src/styles/animeGameProfile.js +44 -0
  221. package/src/styles/index.js +134 -0
  222. package/src/styles/manufacturedStyleLabeling.js +204 -0
  223. package/src/styles/sceneLayerDocuments.js +185 -0
  224. package/src/styles/sceneLookComposition.js +156 -0
  225. package/src/styles/sceneQualityApplication.js +152 -0
  226. package/src/styles/sceneQualityProfiles.js +268 -0
  227. package/src/styles/sceneStyleAudit.js +512 -0
  228. package/src/styles/sceneStyleRuntime.js +876 -0
  229. package/src/styles/styleAdapters.js +166 -0
  230. package/src/styles/styleApplication.js +369 -0
  231. package/src/styles/styleBundle.js +444 -91
  232. package/src/styles/styleBundleProvider.js +83 -0
  233. package/src/styles/styleDomains.js +21 -0
  234. package/src/styles/styleInspector.js +262 -0
  235. package/src/styles/styleMaterialContract.js +375 -0
  236. package/src/styles/styleMetadata.js +73 -0
  237. package/src/styles/styleTargetDiscovery.js +162 -0
  238. package/src/styles/styleTargetLabels.js +206 -0
  239. package/src/styles/styleTargetMaterialCoverage.js +137 -0
  240. package/src/styles/styleTransaction.js +272 -0
  241. package/src/texgen/textureGenerators.js +21 -5
  242. package/src/toon/toonSettings.js +4 -0
  243. package/src/vegetation/branchTree.js +302 -0
  244. package/src/vegetation/callMeSenseiGrass.js +183 -0
  245. package/src/vegetation/compiledTree.js +506 -0
  246. package/src/vegetation/contactShadowField.js +107 -0
  247. package/src/vegetation/flowerSpecies.js +10 -2
  248. package/src/vegetation/grass.js +13 -0
  249. package/src/vegetation/grassClump.js +1179 -0
  250. package/src/vegetation/importedVegetationMaterial.js +183 -0
  251. package/src/vegetation/index.js +15 -1
  252. package/src/vegetation/legacyTreePresets.js +120 -0
  253. package/src/vegetation/scatter.js +322 -3
  254. package/src/vegetation/stylizedBush.js +14 -0
  255. package/src/vegetation/stylizedFlower.js +31 -0
  256. package/src/vegetation/stylizedFlowers.js +59 -7
  257. package/src/vegetation/stylizedForest.js +455 -147
  258. package/src/vegetation/stylizedGrass.js +188 -24
  259. package/src/vegetation/stylizedTree.js +378 -46
  260. package/src/vegetation/stylizedTreeFoliage.js +889 -38
  261. package/src/vegetation/stylizedUnderstory.js +230 -0
  262. package/src/vegetation/treeExport.js +262 -47
  263. package/src/vegetation/treeSurfaceTextures.js +337 -0
  264. package/src/vegetation/vegetationShaders.js +617 -28
  265. package/src/version.js +3 -0
  266. package/src/water/water.js +2 -0
  267. package/src/water/waterBreakerSystem.js +2 -0
  268. package/src/water/waterCurrentField.js +1 -0
  269. package/src/water/waterMaterial.js +3 -0
  270. package/src/water/waterRain.js +2 -0
  271. package/src/water/waterScenePasses.js +170 -7
  272. package/src/water/waterSettings.js +235 -43
  273. package/src/water/waterShoreMaterial.js +16 -2
  274. package/src/water/waterShoreStateField.js +1 -1
  275. package/src/water/waterSplashSystem.js +2 -0
  276. package/src/water/waterStageSettings.js +60 -0
  277. package/src/water/waterSurface.js +144 -4
  278. package/src/water/waterUnderwaterAtmosphere.js +288 -0
  279. package/src/water/waterVegetation.js +20 -4
  280. package/src/worldCollision.js +64 -9
  281. package/types/agents/index.d.ts +1 -0
  282. package/types/agents/sceneStyleOperations.d.ts +484 -0
  283. package/types/asset-policy/catalogLicenses.d.ts +5 -0
  284. package/types/asset-policy/index.d.ts +18 -0
  285. package/types/assetlib/ambientcg.d.ts +81 -0
  286. package/types/assetlib/assetRef.d.ts +26 -0
  287. package/types/assetlib/galleryMaterialFamily.d.ts +13 -0
  288. package/types/assetlib/importedEntry.d.ts +18 -0
  289. package/types/assetlib/index.d.ts +16 -0
  290. package/types/assetlib/kaykit.d.ts +112 -0
  291. package/types/assetlib/kaykitStaticIndex.d.ts +38 -0
  292. package/types/assetlib/loadImported.d.ts +54 -0
  293. package/types/assetlib/opensource3d.d.ts +55 -0
  294. package/types/assetlib/plateau.d.ts +67 -0
  295. package/types/assetlib/plateauLandmarks.d.ts +238 -0
  296. package/types/assetlib/plateauViewer.d.ts +3 -0
  297. package/types/assetlib/polyhaven.d.ts +90 -0
  298. package/types/assetlib/polypizza.d.ts +10 -0
  299. package/types/assetlib/smithsonian.d.ts +9 -0
  300. package/types/assetlib/sources.d.ts +22 -0
  301. package/types/assetlib/zip.d.ts +8 -0
  302. package/types/catalog/manifest.d.ts +26 -0
  303. package/types/catalog/officialCatalog.d.ts +4 -0
  304. package/types/catalog/officialCatalogAssetRuntime.d.ts +2 -0
  305. package/types/catalog/officialCatalogLod.d.ts +5 -0
  306. package/types/catalog/officialCatalogPlacement.d.ts +49 -0
  307. package/types/catalog/officialCatalogProvider.d.ts +7 -0
  308. package/types/character/animationRetarget.d.ts +20 -0
  309. package/types/character/characterRig.d.ts +28 -0
  310. package/types/character/characterRuntime.d.ts +4 -0
  311. package/types/character/freestyleSwimClip.d.ts +5 -0
  312. package/types/character/groundStabilizer.d.ts +55 -0
  313. package/types/character/index.d.ts +10 -0
  314. package/types/character/locomotionActions.d.ts +4 -0
  315. package/types/character/locomotionStateMachine.d.ts +62 -0
  316. package/types/character/mannequinAsset.d.ts +12 -0
  317. package/types/character/mannequinAssetUrl.node.d.ts +1 -0
  318. package/types/character/modelLoader.d.ts +7 -0
  319. package/types/character/walkableCharacterRuntime.d.ts +343 -0
  320. package/types/character/waterInteractionController.d.ts +114 -0
  321. package/types/cloud/ambientSkyBaker.d.ts +18 -0
  322. package/types/cloud/cloudLighting.d.ts +38 -0
  323. package/types/cloud/cloudParams.d.ts +18 -0
  324. package/types/cloud/cloudReprojection.d.ts +15 -0
  325. package/types/cloud/cloudStyle.d.ts +1380 -0
  326. package/types/cloud/cloudStyleSnapshots.d.ts +10 -0
  327. package/types/cloud/cloudVolume.d.ts +43 -0
  328. package/types/cloud/heroCloudRecipe.d.ts +167 -0
  329. package/types/cloud/index.d.ts +12 -0
  330. package/types/cloud/noise/baseShapeVolume.d.ts +86 -0
  331. package/types/cloud/noise/cirrusMap.d.ts +24 -0
  332. package/types/cloud/noise/curlNoise.d.ts +106 -0
  333. package/types/cloud/noise/erosionVolume.d.ts +58 -0
  334. package/types/cloud/noise/noiseVolume.d.ts +63 -0
  335. package/types/cloud/noise/periodicNoise3.d.ts +75 -0
  336. package/types/cloud/noise/weatherMap.d.ts +227 -0
  337. package/types/cloud/paramSchema.d.ts +142 -0
  338. package/types/collisionMetadata.d.ts +11 -0
  339. package/types/core/generation.d.ts +95 -0
  340. package/types/core/materialRoles.d.ts +102 -0
  341. package/types/core/presetDocuments.d.ts +25 -0
  342. package/types/core/systemStylePolicy.d.ts +4 -0
  343. package/types/environment/dayCurves.d.ts +47 -0
  344. package/types/environment/environmentAmbientProbe.d.ts +2 -0
  345. package/types/environment/environmentGroundFieldPass.d.ts +2 -0
  346. package/types/environment/environmentMaterialAdapter.d.ts +42 -0
  347. package/types/environment/environmentMaterialClassifier.d.ts +26 -0
  348. package/types/environment/environmentPlanarReflection.d.ts +3 -0
  349. package/types/environment/environmentPresets.d.ts +171 -0
  350. package/types/environment/environmentRigs.d.ts +13 -0
  351. package/types/environment/environmentSettings.d.ts +161 -0
  352. package/types/environment/environmentShaderMaterials.d.ts +14 -0
  353. package/types/environment/environmentState.d.ts +6 -0
  354. package/types/environment/environmentSunShadowPass.d.ts +2 -0
  355. package/types/environment/environmentTextureResolver.d.ts +30 -0
  356. package/types/environment/environmentTimeOfDay.d.ts +25 -0
  357. package/types/environment/environmentVertexAo.d.ts +18 -0
  358. package/types/environment/index.d.ts +27 -0
  359. package/types/environment/manufacturedMaterialContract.d.ts +129 -0
  360. package/types/environment/manufacturedReflectionProvider.d.ts +3 -0
  361. package/types/environment/scanAssetStylize.d.ts +43 -0
  362. package/types/environment/surfaceMaterialModes.d.ts +14 -0
  363. package/types/environment/toonLabEnvironmentMaterials.d.ts +139 -0
  364. package/types/environment/toonLabMaterialPassCoupling.d.ts +7 -0
  365. package/types/environment/toonLabNormalIntegration.d.ts +29 -0
  366. package/types/environment/toonLabRockMaterialResolver.d.ts +270 -0
  367. package/types/environment/toonLabSourceDefaultLit.d.ts +136 -0
  368. package/types/environment/toonLabSourceLibrary.d.ts +19 -0
  369. package/types/environment/toonLabSourceMaterials.d.ts +14 -0
  370. package/types/environment/toonLabSourceSubsurfaceLighting.d.ts +85 -0
  371. package/types/environment/toonLabSourceTemporal.d.ts +20 -0
  372. package/types/environment/toonLabSurfaceLighting.d.ts +136 -0
  373. package/types/environment/toonLabTextureReadiness.d.ts +8 -0
  374. package/types/environment/toonLabTreeMaterials.d.ts +7 -0
  375. package/types/environment/transparentMaterialProfile.d.ts +76 -0
  376. package/types/environment/urbanPropMaterial.d.ts +25 -0
  377. package/types/ground-shader/groundPrintLayer.d.ts +4 -0
  378. package/types/ground-shader/groundShaderMaterial.d.ts +11 -0
  379. package/types/ground-shader/groundShaderSettings.d.ts +90 -0
  380. package/types/ground-shader/index.d.ts +3 -0
  381. package/types/index.d.ts +1502 -0
  382. package/types/lighting/callMeSenseiLightingContract.d.ts +14 -0
  383. package/types/lighting/colorIntensity.d.ts +44 -0
  384. package/types/lighting/index.d.ts +12 -0
  385. package/types/lighting/lightDescriptors.d.ts +803 -0
  386. package/types/lighting/lightingCapabilities.d.ts +85 -0
  387. package/types/lighting/lightingDocuments.d.ts +140 -0
  388. package/types/lighting/lightingFixtures.d.ts +171 -0
  389. package/types/lighting/lightingGenerator.d.ts +403 -0
  390. package/types/lighting/lightingPresets.d.ts +264 -0
  391. package/types/lighting/lightingRuntime.d.ts +401 -0
  392. package/types/lighting/lightingStyle.d.ts +156 -0
  393. package/types/lighting/lightingSystem.d.ts +433 -0
  394. package/types/lighting/toonLabExport.d.ts +46 -0
  395. package/types/lighting/utils.d.ts +18 -0
  396. package/types/loaders/index.d.ts +1 -0
  397. package/types/post/index.d.ts +2 -0
  398. package/types/post/postGenerator.d.ts +282 -0
  399. package/types/post/postProcessing.d.ts +16 -0
  400. package/types/react/index.d.ts +1765 -0
  401. package/types/renderer/index.d.ts +1 -0
  402. package/types/renderer/rendererConfiguration.d.ts +8 -0
  403. package/types/rock-shader/index.d.ts +3 -0
  404. package/types/rock-shader/rockMaterial.d.ts +18 -0
  405. package/types/rock-shader/rockShaderRuntime.d.ts +8 -0
  406. package/types/rock-shader/rockShaderSettings.d.ts +170 -0
  407. package/types/rockgen/export/glbExport.d.ts +58 -0
  408. package/types/rockgen/heightfield/heightfieldErosion.d.ts +10 -0
  409. package/types/rockgen/heightfield/heightfieldPatch.d.ts +15 -0
  410. package/types/rockgen/heightfield/stylizedErosionSim.d.ts +41 -0
  411. package/types/rockgen/index.d.ts +11 -0
  412. package/types/rockgen/lod/index.d.ts +6 -0
  413. package/types/rockgen/lod/rockLodMetrics.d.ts +62 -0
  414. package/types/rockgen/lod/rockLodPlanner.d.ts +86 -0
  415. package/types/rockgen/lod/rockLodPolicy.d.ts +76 -0
  416. package/types/rockgen/lod/rockLodRuntime.d.ts +95 -0
  417. package/types/rockgen/lod/rockLodSimplifier.d.ts +15 -0
  418. package/types/rockgen/lod/rockLodValidation.d.ts +16 -0
  419. package/types/rockgen/mesh/meshAttributes.d.ts +32 -0
  420. package/types/rockgen/mesh/meshDocument.d.ts +40 -0
  421. package/types/rockgen/mesh/surfaceNets.d.ts +42 -0
  422. package/types/rockgen/noise/cellularNoise3.d.ts +24 -0
  423. package/types/rockgen/noise/prng.d.ts +16 -0
  424. package/types/rockgen/noise/simplexNoise3.d.ts +2 -0
  425. package/types/rockgen/noise/valueNoise3.d.ts +12 -0
  426. package/types/rockgen/rockDocument.d.ts +215 -0
  427. package/types/rockgen/rockHelpers.d.ts +2 -0
  428. package/types/rockgen/rockgenPresets.d.ts +10 -0
  429. package/types/rockgen/rockgenSettings.d.ts +531 -0
  430. package/types/rockgen/sdf/fieldCompiler.d.ts +20 -0
  431. package/types/rockgen/sdf/sculptEdits.d.ts +30 -0
  432. package/types/rockgen/sdf/sdfModifiers.d.ts +19 -0
  433. package/types/rockgen/sdf/sdfOps.d.ts +8 -0
  434. package/types/rockgen/sdf/sdfPrimitives.d.ts +22 -0
  435. package/types/runtime/index.d.ts +3 -0
  436. package/types/runtime/sceneCollisionRuntime.d.ts +94 -0
  437. package/types/runtime/sceneSurfaceRuntime.d.ts +90 -0
  438. package/types/runtime/sceneUpdateScheduler.d.ts +28 -0
  439. package/types/shaders-tsl/anime.d.ts +9 -0
  440. package/types/shaders-tsl/chunks/character-color.d.ts +6 -0
  441. package/types/shaders-tsl/chunks/character-highlights.d.ts +12 -0
  442. package/types/shaders-tsl/chunks/character-lighting.d.ts +20 -0
  443. package/types/shaders-tsl/chunks/character-material-maps.d.ts +18 -0
  444. package/types/shaders-tsl/chunks/character-roles.d.ts +21 -0
  445. package/types/shaders-tsl/chunks/character-scene-lights.d.ts +48 -0
  446. package/types/shaders-tsl/chunks/character-shadow-color.d.ts +5 -0
  447. package/types/shaders-tsl/chunks/character-skinning.d.ts +23 -0
  448. package/types/shaders-tsl/chunks/environment-color.d.ts +9 -0
  449. package/types/shaders-tsl/chunks/environment-debug.d.ts +24 -0
  450. package/types/shaders-tsl/chunks/environment-ground-field.d.ts +40 -0
  451. package/types/shaders-tsl/chunks/environment-lighting.d.ts +22 -0
  452. package/types/shaders-tsl/chunks/environment-state.d.ts +42 -0
  453. package/types/shaders-tsl/chunks/environment-sun-shadow.d.ts +19 -0
  454. package/types/shaders-tsl/chunks/foliage-fog.d.ts +21 -0
  455. package/types/shaders-tsl/chunks/normalized-hue.d.ts +1 -0
  456. package/types/shaders-tsl/chunks/pass-depth-color.d.ts +20 -0
  457. package/types/shaders-tsl/chunks/projected-water-caustics.d.ts +24 -0
  458. package/types/shaders-tsl/chunks/scene-depth-color-pass.d.ts +39 -0
  459. package/types/shaders-tsl/chunks/stylized-cloud-shadow.d.ts +9 -0
  460. package/types/shaders-tsl/chunks/vegetation-style.d.ts +60 -0
  461. package/types/shaders-tsl/chunks/water-color.d.ts +15 -0
  462. package/types/shaders-tsl/chunks/water-common.d.ts +9 -0
  463. package/types/shaders-tsl/chunks/water-foam.d.ts +8 -0
  464. package/types/shaders-tsl/chunks/water-lighting.d.ts +9 -0
  465. package/types/shaders-tsl/chunks/water-ripple.d.ts +8 -0
  466. package/types/shaders-tsl/chunks/water-shore-state.d.ts +7 -0
  467. package/types/shaders-tsl/chunks/water-waves.d.ts +18 -0
  468. package/types/shaders-tsl/chunks/world-noise.d.ts +4 -0
  469. package/types/shaders-tsl/environment-ao-overlay.d.ts +5 -0
  470. package/types/shaders-tsl/environment.d.ts +34 -0
  471. package/types/shaders-tsl/flower.d.ts +6 -0
  472. package/types/shaders-tsl/grass.d.ts +4 -0
  473. package/types/shaders-tsl/post-composite.d.ts +25 -0
  474. package/types/shaders-tsl/sky.d.ts +4 -0
  475. package/types/shaders-tsl/tree-leaf.d.ts +2 -0
  476. package/types/shaders-tsl/water-breaker.d.ts +15 -0
  477. package/types/shaders-tsl/water-kelp.d.ts +5 -0
  478. package/types/shaders-tsl/water-rain.d.ts +10 -0
  479. package/types/shaders-tsl/water-shore-state-simulation.d.ts +12 -0
  480. package/types/shaders-tsl/water-simulation.d.ts +5 -0
  481. package/types/shaders-tsl/water-splash.d.ts +12 -0
  482. package/types/shaders-tsl/water.d.ts +22 -0
  483. package/types/shaders-tsl/woody-surface.d.ts +3 -0
  484. package/types/sky/atmosphereDome.d.ts +2 -0
  485. package/types/sky/atmosphereParams.d.ts +185 -0
  486. package/types/sky/atmosphereScattering.d.ts +11 -0
  487. package/types/sky/atmosphereSky.d.ts +2 -0
  488. package/types/sky/cloudShadow.d.ts +68 -0
  489. package/types/sky/godRays.d.ts +5 -0
  490. package/types/sky/index.d.ts +18 -0
  491. package/types/sky/nightSky.d.ts +22 -0
  492. package/types/sky/renderLayers.d.ts +59 -0
  493. package/types/sky/sceneOverrideLayers.d.ts +10 -0
  494. package/types/sky/skyColor.d.ts +704 -0
  495. package/types/sky/skyDayCycle.d.ts +86 -0
  496. package/types/sky/skyParams.d.ts +3407 -0
  497. package/types/sky/skyPresets.d.ts +160 -0
  498. package/types/sky/skyQuality.d.ts +21 -0
  499. package/types/sky/skyQualityTiers.d.ts +223 -0
  500. package/types/sky/skyShaderSettings.d.ts +152 -0
  501. package/types/sky/skyStyleSnapshots.d.ts +11 -0
  502. package/types/sky/skySystem.d.ts +3 -0
  503. package/types/sky/skyTimeKeyframes.d.ts +230 -0
  504. package/types/sky/stylizedSky.d.ts +341 -0
  505. package/types/sky/sunDriver.d.ts +15 -0
  506. package/types/sky/timeOfDay.d.ts +145 -0
  507. package/types/styles/animeGameProfile.d.ts +27 -0
  508. package/types/styles/index.d.ts +17 -0
  509. package/types/styles/manufacturedStyleLabeling.d.ts +119 -0
  510. package/types/styles/sceneLayerDocuments.d.ts +145 -0
  511. package/types/styles/sceneLookComposition.d.ts +53 -0
  512. package/types/styles/sceneQualityApplication.d.ts +34 -0
  513. package/types/styles/sceneQualityProfiles.d.ts +13 -0
  514. package/types/styles/sceneStyleAudit.d.ts +80 -0
  515. package/types/styles/sceneStyleRuntime.d.ts +1782 -0
  516. package/types/styles/styleAdapters.d.ts +14 -0
  517. package/types/styles/styleApplication.d.ts +47 -0
  518. package/types/styles/styleBundle.d.ts +19 -0
  519. package/types/styles/styleBundleProvider.d.ts +44 -0
  520. package/types/styles/styleDomains.d.ts +18 -0
  521. package/types/styles/styleInspector.d.ts +59 -0
  522. package/types/styles/styleMaterialContract.d.ts +46 -0
  523. package/types/styles/styleMetadata.d.ts +11 -0
  524. package/types/styles/styleTargetDiscovery.d.ts +48 -0
  525. package/types/styles/styleTargetLabels.d.ts +32 -0
  526. package/types/styles/styleTargetMaterialCoverage.d.ts +20 -0
  527. package/types/styles/styleTransaction.d.ts +10 -0
  528. package/types/styles/styleTypes.d.ts +66 -0
  529. package/types/texgen/evaluateTexture.d.ts +40 -0
  530. package/types/texgen/index.d.ts +7 -0
  531. package/types/texgen/noise2.d.ts +46 -0
  532. package/types/texgen/textureAi.d.ts +6 -0
  533. package/types/texgen/textureGenerators.d.ts +261 -0
  534. package/types/texgen/texturePresets.d.ts +45 -0
  535. package/types/texgen/textureSettings.d.ts +121 -0
  536. package/types/texgen/textureThree.d.ts +13 -0
  537. package/types/toon/characterRenderPasses.d.ts +3 -0
  538. package/types/toon/index.d.ts +3 -0
  539. package/types/toon/settings/alphaSettings.d.ts +125 -0
  540. package/types/toon/settings/averageShadowSettings.d.ts +39 -0
  541. package/types/toon/settings/baseTextureSettings.d.ts +39 -0
  542. package/types/toon/settings/celShadeSettings.d.ts +37 -0
  543. package/types/toon/settings/contactShadowSettings.d.ts +30 -0
  544. package/types/toon/settings/eyeHighlightSettings.d.ts +55 -0
  545. package/types/toon/settings/faceLightingSettings.d.ts +32 -0
  546. package/types/toon/settings/furSettings.d.ts +23 -0
  547. package/types/toon/settings/glitterSettings.d.ts +43 -0
  548. package/types/toon/settings/hairHighlightSettings.d.ts +89 -0
  549. package/types/toon/settings/indirectLightSettings.d.ts +43 -0
  550. package/types/toon/settings/localLightSettings.d.ts +46 -0
  551. package/types/toon/settings/materialMapSettings.d.ts +86 -0
  552. package/types/toon/settings/outlineSettings.d.ts +125 -0
  553. package/types/toon/settings/perspectiveRemovalSettings.d.ts +14 -0
  554. package/types/toon/settings/rimLightSettings.d.ts +79 -0
  555. package/types/toon/settings/sceneShadowSettings.d.ts +32 -0
  556. package/types/toon/settings/selfShadowSettings.d.ts +44 -0
  557. package/types/toon/settings/shadowColorSettings.d.ts +77 -0
  558. package/types/toon/settings/skinToneSettings.d.ts +30 -0
  559. package/types/toon/settings/specularSettings.d.ts +96 -0
  560. package/types/toon/settings/stickerSettings.d.ts +40 -0
  561. package/types/toon/toonMaterialAdapter.d.ts +883 -0
  562. package/types/toon/toonSettings.d.ts +1182 -0
  563. package/types/vegetation/branchTree.d.ts +10 -0
  564. package/types/vegetation/callMeSenseiGrass.d.ts +8 -0
  565. package/types/vegetation/compiledTree.d.ts +75 -0
  566. package/types/vegetation/contactShadowField.d.ts +26 -0
  567. package/types/vegetation/flowerSpecies.d.ts +107 -0
  568. package/types/vegetation/grass.d.ts +4 -0
  569. package/types/vegetation/grassClump.d.ts +7 -0
  570. package/types/vegetation/grassPalettes.d.ts +29 -0
  571. package/types/vegetation/importedVegetationMaterial.d.ts +13 -0
  572. package/types/vegetation/index.d.ts +216 -0
  573. package/types/vegetation/legacyTreePresets.d.ts +22 -0
  574. package/types/vegetation/scatter.d.ts +12 -0
  575. package/types/vegetation/stylizedBush.d.ts +2 -0
  576. package/types/vegetation/stylizedFlower.d.ts +2 -0
  577. package/types/vegetation/stylizedFlowers.d.ts +8 -0
  578. package/types/vegetation/stylizedForest.d.ts +3 -0
  579. package/types/vegetation/stylizedGrass.d.ts +21 -0
  580. package/types/vegetation/stylizedTree.d.ts +19 -0
  581. package/types/vegetation/stylizedTreeFoliage.d.ts +18 -0
  582. package/types/vegetation/stylizedUnderstory.d.ts +50 -0
  583. package/types/vegetation/treeExport.d.ts +6 -0
  584. package/types/vegetation/treeSurfaceTextures.d.ts +72 -0
  585. package/types/vegetation/vegetationShaders.d.ts +74 -0
  586. package/types/version.d.ts +1 -0
  587. package/types/water/index.d.ts +1 -0
  588. package/types/water/sceneOverrideLayers.d.ts +16 -0
  589. package/types/water/water.d.ts +17 -0
  590. package/types/water/waterBreakerSystem.d.ts +46 -0
  591. package/types/water/waterCurrentField.d.ts +115 -0
  592. package/types/water/waterInteraction.d.ts +21 -0
  593. package/types/water/waterMaterial.d.ts +60 -0
  594. package/types/water/waterNearshorePhase.d.ts +5 -0
  595. package/types/water/waterRain.d.ts +17 -0
  596. package/types/water/waterRippleSimulation.d.ts +52 -0
  597. package/types/water/waterScenePasses.d.ts +70 -0
  598. package/types/water/waterSettings.d.ts +648 -0
  599. package/types/water/waterShoreMaterial.d.ts +3 -0
  600. package/types/water/waterShoreStateField.d.ts +2 -0
  601. package/types/water/waterSplashSystem.d.ts +2 -0
  602. package/types/water/waterStageSettings.d.ts +9 -0
  603. package/types/water/waterSurface.d.ts +2 -0
  604. package/types/water/waterUnderwaterAtmosphere.d.ts +103 -0
  605. package/types/water/waterVegetation.d.ts +16 -0
  606. package/types/worldCollision.d.ts +22 -0
  607. package/AGENTS.md +0 -254
  608. package/ATTRIBUTION.md +0 -78
  609. package/docs/characters.md +0 -144
  610. package/docs/debug-panel.md +0 -126
  611. package/docs/docs.css +0 -589
  612. package/docs/environment.md +0 -186
  613. package/docs/getting-started.md +0 -180
  614. package/docs/index.html +0 -14
  615. package/docs/lab-architecture.md +0 -100
  616. package/docs/lighting.md +0 -825
  617. package/docs/main.jsx +0 -739
  618. package/docs/mcp.md +0 -97
  619. package/docs/post-processing.md +0 -98
  620. package/docs/settings-reference.md +0 -1878
  621. package/docs/shader-constants.md +0 -77
  622. package/docs/sky.md +0 -182
  623. package/docs/style-labs.md +0 -309
  624. package/docs/texture-lab.md +0 -135
  625. package/docs/toon-shading.md +0 -183
  626. package/docs/tsl-conventions.md +0 -167
  627. package/docs/vegetation-sky.md +0 -275
  628. package/docs/water.md +0 -430
  629. package/docs/weather.md +0 -200
  630. package/docs/world-scale.md +0 -111
  631. package/mcp/style-lab-tools.mjs +0 -371
  632. package/src/ambientfx/INTEGRATION.md +0 -164
  633. package/src/ambientfx/ambientFxPresets.js +0 -83
  634. package/src/ambientfx/ambientFxSettings.js +0 -368
  635. package/src/ambientfx/emitters.js +0 -169
  636. package/src/ambientfx/index.js +0 -5
  637. package/src/ambientfx/particleBackbone.js +0 -493
  638. package/src/ambientfx/stylizedAmbientFx.js +0 -450
  639. package/src/biome/biomeGenerator.js +0 -385
  640. package/src/biome/biomeRuntime.js +0 -299
  641. package/src/biome/index.js +0 -2
  642. package/src/buildinggen/buildingAsset.js +0 -44
  643. package/src/buildinggen/buildingGrammar.js +0 -311
  644. package/src/buildinggen/buildingMesh.js +0 -451
  645. package/src/buildinggen/buildingPresets.js +0 -46
  646. package/src/buildinggen/buildingRecipe.js +0 -100
  647. package/src/buildinggen/buildingSettings.js +0 -238
  648. package/src/buildinggen/index.js +0 -6
  649. package/src/camera/cameraDirector.js +0 -157
  650. package/src/camera/cameraGenerator.js +0 -367
  651. package/src/camera/cameraRig.js +0 -570
  652. package/src/camera/cameraSettings.js +0 -236
  653. package/src/camera/index.js +0 -7
  654. package/src/catalog/builtinEntries.js +0 -245
  655. package/src/catalog/catalog.js +0 -210
  656. package/src/catalog/index.js +0 -3
  657. package/src/core/shaderBackend.js +0 -24
  658. package/src/debrisgen/debrisFields.js +0 -544
  659. package/src/debrisgen/debrisGenerator.js +0 -1929
  660. package/src/debrisgen/debrisPalettes.js +0 -71
  661. package/src/debrisgen/debrisPhysics.js +0 -198
  662. package/src/debrisgen/debrisPresets.js +0 -162
  663. package/src/debrisgen/debrisSettings.js +0 -333
  664. package/src/debrisgen/debrisTextures.js +0 -380
  665. package/src/debrisgen/index.js +0 -5
  666. package/src/debug/fieldValues.js +0 -95
  667. package/src/debug/index.js +0 -7
  668. package/src/debug/settingsPanel.js +0 -170
  669. package/src/fauna/INTEGRATION.md +0 -174
  670. package/src/fauna/boids.js +0 -861
  671. package/src/fauna/faunaBodies.js +0 -492
  672. package/src/fauna/faunaPresets.js +0 -52
  673. package/src/fauna/faunaSettings.js +0 -525
  674. package/src/fauna/index.js +0 -5
  675. package/src/fauna/stylizedFauna.js +0 -395
  676. package/src/game-feel/gameFeelGenerator.js +0 -402
  677. package/src/game-feel/gameFeelRuntime.js +0 -549
  678. package/src/game-feel/index.js +0 -2
  679. package/src/motion/index.js +0 -5
  680. package/src/motion/motionClip.js +0 -441
  681. package/src/motion/motionController.js +0 -628
  682. package/src/motion/motionDocuments.js +0 -225
  683. package/src/motion/motionGraph.js +0 -307
  684. package/src/motion/motionSettings.js +0 -222
  685. package/src/pathgen/index.js +0 -7
  686. package/src/pathgen/pathBridge.js +0 -232
  687. package/src/pathgen/pathPresets.js +0 -35
  688. package/src/pathgen/pathRibbon.js +0 -410
  689. package/src/pathgen/pathRouter.js +0 -380
  690. package/src/pathgen/pathSettings.js +0 -335
  691. package/src/pathgen/pathTextures.js +0 -123
  692. package/src/pathgen/stylizedPaths.js +0 -453
  693. package/src/propgen/generatorsWave1.js +0 -379
  694. package/src/propgen/generatorsWave2.js +0 -462
  695. package/src/propgen/index.js +0 -5
  696. package/src/propgen/propAsset.js +0 -323
  697. package/src/propgen/propParts.js +0 -170
  698. package/src/propgen/propPlacement.js +0 -459
  699. package/src/propgen/propPresets.js +0 -82
  700. package/src/propgen/propSettings.js +0 -395
  701. package/src/soundscape/index.js +0 -4
  702. package/src/soundscape/soundscapeGenerator.js +0 -179
  703. package/src/soundscape/soundscapeRuntime.js +0 -806
  704. package/src/soundscape/soundscapeSettings.js +0 -292
  705. package/src/stylizedTerrain.js +0 -631
  706. package/src/stylizedWorld.js +0 -903
  707. package/src/vegetation/treeRecipe.js +0 -647
  708. package/src/vfxgen/INTEGRATION.md +0 -145
  709. package/src/vfxgen/core/burstBackbone.js +0 -380
  710. package/src/vfxgen/core/projectileCore.js +0 -92
  711. package/src/vfxgen/core/spriteShapes.js +0 -98
  712. package/src/vfxgen/core/trailRibbon.js +0 -272
  713. package/src/vfxgen/core/vfxRandom.js +0 -29
  714. package/src/vfxgen/effects/emitHelpers.js +0 -37
  715. package/src/vfxgen/effects/magicEffects.js +0 -162
  716. package/src/vfxgen/effects/movementEffects.js +0 -87
  717. package/src/vfxgen/effects/weaponEffects.js +0 -118
  718. package/src/vfxgen/index.js +0 -18
  719. package/src/vfxgen/moves/moveController.js +0 -146
  720. package/src/vfxgen/moves/moveLibrary.js +0 -335
  721. package/src/vfxgen/vfxPresets.js +0 -98
  722. package/src/vfxgen/vfxSettings.js +0 -384
  723. package/src/vfxgen/vfxSystem.js +0 -449
  724. package/src/vfxgen/weapons/stylizedWeapons.js +0 -137
  725. package/src/villagegen/index.js +0 -4
  726. package/src/villagegen/stylizedVillage.js +0 -490
  727. package/src/villagegen/villageArchetypes.js +0 -160
  728. package/src/villagegen/villageNames.js +0 -40
  729. package/src/villagegen/villageSites.js +0 -105
  730. package/src/weather/index.js +0 -6
  731. package/src/weather/weatherPrecipitation.js +0 -221
  732. package/src/weather/weatherPresets.js +0 -258
  733. package/src/weather/weatherSettings.js +0 -269
  734. package/src/weather/weatherSystem.js +0 -871
  735. package/src/worldMinimap.js +0 -214
  736. package/src/worldPresets.js +0 -125
@@ -0,0 +1,59 @@
1
+ # ToonLab Agent Resources
2
+
3
+ These are downloadable AI coding agent resources for developers using ToonLab
4
+ runtime features in their own apps. They are not maintenance instructions for
5
+ this repository.
6
+
7
+ The recommended agent workflow starts from an existing scene: apply focused
8
+ shaders/vegetation/water/post, find assets through Gallery or MCP, and author
9
+ bounded portable outputs. `outdoor-world`, `karst-cliff-construction`, and
10
+ current Sky/Cloud guidance are experimental research/qualification resources,
11
+ not a promise of reliable one-shot scene construction.
12
+
13
+ Layout:
14
+
15
+ - `codex/AGENTS.md` — shared Codex-style runtime usage guide.
16
+ - `claude/CLAUDE.md` — Claude Code wrapper for the shared guide.
17
+ - `cursor/toonlab.mdc` — Cursor rule file; copy it to `.cursor/rules/` in a
18
+ project if desired.
19
+ - `skills/codex/` — Codex-oriented feature skills.
20
+ - `skills/claude/` — Claude-oriented feature skills.
21
+ - `references/` — public anime art direction, style routing, MCP discovery,
22
+ runtime-boundary, sourcing-policy, and custom-gap contracts used by every
23
+ agent integration.
24
+
25
+ Recommended feature skills (start with `game-dev` for existing-scene
26
+ integration and `asset-sourcing` for Gallery/MCP work):
27
+
28
+ - `asset-sourcing`
29
+ - `environment`
30
+ - `game-dev`
31
+ - `post-processing`
32
+ - `rock-ground-shaders`
33
+ - `rockgen`
34
+ - `style-presets`
35
+ - `toon-shading`
36
+ - `vegetation-sky` (vegetation path; its Sky/Cloud path is experimental)
37
+ - `visual-verification`
38
+ - `water`
39
+
40
+ Experimental or host-owned boundary skills:
41
+
42
+ - `camera`
43
+ - `game-feel`
44
+ - `karst-cliff-construction`
45
+ - `lighting`
46
+ - `outdoor-world`
47
+ - `weather`
48
+
49
+ These text-only resources ship with the npm package beside the runtime source.
50
+ The package does not include ToonLab lab applications, examples, review
51
+ fixtures, models, textures, or other redistributed visual/media assets.
52
+ First-party grass geometry and materials are generated by runtime code; the
53
+ optional CC0 mannequin resolves from immutable public R2 rather than npm.
54
+
55
+ All integrations share one non-optional authored-asset rule: every renderable
56
+ root needs a stable target ID/domain, and every material slot needs a stable
57
+ material ID plus semantic role in the versioned ToonLab material contract.
58
+ Root-only labels do not make multi-material assets bundle-ready. Strict mode
59
+ blocks incomplete assets; advisory mode must report them as incomplete.
@@ -0,0 +1,24 @@
1
+ # ToonLab Anime-Game Art Direction
2
+
3
+ ToonLab is for anime-style games, characters, and environments. Do not treat
4
+ "stylized" as permission to drift toward generic low-poly, western cartoon,
5
+ pixel-art, or untreated photoreal rendering.
6
+
7
+ The selected style bundle is the visual authority. Its `artDirection` must
8
+ declare `family: "anime-game"`, `rendering: "cel-shaded"`, and both character
9
+ and environment subjects.
10
+
11
+ Evaluate every scene at gameplay camera distance:
12
+
13
+ - Group values into intentional light and shadow shapes.
14
+ - Preserve readable silhouettes and important material boundaries.
15
+ - Reduce high-frequency texture detail deliberately; do not merely blur it.
16
+ - Coordinate shadow color, atmosphere, sky, water, and post-processing.
17
+ - Use material-aware graphic highlights for skin, hair, cloth, metal, leaves,
18
+ rock, ground, and water rather than one universal specular response.
19
+ - Keep imported PBR maps as useful source information, then route the asset
20
+ through its owning ToonLab shader.
21
+
22
+ If an asset or renderer cannot meet this direction with a supported shader,
23
+ record a custom integration note instead of silently accepting a visually inconsistent
24
+ fallback.
@@ -0,0 +1,23 @@
1
+ # Asset-Sourcing Policy
2
+
3
+ Import from `@call-me-sensei/toonlab/asset-policy`.
4
+
5
+ Policies use one of three modes:
6
+
7
+ - `strict`: a candidate is usable only when its domain rule explicitly lists
8
+ the candidate's source class.
9
+ - `advisory`: preferred sources are ranked first; other registered sources
10
+ remain usable with a warning.
11
+ - `open`: every registered source class is allowed, with provenance retained.
12
+
13
+ Registered source classes are `project-library`, `toonlab-library`,
14
+ `toonlab-gallery`, `external-cc0`, `procedural`, and `custom`.
15
+
16
+ No policy means “ask, then advisory.” It never means strict and it never gives
17
+ an agent permission to claim that a sourcing requirement was satisfied.
18
+
19
+ The strict Call Me Sensei acceptance fixture allows rocks only from the
20
+ project library, ToonLab library, or ToonLab gallery. Trees may also use the
21
+ package's supported procedural legacy set or `BranchTree`. Other custom trees must be
22
+ reviewed and admitted to one of the approved libraries before that fixture can
23
+ use them.
@@ -0,0 +1,16 @@
1
+ # Custom integration records
2
+
3
+ Custom work should be traceable instead of becoming an invisible fallback. Before adding it, use
4
+ `record_asset_gap` or `createAssetGapRecord()` and record:
5
+
6
+ - Target and rendering domain.
7
+ - Relevant style-bundle slot.
8
+ - MCP searches, queries, candidate IDs, and rejection reasons.
9
+ - Why permitted library, gallery, external, or procedural routes failed.
10
+ - What custom model, texture, shader, or adapter was introduced.
11
+ - Provenance, license, generator/recipe/seed where relevant, and the decision owner.
12
+ - Why the customization exists and what your team may want to revisit later.
13
+
14
+ The MCP server maintains `.toonlab/reports/style-asset-gaps.json` and the
15
+ project-level `TOONLAB_ASSET_GAPS.md`. Keep both with your project whenever it
16
+ uses custom rendering or content outside the supported library.
@@ -0,0 +1,118 @@
1
+ # Geology assembly playbook
2
+
3
+ Use this reference with `karst-cliff-construction` and `outdoor-world`. It
4
+ describes reusable landform craft without depending on project-specific
5
+ helpers, asset IDs, or a frozen catalog count.
6
+
7
+ ## 1. Establish the parent mass
8
+
9
+ Approve an untextured continuous terrain/heightfield silhouette first:
10
+ headlands, bays, terraces, tower envelopes, channel, beach, and submerged bed.
11
+ Catalog rocks dress and articulate that parent mass; they must not be the only
12
+ thing preventing the world from reading as hollow.
13
+
14
+ Reject before dressing when:
15
+
16
+ - the hero silhouette is wrong;
17
+ - the channel or beach footprint is clogged;
18
+ - the cliff is a thin wall with no top/underwater continuation;
19
+ - separate towers overlap into one clump from an approved camera.
20
+
21
+ ## 2. Select donors by visible role
22
+
23
+ Query the connected ToonLab OSS or Pro catalog and shortlist with positive
24
+ `dimensionsMeters`, taxonomy, scale class, and immutable preview/asset URLs.
25
+ Family names and tags are search hints, not visual proof. Review contact sheets
26
+ or finalists under one neutral material and camera azimuth.
27
+
28
+ Useful morphology:
29
+
30
+ | Role | Visible requirement |
31
+ |---|---|
32
+ | Primary face | Broad load-bearing plane, gravity-aligned relief, no prop-like outline |
33
+ | Corner/termination | A turn or return face that buries cleanly into the parent mass |
34
+ | Bedding ledge | A real horizontal lip with enough depth to cast a recess shadow |
35
+ | Buttress/wedge | A seam bridge whose rear and toe can be buried |
36
+ | Waterline notch | Rounded or undercut lip that continues below the surface |
37
+ | Talus | Small jointed collapse block; free rotation is appropriate only here |
38
+
39
+ Choose target dimensions in metres from the published native dimensions.
40
+ Reject missing or invalid dimensions before download. Avoid solving an entire
41
+ wall by stretching one small donor; report mean/max scale and worst axis ratio
42
+ per structural role.
43
+
44
+ ## 3. Build courses, not rubble
45
+
46
+ Primary faces share a near-common up axis and facing. Vary crop, burial,
47
+ neighbour overlap, tier, yaw silhouette, and moderate scale; do not tumble
48
+ load-bearing panels. Free three-axis tumbling belongs to collapse products.
49
+
50
+ Starting burial ranges, to be verified in silhouette:
51
+
52
+ - primary faces: bury roughly 30–60% of module depth;
53
+ - bedding ledges: bury the rear majority so only the lip projects;
54
+ - tower cores: seat the footing/course overlap, not most of the tower;
55
+ - talus: rest in contact and bury enough to remove floating toes.
56
+
57
+ Build in this order:
58
+
59
+ 1. primary faces at noses, re-entrants, terminations, and terrace breaks;
60
+ 2. bridging ledges, buttresses, crevice wedges, and recessed corbels;
61
+ 3. waterline/submerged continuation and restrained talus;
62
+ 4. vegetation caps and story dressing.
63
+
64
+ If a placement helper automatically splits an oversized request into a stack,
65
+ make that result explicit and refusable. Subdivision must not introduce yaw,
66
+ pitch, or roll jitter unless the caller deliberately requests a tumbled role.
67
+
68
+ ## 4. Publish shared formation contracts
69
+
70
+ Sibling modules must consume the same world-space values rather than derive
71
+ private approximations:
72
+
73
+ - parent height/envelope;
74
+ - water level and submerged bed;
75
+ - bedding elevation ladder;
76
+ - visible face plane/standoff;
77
+ - cliff-top and vegetation-cap polygons;
78
+ - fall lips, landing pools, and exclusion zones.
79
+
80
+ One useful bedding ladder is `base + courseIndex * spacing`; derive `base` and
81
+ `spacing` from the terrain terracing/style rather than copying the qualifying
82
+ scene's numbers. Align visible beds across neighbouring formations.
83
+
84
+ ## 5. Unify the material treatment
85
+
86
+ Use one intentional parent lithology. The rock shader can replace source
87
+ albedo and apply one projected treatment across morphologically compatible
88
+ donors, but it cannot change incompatible geometry into the same geology.
89
+ Record any cross-taxonomy donor override and judge the result from silhouette,
90
+ bedding, and surface response.
91
+
92
+ Prefer one `applyRockShader(formationRoot, settings)` call. Verify the report's
93
+ texture source and shadow defaults. Use `setRockShaderSceneState` for the
94
+ current water level so the wet band follows the shoreline.
95
+
96
+ ## 6. Prevent recognizable repetition
97
+
98
+ Repeated asset ids are normal modular modelling. Repeated camera-facing
99
+ silhouettes are the defect. For nearby copies vary at least three of: visible
100
+ crop/burial, tier, neighbour overlap, meaningful scale, and camera-facing yaw.
101
+ Never use regular spacing or a visible kit row.
102
+
103
+ Placement metrics are rejection floors. They cannot prove that the rendered
104
+ formation reads as one mass.
105
+
106
+ ## 7. Verify before approval
107
+
108
+ - Wait for application readiness and a stable rendered scene graph.
109
+ - Capture hero, wide, close, flyover, and top-down views.
110
+ - Isolate terrain, rock formation, water, and lighting when assigning a defect.
111
+ - Scan world-space extents for accidental slabs, dams, or oversized caps.
112
+ - Report module counts, donor dimensions, transformed dimensions, burial,
113
+ per-role scale statistics, and active LODs.
114
+ - Squint at the silhouette: if individual boulders or a sawtooth crest remain
115
+ legible, the cliff is still a pile.
116
+
117
+ Automated checks may reject gaps, invalid scale, and repeated transforms. Only
118
+ rendered multi-view evidence can approve the formation.
@@ -0,0 +1,104 @@
1
+ # MCP Asset Discovery
2
+
3
+ Use MCP for discovery, provenance, shared workspace state, and policy-aware
4
+ imports. Use runtime package APIs for shader application and deterministic
5
+ runtime construction.
6
+
7
+ ## Detect the available ToonLab surface
8
+
9
+ Inspect the connected server's tool names before calling anything. Do not
10
+ assume the developer has ToonLab Pro, and do not assume a local OSS checkout.
11
+
12
+ - **ToonLab OSS local MCP** exposes `get_workspace_info`,
13
+ `search_cc0_assets`, `get_cc0_asset`, and `import_cc0_asset`. Its
14
+ `search_assets` searches built-in procedural entries, the complete official
15
+ R2-backed Gallery catalog, and the disk-backed project/library/workspace.
16
+ Use `source: 'official'` for released assets and follow `nextOffset` until
17
+ null.
18
+ - **ToonLab Pro remote MCP** exposes `get_runtime_guide`,
19
+ `search_public_gallery`, and `get_toonlab_asset`. Its `search_assets`
20
+ searches indexed external open assets; first-party rocks/trees and community
21
+ work are searched through `search_public_gallery`.
22
+ - **Both connected** is valid. Qualify calls by MCP server name because common
23
+ names such as `search_assets`, `get_asset`, `list_my_creations`, and
24
+ `validate_asset_candidate` have surface-specific schemas. Search the local
25
+ project/library first, then the Pro gallery and cloud library.
26
+
27
+ The absence of a surface-specific tool is not an asset failure. Continue with
28
+ the surface the developer actually has and report which surface was used.
29
+
30
+ ## Shared start
31
+
32
+ 1. Call the available server's `get_anime_game_profile` and load the selected
33
+ style bundle.
34
+ 2. Locate the project's asset-sourcing policy. If it is absent, ask the
35
+ developer. Until answered, continue library-first in advisory mode and
36
+ record that the decision is unresolved.
37
+ 3. Reuse accepted project/library content before public or generated content.
38
+
39
+ ## ToonLab OSS local sequence
40
+
41
+ 1. Call `list_my_creations` with the task's text and exact tag filters, then
42
+ `search_assets` with `source: 'library'`,
43
+ `'workspace'`, `'workspace-storage'`, or `'builtin'` as appropriate. If no
44
+ accepted local entry closes the role, call it with `source: 'official'` to
45
+ search the released Gallery through the local database. Follow
46
+ `nextOffset` until null so all matching official assets remain reachable.
47
+ 2. Call local `get_asset` for the complete recipe/file descriptor.
48
+ 3. When policy permits external CC0, call `search_cc0_assets`, then
49
+ `get_cc0_asset`; call `import_cc0_asset` only after selection to download
50
+ bytes plus their provenance manifest into `.toonlab/imports/`.
51
+ 4. Validate with local schema:
52
+ `validate_asset_candidate({ policy, candidate: { domain, sourceClass } })`.
53
+ 5. Local `generate_asset` creates deterministic procedural recipes. With local
54
+ provider keys configured, `generate_ai_asset` exposes image generation,
55
+ Meshy 7 image/multiview-to-3D, and Text → selected image model → Meshy 7.
56
+ Call `get_generation_capabilities` first, then poll with
57
+ `get_generation_job(s)` and persist a succeeded model with
58
+ `save_generated_asset`. This uses the developer's keys and no ToonLab credits.
59
+
60
+ ## ToonLab Pro remote sequence
61
+
62
+ 1. Call Pro `list_my_creations` with `query`, `tags`, and/or `types` for the
63
+ signed-in cloud library, following `nextOffset` until null.
64
+ 2. Call `search_public_gallery` with its unified default. For first-party
65
+ rocks/trees, use `source: 'toonlab'`, `catalog: 'rock' | 'tree'`, and keep
66
+ following `nextOffset`.
67
+ 3. Use Pro `search_assets` only for indexed external open assets, followed by
68
+ Pro `get_asset`. Pro has no `search_cc0_assets` or `import_cc0_asset`; the
69
+ selected download URL and provenance are returned by `get_asset`.
70
+ 4. Validate with Pro schema:
71
+ `validate_asset_candidate({ stable_id, source_class, asset_kind, domain,
72
+ license, provenance, policy })`.
73
+ 5. Managed generation requires an approved policy, exhausted discovery,
74
+ `record_asset_gap`, and `get_generation_capabilities` before any
75
+ consequential credit-spending call.
76
+
77
+ Follow `nextOffset` until null on both OSS and Pro catalog searches; never
78
+ interpret one response page as the complete candidate set.
79
+
80
+ ## Common completion rules
81
+
82
+ - Treat a saved Library object as a reusable asset, not an invisible draft.
83
+ When saving, assign up to ten stable lowercase slug tags covering semantic
84
+ role, material/asset family, location or biome, project, and lifecycle state.
85
+ Do not stuff prose into tags, and do not rely on a filename as the only
86
+ discovery key.
87
+
88
+ - For first-party rocks on either surface, shortlist from search metadata
89
+ before loading binaries. Require positive `dimensionsMeters.width`,
90
+ `.height`, and `.depth`, then compare family/profile, scale class, category,
91
+ subcategory, geology, and surface. Call `get_asset` (OSS) or
92
+ `get_toonlab_asset` (Pro) only for finalists that need the full recipe,
93
+ lineage, and immutable file list. Never render a GLB merely to discover its
94
+ catalog size.
95
+ - Inspect provenance, license, semantic suitability, `animeStyleSupport`, and
96
+ the policy decision before selection. A strict denial means the candidate
97
+ must not be selected, imported, or generated.
98
+ - Search results may show denied candidates so the user can see what was
99
+ considered; visibility is not approval.
100
+ - Use generation only when the policy permits it and discovery did not close
101
+ the named gap.
102
+ - Record a custom integration note before introducing custom models, textures, shaders, or
103
+ adapters. The OSS and Pro `record_asset_gap` argument names differ, so use
104
+ the schema advertised by the connected server.
@@ -0,0 +1,174 @@
1
+ # ToonLab Runtime Boundary
2
+
3
+ ToonLab is recommended for stylizing and populating supplied anime-game
4
+ scene content. Prefer focused imports from these production-oriented areas:
5
+
6
+ - `toon`, `toon-settings`, `character`
7
+ - `environment`, `ground-shader`, `rock-shader`
8
+ - `vegetation`, `vegetation-shaders`, `grass`, `grass-palettes`
9
+ - `water`, `water-settings`
10
+ - `lighting`
11
+ - `post`, `post-processing`
12
+ - `rockgen`, `texgen`, `assetlib`
13
+ - `styles`, `asset-policy`, `loaders`
14
+
15
+ `sky` and `cloud` are public because they are owned by the live Sky, Cloud, and
16
+ Sky & Cloud Labs. Weather, climate, debris, ambient-effects, fauna, debug, and
17
+ root terrain/world helpers are not package entry points in this release.
18
+ Repository examples may exercise them locally, but package users must not
19
+ import them.
20
+
21
+ For characters, prefer `createCharacterRuntime()` from `./character`. It owns
22
+ format loading, texture readiness, foot-origin fitting, toon conversion,
23
+ humanoid rig resolution, native clips or packaged locomotion fallback, mixer
24
+ updates, VRM updates, and disposal. The host still owns movement intent,
25
+ dynamic physics, ground contact, and camera behavior. The walkable runtime
26
+ automatically consumes the static collision service bound by
27
+ `createSceneStyleRuntime()`. Do not recreate this pipeline inside individual
28
+ scenes or Labs.
29
+
30
+ The selected style bundle coordinates visual settings and supported scene-look
31
+ systems; it does not construct or classify a scene. Lighting is a supported
32
+ bundle domain through `createSceneStyleRuntime()`. VFX, camera behavior,
33
+ game-feel behavior, and renderer configuration remain unsupported bundle
34
+ domains owned by the host game.
35
+ When a project-local implementation changes the selected anime treatment,
36
+ treat it as a custom adapter and record it in the custom-gap report.
37
+
38
+ The `grass` entry owns two deterministic first-party Call Me Sensei clump
39
+ recipes, three generated LODs per variant, the procedural material, and the
40
+ async-compatible `createCallMeSenseiGrassField()` default factory. It ships no
41
+ mesh or texture files. `RetainedGrassClumpField` remains the generic container
42
+ for caller-supplied, properly licensed geometry and materials.
43
+
44
+ The default factory resolves the `call_me_sensei_clump` meadow preset: 40
45
+ upright overlapping primary blades, full ground-field adoption, watercolor
46
+ lift and translucent stroke layering, and a final LOD without an implicit hard
47
+ cull. Sparse generic blades and repository comparison media are not equivalent
48
+ fallbacks.
49
+
50
+ Applying the Call Me Sensei bundle resolves the same grass field response. The
51
+ scene style runtime creates and updates the ground-field pass automatically, so
52
+ grass roots sample the actual labeled Ground Shader output without host-side
53
+ color duplication.
54
+
55
+ The `environment` entry accepts the same explicit style/scenario routing used
56
+ by the preset registry:
57
+
58
+ ```js
59
+ await applyEnvironmentShader(root, {
60
+ preset: 'call_me_sensei',
61
+ scenario: 'exteriorDay',
62
+ });
63
+ ```
64
+
65
+ This is equivalent to spreading
66
+ `resolveEnvironmentPreset('call_me_sensei', 'exteriorDay')` into the adapter.
67
+ Named preset values establish the baseline; explicit `settings`, `features`,
68
+ `parameters`, and `materialLook` overrides take precedence. Select the preset
69
+ before authoring overrides instead of retyping its numeric fields.
70
+
71
+ The `vegetation` entry's scatter helpers place across the ground heightfield —
72
+ `scatterInRect`, `scatterGrassAround`, `scatterForest` — taking `(x, z)` and
73
+ sampling `y` from a host `heightAt`. That contract cannot express a surface
74
+ which is not single-valued in `y`, such as a cliff cap or a ledge with terrain
75
+ both above and below it.
76
+
77
+ For those, use `scatterOnSurface({ surfaces, density | count, minSpacing,
78
+ mask, weightAt, normalBlend })`. Each surface is a disc in world space —
79
+ `{ center, radius, normal?, seed? }`, the shape a rock or cliff module already
80
+ publishes for its caps and ledges. Spacing is measured in 3D, so stacked caps
81
+ do not reject each other's points. Each surface draws from its own
82
+ deterministic stream, so adding or removing one does not reshuffle the others.
83
+ Returned placements carry `normal`, `forward` and `yaw` alongside `x/y/z`, so
84
+ an aligned field no longer has to derive orientation per placement. The
85
+ existing `(x, z)` mask factories and `combineMasks` compose unchanged.
86
+
87
+ The `ground-shader` entry also owns bounded transient print fields for sand,
88
+ dirt, and sufficiently deep snow. Create a `GroundPrintLayer`, pass it as the
89
+ material's `printLayer`, and emit contact events with `stamp()`. The portable
90
+ Ground Shader document saves only `printResponse`; stamp history, snow depth,
91
+ visibility, and recovery remain runtime state:
92
+
93
+ ```js
94
+ const prints = createGroundPrintLayer({
95
+ bounds: geometry.boundingBox,
96
+ resolution: 1024,
97
+ recoverySeconds: 30,
98
+ });
99
+
100
+ const ground = createGroundShaderMesh({ geometry, field, layers, printLayer: prints });
101
+ prints.stamp({
102
+ shape: 'boot-left',
103
+ position: footWorldPosition,
104
+ forward: characterForward,
105
+ size: [0.12, 0.28],
106
+ });
107
+ setGroundShaderSceneState(ground, { snowCover: 1, snowDepth: 0.12 });
108
+ ```
109
+
110
+ This is a visual albedo, roughness, and normal response. Terrain geometry,
111
+ precise/dynamic collision, navigation, character contact detection, and large-world print
112
+ streaming remain host-owned.
113
+
114
+ Pair it with `createCapEdgeWeight({ rimBias: 0.05, falloff, break })` for a
115
+ radial weight that thins coverage toward a broken rim. `falloff` and `break`
116
+ create the thinning; `rimBias` deliberately pushes coverage outward, so keep
117
+ it near zero for a soil cap. A cap that stays dense to its edge reads as a flat
118
+ disc stuck onto the rock rather than as soil.
119
+
120
+ ## Shared scene surface runtime
121
+
122
+ Use `createSceneSurfaceRuntime()` from `@call-me-sensei/toonlab/runtime` when a
123
+ scene combines an authored terrain heightfield with grounded props, meadow
124
+ grass, characters, or shoreline water. The host supplies world bounds,
125
+ `heightAt(x, z)`, and a water level once. The runtime then owns derived Y
126
+ placements, bounds grounding, water masking, the shoaling/nearshore/shore-state
127
+ connection, source-texture continuity checks, and fail-closed composition
128
+ readiness.
129
+
130
+ ```js
131
+ const surface = createSceneSurfaceRuntime({ bounds, heightAt, waterLevel: 0 });
132
+ const grass = await surface.createGrassField({ count: 12000, min, max });
133
+ const water = surface.createWaterSurface({ width: 80, depth: 50, position: { z: -25 } });
134
+ surface.place(tree, { x: 4, z: 8 });
135
+ surface.place(bench, { anchor: 'bounds', x: 2, z: 5 });
136
+
137
+ // After the package shadow pass has updated:
138
+ surface.assertReady({
139
+ camera,
140
+ styleRuntime,
141
+ requireShadowDomains: ['character', 'manufactured.surface', 'vegetation.tree'],
142
+ });
143
+ ```
144
+
145
+ Do not hand-author grass Y values, independently offset a shoreline water
146
+ plane, or infer readiness from `castShadow` flags when this contract applies.
147
+
148
+ For an explicitly requested Cloud experiment, the `cloud` entry is now a
149
+ raymarched volumetric deck, not painted sources placed by a composition. The
150
+ painted pipeline (`createCloudSourceDocument`, `createCloudCompositionDocument`,
151
+ `createCloudField`, `createCloudShaderSettings`) was replaced outright and no
152
+ longer exists. Parameters are six groups on a `toonlab/sky-params` document, and
153
+ the whole sky is one system:
154
+
155
+ ```js
156
+ const sky = await SkySystem.create({ renderer, scene, camera, quality: 'high' });
157
+ await sky.applyPreset({
158
+ cloud: {
159
+ shape: { altitude: 1400, coverage: 0.55, thickness: 2800 },
160
+ lighting: { powderStrength: 0.7, scatteringAlbedo: 0.82 },
161
+ wind: { heading: 135, speed: 8 },
162
+ },
163
+ });
164
+ sky.update(delta); // once per frame, before the scene pass
165
+ ```
166
+
167
+ `applyPreset` fully replaces sky state: anything the object omits falls back to
168
+ the schema default rather than to what is on screen. `sky.toParams()` is its
169
+ inverse and round-trips. This callable contract does not imply that the current
170
+ Cloud workflow has passed the polished-scene gate.
171
+
172
+ Use the package README and exported functions/settings as the runtime source
173
+ of truth. Labs, internal comparison fixtures, local asset paths, and repository
174
+ documentation outside `agents/references/` are not installed public APIs.
@@ -0,0 +1,71 @@
1
+ # Style Bundles and Shader Routing
2
+
3
+ A style bundle selects coordinated visual treatments and supported system
4
+ behavior. It never selects model identity, species, placements, current
5
+ weather, or current time.
6
+
7
+ Use `CALL_ME_SENSEI_STYLE_BUNDLE` as the first-party anime-game reference.
8
+ Use `auditStyleBundleApplication()` before `applyStyleBundle()`. Production
9
+ targets need a stable `id` and an explicit `domain`. Supported domains use
10
+ package adapters automatically; custom renderers need an explicit adapter. Do
11
+ not classify from object names, texture colors, or scene parenting.
12
+
13
+ | Target domain | Bundle slot |
14
+ | --- | --- |
15
+ | `character`, `equipment`, `prop` | `toon` |
16
+ | `manufactured.environment` | `environment` |
17
+ | `vegetation.tree` | `treeShader` |
18
+ | `vegetation.grass` | `grassShader` + `grass` field response |
19
+ | `vegetation.flower` | `flowerShader` |
20
+ | `terrain.ground` | `groundShader` |
21
+ | `natural.rock` | `rock` |
22
+ | `natural.debris` | `debris` |
23
+ | `water` | `water` |
24
+ | `sky` | `sky` |
25
+ | `cloud` | `cloud` |
26
+ | `lighting` | `lighting` |
27
+ | `post` | `post` |
28
+
29
+ Prefer `createSceneStyleRuntime({ renderer, scene, sky, water })` for a complete
30
+ bundle application. It owns one stable lighting rig and automatically enables
31
+ the environment ground-field pass when the grass slot requests ground-color
32
+ adoption. Call `runtime.update(delta, camera)` before the scene render. Never
33
+ recreate those passes in each playground or scene.
34
+
35
+ Strict application preflights every target before the first mutation. Missing
36
+ slots, unknown domains, mixed material roles without an ID mask, unsupported
37
+ renderers, and undocumented custom adapters are failures. Advisory mode may
38
+ apply valid targets, but it must return every skipped target and gap.
39
+
40
+ ## Mandatory authored-asset labeling
41
+
42
+ Agents that model, generate, convert, or import a 3D object must finish its
43
+ style metadata before handoff. Every renderable root needs a stable target ID
44
+ and explicit domain. Every material slot beneath it needs a stable material ID
45
+ and at least one semantic role in the versioned `materials` contract. A root
46
+ domain label does not substitute for per-material classification.
47
+
48
+ If one atlas crosses incompatible physical or shader roles, split the draw
49
+ materials or author a material-ID mask. Strict mode must fail incomplete
50
+ material coverage. Advisory mode may continue only while recording the gap;
51
+ the agent must not call the asset style-bundle-ready.
52
+
53
+ The minimum public-API shape is:
54
+
55
+ ```js
56
+ material.userData.toonlabMaterialId = 'BenchWood';
57
+ labelStyleTarget(root, createStyleTargetLabel('manufactured.surface', {
58
+ targetId: 'scene/bench-1',
59
+ materials: createStyleMaterialContract('manufactured.surface', {
60
+ assignments: { BenchWood: { roles: ['primaryMass'] } },
61
+ }),
62
+ }));
63
+ ```
64
+
65
+ Repeat the assignment for every distinct render material. The IDs belong in
66
+ the asset/export manifest as well as the runtime object so reimport does not
67
+ silently erase routing.
68
+
69
+ Style bundle v2 is visual-only and includes anime art-direction metadata.
70
+ Parsing a v1 document returns migration warnings for old asset selections;
71
+ move those decisions to scene configuration or an asset-sourcing policy.