@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
package/README.md CHANGED
@@ -1,23 +1,75 @@
1
1
  # ToonLab by Call Me Sensei
2
2
 
3
- ToonLab by Call Me Sensei is a stylized anime-style game starter kit and
4
- runtime library for [Three.js](https://threejs.org/). Its goal is to simplify
5
- Three.js game development: you get a better-looking anime/stylized game
6
- without having to develop shaders yourself, and procedurally generated assets
7
- (trees, rocks, grass) plus integrated procedural world systems (water, sky)
8
- reduce content complexity so you can focus on your core game logic instead.
9
- Clone it and a toon-shaded character is
10
- walking and swimming through a fully stylized world: cel-shaded characters,
11
- painterly environments, interactive water, procedural vegetation and sky,
12
- post-processing, and a schema-driven tuning panel. Use it as a starter kit,
13
- or import the pieces you need as a library (`@call-me-sensei/toonlab` on npm,
14
- subpath exports per cluster).
3
+ ToonLab by Call Me Sensei is an anime rendering and content-integration toolkit
4
+ for [Three.js](https://threejs.org/). It is purpose-built for cel-shaded anime
5
+ games rather than generic stylization. It is strongest when you already have a
6
+ scene, level layout, or asset and want to apply coordinated
7
+ character, environment, ground, rock, vegetation, water, and post treatments
8
+ without building those shaders from scratch. It also provides focused asset
9
+ generators, a searchable Gallery, portable presets, and OSS/Pro MCP workflows.
10
+
11
+ ToonLab does **not** currently make a coding agent reliable at constructing a
12
+ complete polished world from one prompt. Terrain composition, natural cliffs,
13
+ coastlines, beaches, underwater habitat, biome layout, cameras, and final scene
14
+ art direction remain host-authored or experimental work. For an existing
15
+ labeled scene, the public style runtime coordinates the selected bundle's
16
+ lighting, sky probe, grass/ground coupling, sky/cloud/water, and post defaults.
17
+
18
+ Use ToonLab as a focused runtime library (`@call-me-sensei/toonlab` on npm), as
19
+ an asset/preset authoring workspace, or as an asset-discovery service—not as a
20
+ one-shot world generator.
21
+
22
+ ## Versioned expectation: 0.4.19
23
+
24
+ For a correctly constructed and semantically labeled scene, one strict Call Me
25
+ Sensei bundle application is expected to establish the supported visual
26
+ baseline without scene-specific shader tuning: partly-cloudy sky and clouds,
27
+ renderer look, sun and blue sky fill, shared sun shadows and visible-cloud
28
+ shadows across every supported receiver (including water foam and direct-sun
29
+ highlights), character and material
30
+ routing, source-texture-preserving rocks, Ground Shader conversion,
31
+ meadow grass that adopts the ground's final lit/shadowed color with LOD and
32
+ finite-water exclusion, Anime water,
33
+ and reversible per-domain inspection.
34
+
35
+ The host still authors the level, geometry, asset selection and placement,
36
+ material labels, cameras, gameplay, dynamic physics, and navigation. Labeled
37
+ solid objects receive conservative static collision by default. Arbitrary imported assets are
38
+ not guaranteed to route automatically; strict mode blocks uncertain contracts
39
+ instead of guessing. See [What ToonLab 0.4.19 can and cannot
40
+ do](https://github.com/call-me-sensei/toonlab/blob/main/docs/capability-status.md)
41
+ for the complete public contract, measured imported-asset readiness, and the
42
+ required verification sequence.
43
+
44
+ ## Recommended scope today
45
+
46
+ The recommended production workflow is:
47
+
48
+ 1. **Style an existing scene** with Toon, Environment, Ground, Rock,
49
+ Tree/Grass/Flower, Water, and Post runtimes. Water still needs a host-authored
50
+ footprint, shore, and closed seabed.
51
+ 2. **Find and reuse assets** from the project/library, released ToonLab Gallery,
52
+ or policy-permitted open sources. Select by dimensions, taxonomy,
53
+ provenance, license, review status, and immutable public URLs before
54
+ downloading.
55
+ 3. **Connect through ToonLab MCP**—ToonLab OSS local MCP, ToonLab Pro remote
56
+ MCP, or both—for discovery, metadata, provenance, saved presets/files, and
57
+ policy-aware imports.
58
+ 4. **Author bounded outputs** such as portable settings, style bundles,
59
+ procedural grass/trees/rocks/textures, model-loading integrations, and
60
+ reusable exports.
61
+
62
+ Whole-world generation, terrain/biome/coast/cliff formation, automatic set
63
+ dressing, Weather/Climate composition, gameplay systems, and autonomous scene
64
+ classification belong under experimentation. See
65
+ [What ToonLab is ready for today](https://github.com/call-me-sensei/toonlab/blob/main/docs/capability-status.md)
66
+ for the exact boundary and a recommended agent brief.
15
67
 
16
68
  ## Quickstart
17
69
 
18
- **No install** — use the hosted labs at **[toonlab.io](https://toonlab.io)**:
70
+ **No install** — use the hosted Labs at **[toonlab.io](https://toonlab.io)**:
19
71
  define character, vegetation, and environment shaders; author stylized assets;
20
- tune water and sky systems; and export portable presets from the browser.
72
+ tune Water, Sky, and Cloud; and export portable presets from the browser.
21
73
 
22
74
  **As a library** in your own Three.js app:
23
75
 
@@ -25,16 +77,192 @@ tune water and sky systems; and export portable presets from the browser.
25
77
  npm install @call-me-sensei/toonlab
26
78
  ```
27
79
 
80
+ The package publishes declaration files for the root and every supported
81
+ subpath. TypeScript resolves them through each export's `types` condition. The
82
+ style-target, label, bundle-application, inspector, and official-catalog
83
+ placement APIs use exact contracts, including the closed style-domain union;
84
+ the remaining JavaScript surface uses source-inferred declarations with
85
+ permissive signatures only where inference cannot produce a valid public type.
86
+ Package verification compiles a clean packed consumer with `strict: true` and
87
+ `skipLibCheck: false`.
88
+
89
+ ```ts
90
+ import {
91
+ CALL_ME_SENSEI_STYLE_BUNDLE,
92
+ createStyleTargetLabel,
93
+ createToonLabInspector,
94
+ } from '@call-me-sensei/toonlab/styles';
95
+
96
+ const label = createStyleTargetLabel('natural.rock', {
97
+ targetId: 'island/cliff',
98
+ });
99
+ const inspector = createToonLabInspector({ bundle: CALL_ME_SENSEI_STYLE_BUNDLE });
100
+
101
+ await inspector.setDomainEnabled(label.domain, false);
102
+ ```
103
+
28
104
  **Run the labs locally** (this repo):
29
105
 
30
106
  ```bash
31
107
  git clone https://github.com/call-me-sensei/toonlab.git && cd toonlab
32
108
  npm install
109
+ npm run setup
33
110
  npm run dev
34
111
  ```
35
112
 
36
- Vite serves the labs at `http://localhost:5175`. See
37
- [Getting started](docs/getting-started.md) for a tour.
113
+ Setup starts local Postgres with Docker Compose, applies schema migrations and
114
+ official catalog seeds, and reports configured BYO-key providers. Set an
115
+ external `DATABASE_URL` to use an existing Postgres service instead. Vite
116
+ serves the labs at `http://127.0.0.1:5175`. See
117
+ [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) for a tour.
118
+
119
+ ### Open the full documentation locally
120
+
121
+ After `npm run dev` is running, open **[http://127.0.0.1:5175/docs/](http://127.0.0.1:5175/docs/)**.
122
+ The Docs page links to the runtime reference, the 15 live Labs, MCP setup,
123
+ asset policy, style bundles, and the generated settings reference. Use the
124
+ language menu in the site header to choose one of the 22 Call Me Sensei
125
+ languages; the selected language is remembered in your browser.
126
+
127
+ ### Complete local setup
128
+
129
+ Prerequisites:
130
+
131
+ - Git and Node.js 18 or newer.
132
+ - Docker Desktop on macOS/Windows, or Docker Engine with the Compose plugin on
133
+ Linux. Use Docker's official installation guides for
134
+ [macOS](https://docs.docker.com/desktop/setup/install/mac-install/),
135
+ [Windows](https://docs.docker.com/desktop/setup/install/windows-install/),
136
+ or [Linux](https://docs.docker.com/engine/install/).
137
+ - On macOS or Windows, open Docker Desktop once, finish its first-run setup,
138
+ and wait until it reports that the Docker engine is running.
139
+ - At least one provider API key only if you want local AI generation. Browsing,
140
+ editing, the Library, styles, and official catalog assets do not require one.
141
+
142
+ Install and configure:
143
+
144
+ ```bash
145
+ git clone https://github.com/call-me-sensei/toonlab.git
146
+ cd toonlab
147
+ npm install
148
+ cp .env.example .env
149
+ ```
150
+
151
+ Edit `.env` if needed:
152
+
153
+ ```dotenv
154
+ # The bundled local database; leave this unchanged for the simplest setup.
155
+ DATABASE_URL=postgresql://toonlab:toonlab@127.0.0.1:55432/toonlab
156
+
157
+ # Optional server-side provider keys. Add only providers you use.
158
+ TRIPO_API_KEY=
159
+ MESHY_API_KEY=
160
+ MESHY_API_KEYS=
161
+ GEMINI_API_KEY=
162
+ OPENAI_API_KEY=
163
+ ARK_API_KEY=
164
+ POLYPIZZA_API_KEY=
165
+ ```
166
+
167
+ Then initialize and start ToonLab:
168
+
169
+ ```bash
170
+ npm run setup
171
+ npm run dev
172
+ ```
173
+
174
+ Open `http://127.0.0.1:5175`. `npm run setup` starts Postgres, waits for it to
175
+ be healthy, applies every missing schema migration, applies every missing
176
+ official catalog dataset, and reports which providers are configured. It is
177
+ safe to run again.
178
+
179
+ The local MCP server exposes the same configured image/3D providers through
180
+ `generate_ai_asset`, `get_generation_job(s)`, and `save_generated_asset`.
181
+ Meshy text mode first generates a concept with the selected `image_model`,
182
+ then submits that PNG/JPEG to Meshy 7 as one trackable MCP job. The existing
183
+ `generate_asset` tool remains the deterministic procedural-recipe contract.
184
+
185
+ If setup reports that Docker Desktop is installed but not running, start it
186
+ and retry:
187
+
188
+ ```bash
189
+ open -a Docker # macOS
190
+ npm run setup
191
+ ```
192
+
193
+ ToonLab supports the normal `docker compose` plugin, Docker Desktop's bundled
194
+ Compose binary on macOS, and the legacy `docker-compose` command.
195
+
196
+ To use an existing Postgres server instead of Docker, set `DATABASE_URL` to
197
+ that server before running setup. ToonLab skips Docker and applies the same
198
+ migrations and catalog batches to the external database.
199
+
200
+ ### Local Generate and Library
201
+
202
+ Open `/generate/` to use the same asset-generation workflow as ToonLab Pro
203
+ without accounts, credits, billing, or Character Setup. The local workspace
204
+ supports:
205
+
206
+ - Meshy 7 image-to-3D and multi-image-to-3D, including status polling and GLB
207
+ downloads. Text prompts can run through a selected image model and chain
208
+ into Meshy 7 automatically. Tripo remains available for direct text/image/
209
+ multi-view generation and model segmentation.
210
+ - Gemini image, texture, and concept generation, including model,
211
+ aspect-ratio, resolution, image-count, reference-image, reference-URL,
212
+ previous-generation, prompt-enhancement, and automatic image-to-3D controls.
213
+ - Searchable generation history, full previews, bulk image-to-3D conversion,
214
+ multi-view composition, prompt reuse, cancellation, and explicit saving to
215
+ the Library.
216
+
217
+ Provider keys remain in `.env` and are read only by the local Node server.
218
+ Uploaded references, generated files, and provider downloads are stored as
219
+ opaque objects under `.toonlab/objects`; Postgres stores their metadata and
220
+ generation history. Saved generated assets appear in `/library/` with preview,
221
+ Open, asset-download, JSON-export, and delete actions.
222
+
223
+ ### Updating an existing installation
224
+
225
+ Use the same update sequence for every ToonLab release, whether it contains
226
+ application changes, database changes, new official assets, or all three:
227
+
228
+ ```bash
229
+ git pull --ff-only
230
+ npm install
231
+ npm run update
232
+ ```
233
+
234
+ Restart `npm run dev` afterward. `npm run update` is idempotent: it applies
235
+ only files that this database has not recorded yet. It does not recreate the
236
+ database, reset the Library, or delete local creations, drafts, files, styles,
237
+ bundles, or generation history.
238
+
239
+ Users do not need to inspect a release and choose a migration manually:
240
+
241
+ | Release content | Repository location | Applied automatically by |
242
+ |---|---|---|
243
+ | Database structure or behavior | `database/migrations/NNNN_name.sql` | `npm run setup` and `npm run update` |
244
+ | Official catalog metadata and immutable `https://assets.toonlab.io` R2 URLs | `database/seeds/catalog/NNNN_release.sql` | `npm run setup` and `npm run update` |
245
+ | Personal Library content | Local Postgres and `.toonlab/objects` | Never replaced by an official update |
246
+
247
+ Fresh installations receive the complete catalog by applying all versioned
248
+ seed batches in order. Existing installations apply only newer batches.
249
+ Catalog data therefore does **not** use a separate downloadable “current
250
+ seed,” and new datasets are **not** schema migrations. Keeping every released
251
+ batch in the repository gives fresh and upgraded installations the same final
252
+ catalog while preserving a simple, auditable upgrade path.
253
+
254
+ Applied filenames and SHA-256 digests are recorded in `schema_migrations` and
255
+ `catalog_seed_batches`. Never edit, rename, or replace a released migration or
256
+ seed file; add the next numbered file instead. The updater intentionally stops
257
+ if an already-applied file has changed.
258
+
259
+ Advanced troubleshooting commands are available, but are not required for a
260
+ normal installation:
261
+
262
+ ```bash
263
+ npm run db:migrate # apply schema files only
264
+ npm run db:seed # apply catalog dataset files only
265
+ ```
38
266
 
39
267
  **Building with an AI coding agent?** That is the fastest path through all of
40
268
  this — see [Build with an AI coding agent](#build-with-an-ai-coding-agent)
@@ -42,8 +270,9 @@ for the recommended setup (skills + MCP) and ready-to-paste starting prompts.
42
270
 
43
271
  ### Local MCP server
44
272
 
45
- Running the labs locally also creates a disk-backed `.toonlab/` workspace
46
- shared by the browser tools and the included MCP server. Open
273
+ Running the labs locally also creates a Postgres-backed `.toonlab/` workspace
274
+ shared by the browser tools and the included MCP server. Structured records
275
+ live in Postgres; `.toonlab/objects` contains opaque local binaries. Open
47
276
  `http://localhost:5175/settings/` for a checkout-specific configuration you
48
277
  can paste into an MCP-compatible coding tool.
49
278
 
@@ -55,86 +284,79 @@ npm run dev
55
284
  The local server can search the built-in procedural catalog and public CC0
56
285
  sources, read your saved presets and exported files, generate seeded recipes,
57
286
  and import assets into the project. It uses stdio, requires no account or
58
- OAuth, and keeps work on disk. See [Local MCP and workspace](docs/mcp.md).
287
+ OAuth, and keeps work local. See [Local MCP and workspace](https://github.com/call-me-sensei/toonlab/blob/main/docs/mcp.md) and
288
+ [Local database and public asset releases](https://github.com/call-me-sensei/toonlab/blob/main/docs/local-database-and-public-assets.md).
59
289
 
60
290
  ## The labs
61
291
 
62
292
  Lab UIs are development tools and are not published in the npm package. The
63
- Labs home (`/`) presents them by the artifact they author:
64
-
65
- - **Shader Labs** Character Shader Lab (`/shader-lab/`), Vegetation Shader
66
- Lab (`/vegetation-shader-lab/`), and Environment Shader Lab
67
- (`/environment-lab/`) each save one reusable IP-wide material treatment.
68
- - **Asset Labs** — Rock, Tree, Flower, Grass, Debris, and Texture Labs author
69
- geometry, material data, recipes, and exports for individual asset classes.
70
- Grass color palettes coordinate base, tip, and shadow tint as one set.
71
- - **World Systems** — Water Lab (`/water-lab/`) authors waves, surface
72
- shading, foam, reflections, interaction, and quality as one runtime preset;
73
- Sky Lab (`/sky-lab/`) authors the gradient, sun, clouds, stars, and cloud
74
- motion as one runtime preset. Their shader controls are embedded in the
75
- complete system labs rather than duplicated as separate shader labs.
76
- - **Playgrounds & demos** — Playground, Water Playground, Outdoor World, VFX
77
- Arena, Fauna Demo, and Ambient VFX Demo validate the authored artifacts in
78
- interactive scenes.
79
-
80
- Supporting editors remain available by direct URL: Weather Lab
81
- (`/weather-lab/`) coordinates current atmosphere, wind, precipitation,
82
- lightning, and surface state; Lighting Lab (`/lighting-lab/`) authors light
83
- rigs and budgets; Prop Lab (`/prop-lab/`) and Building Lab
84
- (`/building-lab/`) expose the broader procedural library; Gallery
85
- (`/gallery/`) searches supported open-asset sources. The procedural Catalog
86
- is exposed through `@call-me-sensei/toonlab/catalog`. See
87
- [Lab responsibilities](docs/lab-architecture.md) for the scope rules and
88
- [Getting started](docs/getting-started.md) for every direct route.
89
-
90
- Sky and Water are integrated runtime systems, not extra Shader Labs. Their
91
- `.settings` are authored preset data; current Lighting and Weather state is
92
- composed through named transient layers and exposed as `.renderedSettings`
93
- without changing exported presets. Create a `LightingSystem`, then call
94
- `lighting.attachWorld(world)` to own the Lighting layers and connect the
95
- world's Weather coordinator as modulation, so each system can detach only its
96
- own layer. The shared `world.setSun({ direction, color, sky })` adapter keeps
97
- the physical light/shadows, vegetation scene inputs, Sky, and Water aligned;
98
- Weather captures and restores every transient baseline it drives. Sky presets contain exactly 46
99
- portable art fields; dome radius and compile-time quality stay outside the
100
- document. Sky provides low/medium/high cloud graphs plus custom 1–5-octave
101
- quality and can rebuild its material with `setQuality()`. Water quality is a
102
- construction-time graph choice; switching it requires replacing/rebuilding
103
- the surface rather than calling `applySettings()`.
293
+ Labs home (`/`) presents the 15 live user-facing Labs by the artifact they
294
+ author. Every Lab can save and reopen its documented portable creation type;
295
+ preview cameras, stages, lights, playback, and comparison helpers remain
296
+ preview-only. See [The 15 live ToonLab Labs](https://github.com/call-me-sensei/toonlab/blob/main/docs/live-labs.md).
297
+
298
+ Focused ToonLab shaders, water, vegetation, generated assets, texture recipes,
299
+ Gallery assets, and metadata are intended for supplied scene content. Complete
300
+ scene layout, gameplay, dynamic physics, precise collision, navigation, and one-shot world
301
+ construction remain host responsibilities.
302
+
303
+ Every lab also uses one shared 24-hour preview harness with Dawn, Day, Sunset,
304
+ and Night captures. The Day reference must visibly show Call Me Sensei's
305
+ cool/blue shadow response. See the
306
+ [universal preview contract](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-preview-environment.md).
307
+
308
+ - **Shaders** — Character, Tree, Grass, Flower, Rock, Ground, Manufactured
309
+ Surface, Water, Sky, Cloud, and integrated Sky & Cloud authoring.
310
+ - **Asset Generation** Rock, Tree, and Grass recipes and projects.
311
+ - **Source & Texture Generation** — deterministic material-map recipes.
312
+
313
+ Every card links to a working editor. Integration examples are documented as
314
+ examples rather than additional Labs. See
315
+ [Lab responsibilities](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-architecture.md) for scope rules and
316
+ [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) for current direct routes.
317
+
318
+ Sky, Cloud, and Water Labs author reusable rendering artifacts. Your application
319
+ still supplies valid scene geometry, placement, current conditions, and the
320
+ lighting coordination that keeps the sun, shadows, vegetation, sky, and water
321
+ aligned. Current time and weather remain runtime state and do not alter exported
322
+ presets. Sky quality can be rebuilt with `setQuality()`; Water quality is a
323
+ construction-time graph choice and requires rebuilding the surface.
104
324
 
105
325
  Every URL parameter has a HUD control. In local development, lab state is
106
- mirrored into `.toonlab/` so the MCP server and browser share it; existing
107
- `localStorage` and IndexedDB data migrate on first run. Static hosted builds
326
+ stored in Postgres so the MCP server and browser share it; existing
327
+ `localStorage` and IndexedDB data migrate on first run and browser copies are
328
+ retired after the verified commit. Static hosted builds
108
329
  fall back to browser storage. **Reset Lab** clears the current lab state.
109
330
  Point any model-aware lab at your own model with the Model URL input or
110
331
  `?model=` — see
111
- [Characters](docs/characters.md).
332
+ [Characters](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md).
112
333
 
113
334
  ## What's inside
114
335
 
336
+ The current release exposes the public runtime clusters below. Public API status and
337
+ end-to-end capability maturity are different: the recommended workflow is to
338
+ apply focused runtimes to supplied scene content. Whole-world composition
339
+ remains host-owned even though focused Sky and Cloud authoring is live.
340
+ Lighting, VFX, renderer ownership,
341
+ camera behavior, and game feel remain host-owned or pre-beta.
342
+
115
343
  | Cluster | Import | What you get |
116
344
  |---|---|---|
117
- | Toon character shading | `@call-me-sensei/toonlab/toon` | Modern anime character shader: cel bands with art-directed face lighting, skin-tone shadow management, shadow-color HSV control, scene/self/contact shadows, average-shadow smoothing, rim light (fresnel or screen-space depth), stylized + anisotropic hair highlights, eye catchlights, role-aware specular, source map routing (normal/AO/emissive/MatCap/ramp/detail), inverted-hull outlines, glitter, stickers, perspective removal, shell fur, dither fades 23 settings groups, all preset-serializable. [Docs](docs/toon-shading.md) |
118
- | Environment shading | `@call-me-sensei/toonlab/environment` | Modern anime-style scene shader for texture packs, standard glTF, and untextured scenes: material-role classification, wrapped lighting, packed-map hints, window cutouts, sun/lamp rigs, time-of-day, six-direction ambient probe, planar floor reflections, BVH vertex-AO baking, height fog, cloud shadows. [Docs](docs/environment.md) |
119
- | Lighting | `@call-me-sensei/toonlab/lighting` | Versioned lighting recipes and looks, physical/artistic intensity helpers, reusable luminaire/rig/look/quality presets, deterministic light and shadow budgets, capability diagnostics, runtime Three.js realization, and a data-only Unreal Engine 5.8 MegaLights/Lumen handoff. [Docs](docs/lighting.md) |
120
- | Weather | `@call-me-sensei/toonlab/weather` | Shared cross-system weather coordinator with 22 presets, smooth transitions, one-draw GPU precipitation (rain, snow, sleet, hail, dust), lightning/thunder events, and normalized wetness/snow/ice outputs. It drives sky, sun, fog, cloud shadows, wind, vegetation, water, fauna, and ambient effects through their public adapters. [Docs](docs/weather.md) |
121
- | Water | `@call-me-sensei/toonlab/water` | Fully procedural integrated water system: Gerstner wave stack with a calm→storm dial, wave sets, plunging breakers you can surf, three-stop absorption color, refraction/caustics/foam, GPU ripple sim, splashes, wakes, rain, kelp, underwater view, construction-time quality, and a CPU mirror of the whole spectrum for buoyancy. [Docs](docs/water.md) |
122
- | Vegetation | `@call-me-sensei/toonlab/vegetation` | Instanced grass and flower fields, procedural trees/flowers with serializable recipes, coordinated grass palettes (base, tip, and shadow tint), and one semantic-role `VegetationShaderProfile` shared across grass, foliage, flowers, bark, and stems. Asset identity and current wind/weather remain separate. [Docs](docs/vegetation-sky.md) |
123
- | Paths, roads & bridges | `@call-me-sensei/toonlab/pathgen` | Seeded path networks routed over any `heightAt`: cost-field router (slope/water aware), hand-drawn ribbon overlay in dirt/stone/planks, arched plank bridges with collision, stepped stone climbs, flattened `paths.heightAt` for walkability, scatter exclusion mask, minimap overlay. |
124
- | Props & placement | `@call-me-sensei/toonlab/propgen` | The universal placement pipeline (the PropAsset contract: grounded, collided, instanced, hi/lo LOD by true 3D distance) + 12 seeded prop generators across fences, lanterns, signposts, stairs, milestones, wells, crates, firewood, torii, piers, stone walls, benches. `propAssetFromObject` drops any imported GLB into the same pipeline. |
125
- | Buildings | `@call-me-sensei/toonlab/buildinggen` | Shape-grammar stylized exteriors (cottage/shed/farmhouse/watchtower/shrine): seeded recipes, timber facades with windows that never intersect beams, always-overhanging roofs (gable/hip/shed/pagoda-ish), buried foundation skirts for slopes, 6 draw calls per building, grammar invariants asserted across 1000 seeds. |
126
- | Villages & POIs | `@call-me-sensei/toonlab/villagegen` | Seeded settlements composed from paths + props + buildings: site scoring, main-street layout with parcels facing the street, archetypes as data (village, fishing hamlet, shrine, campsite, ruin), seeded place names, world `pois` option that roads everything together. |
127
- | Fauna | `@call-me-sensei/toonlab/fauna` | Instanced GPU-animated ambient creatures: flocking birds that perch and flush, butterflies over flower masks, hovering dragonflies, schooling koi staggered boids, hard population budgets, 1 ms CPU at defaults. |
128
- | Ambient VFX | `@call-me-sensei/toonlab/ambientfx` | One GPU particle backbone, five effects: falling petals and leaves, dusk fireflies, backlit pollen, shoreline mist follow-window emission, shared wind with grass, time-of-day gates, 3 draw calls total. |
129
- | Asset catalog | `@call-me-sensei/toonlab/catalog` | Every recipe/preset as a searchable manifest with one headline call: `catalog.spawn(id, { seed })` a placeable PropAsset for props, buildings, trees, rocks, and debris. `catalog.addSource(url)` mounts remote registries. |
130
- | Sky | `@call-me-sensei/toonlab/sky` | Integrated gradient/sun/painterly-cloud/star system with exactly 46 portable art fields, named live scene layers, compile-time quality tiers/custom 1–5 cloud octaves, meaningful built-in looks, and water-reflection compatibility. [Docs](docs/sky.md) |
131
- | Post-processing | `@call-me-sensei/toonlab/post` | Optional single-pipeline compositor: character-aware bloom, color grade, LUT, vignette, screen outline, depth cue schema-driven, preset-serializable. [Docs](docs/post-processing.md) |
132
- | Camera | `@call-me-sensei/toonlab/camera` | Extensible camera operator stack, generated recipe/preset documents, follow/framing/collision/damping/noise/impulse behavior, and a director for blending reusable rigs. [Style domain docs](docs/style-labs.md#camera) |
133
- | Game feel | `@call-me-sensei/toonlab/game-feel` | Event-driven response scheduler for camera punches, hit-stop/time warp, squash, flashes, audio, and haptics through capability-safe adapters, extensible effect factories, and bounded concurrency. [Style domain docs](docs/style-labs.md#game-feel) |
134
- | Procedural textures | `@call-me-sensei/toonlab/texgen` | Seamless CPU-baked PBR texture generator: 25 tileable pattern/noise generators, layered detail + colored overlays (moss, rust, grime), five-stop cel-capable color ramp, cavity/sheen hand-painted read, derived normal/AO/roughness/metalness/height/ORM/emissive maps, 60+ presets, and a natural-language recipe mapper (offline keywords or BYO-key Gemini/OpenAI). [Docs](docs/texture-lab.md) |
135
- | Character pipeline | `@call-me-sensei/toonlab/character` | Bone-role adapters for VRM/MMD/Mixamo/Rigify rigs, native-clip conventions, Mixamo retarget helpers, and a procedural freestyle swim clip. [Docs](docs/characters.md) |
136
- | Model loaders | `@call-me-sensei/toonlab/loaders` | Optional GLB/glTF, VRM 0+1, PMX/PMD, FBX, OBJ, and text-USDZ loading helpers. Kept off the root import so apps that do not load models avoid loader dependencies. [Docs](docs/characters.md) |
137
- | Debug panel | `@call-me-sensei/toonlab/debug` | One-line schema-driven tuning GUI for any settings module — the same panel the labs use. [Docs](docs/debug-panel.md) |
345
+ | Styles and bundles | `@call-me-sensei/toonlab/styles` | Local, versioned style-bundle documents that coordinate domain profiles without storing asset identity or current scene state. Create, validate, serialize, parse, and resolve JSON with no account or database; hosts currently route explicitly labeled assets through each owning runtime. [Contract](https://github.com/call-me-sensei/toonlab/blob/main/docs/styles-and-bundles.md) |
346
+ | Toon character shading | `@call-me-sensei/toonlab/toon` | Modern anime character shader: cel bands with art-directed face lighting, skin-tone shadow management, shadow-color HSV control, scene/self/contact shadows, average-shadow smoothing, rim light (fresnel or screen-space depth), stylized + anisotropic hair highlights, eye catchlights, role-aware specular, source map routing (normal/AO/emissive/MatCap/ramp/detail), inverted-hull outlines, glitter, stickers, perspective removal, shell fur, dither fades — 23 settings groups, all preset-serializable. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/toon-shading.md) |
347
+ | Environment shading | `@call-me-sensei/toonlab/environment` | Modern anime-style scene shader for texture packs, standard glTF, and untextured scenes: material-role classification, wrapped lighting, packed-map hints, window cutouts, sun/lamp rigs, time-of-day, six-direction ambient probe, planar floor reflections, BVH vertex-AO baking, height fog, cloud shadows. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/environment.md) |
348
+ | Water | `@call-me-sensei/toonlab/water` | Focused water treatment for a host-authored water footprint, continuous shore, and closed seabed: Gerstner waves, absorption color, refraction/caustics/foam, ripples, splashes, wakes, kelp, underwater treatment, and CPU buoyancy sampling. It does not design the coast or underwater habitat. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/water.md) |
349
+ | Vegetation | `@call-me-sensei/toonlab/vegetation` | Instanced grass and flower fields; the 12 named pre-species legacy trees; and a focused procedural broadleaf `BranchTree` with deterministic branching, five leaf silhouettes, caller-supplied leaf/bark textures, and a portable recipe. Package-generated Call Me Sensei trees preserve authored bark first and otherwise select a registered deterministic bark surface instead of a bare trunk. The 165-species research roster remains repository-only experimental work. Independent Tree, Grass, and Flower shader profiles share one semantic-role renderer family. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/vegetation-sky.md) |
350
+ | Rock shader | `@call-me-sensei/toonlab/rock-shader` | Detailed, versioned rock-material profiles with projected detail, distance tint, normal fading, striping, moss and optional top layers, plus explicit source-albedo and vertex-color/AO integration. Call Me Sensei is the default. Geometry generation remains separate in `rockgen`. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/rock-shader.md) |
351
+ | Ground shader | `@call-me-sensei/toonlab/ground-shader` | Splat-weighted anime terrain with slope/cliff detail, shoreline and weather response, HDR sun/shade controls, safe shadow defaults, and flat-albedo ground-field output for vegetation adoption. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/ground-shader.md) |
352
+ | Sky | `@call-me-sensei/toonlab/sky` | Reusable atmosphere, palette, sun, moon, stars, and god-ray settings authored by Sky Lab and Sky & Cloud Lab. Your application coordinates final lighting and scene state. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/sky.md) |
353
+ | Cloud | `@call-me-sensei/toonlab/cloud` | Reusable cloud shape, erosion, density, lighting, wind, cirrus, haze, fade, style, and hero-cloud recipe controls authored by Cloud Shader Lab and Sky & Cloud Lab. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/cloud-shader.md) |
354
+ | Post-processing | `@call-me-sensei/toonlab/post` | Optional single-pipeline compositor: character-aware bloom, color grade, LUT, vignette, screen outline, depth cue — schema-driven, preset-serializable. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/post-processing.md) |
355
+ | Procedural textures | `@call-me-sensei/toonlab/texgen` | Seamless CPU-baked PBR texture generator: 25 tileable pattern/noise generators, layered detail + colored overlays (moss, rust, grime), five-stop cel-capable color ramp, cavity/sheen hand-painted read, derived normal/AO/roughness/metalness/height/ORM/emissive maps, 60+ presets, and a natural-language recipe mapper (offline keywords or BYO-key Gemini/OpenAI). [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/texture-lab.md) |
356
+ | Character pipeline | `@call-me-sensei/toonlab/character` | High-level load/style/rig/animate lifecycle runtime, bone-role adapters for VRM/MMD/Mixamo/Rigify rigs, native-or-packaged locomotion fallback, and procedural freestyle swim. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md) |
357
+ | Scene surface runtime | `@call-me-sensei/toonlab/runtime` | One strict heightfield contract for grounded props/characters, terrain-aware meadow scatter, shoreline water bed/phase/state wiring, source-texture continuity, and actual labeled shadow-coverage readiness. The host still authors terrain and XZ layout. |
358
+ | Scene collision runtime | `@call-me-sensei/toonlab/runtime` | Automatic reversible collision discovery for labeled static solids, lightweight walkable blockers by default, strict readiness diagnostics, and public Rapier/custom-adapter integration. |
359
+ | Model loaders | `@call-me-sensei/toonlab/loaders` | Optional GLB/glTF, VRM 0+1, PMX/PMD, FBX, OBJ, and text-USDZ loading helpers. Kept off the root import so apps that do not load models avoid loader dependencies. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md) |
138
360
 
139
361
  The main `vegetation` barrel exposes the complete runtime. Smaller consumers
140
362
  can import the same bindings from
@@ -142,63 +364,178 @@ can import the same bindings from
142
364
  `@call-me-sensei/toonlab/grass-palettes`; package verification asserts that
143
365
  the focused subpaths and root export reference the identical implementations.
144
366
 
145
- Zero texture assets in the library: water, sky, grass, flowers, trees, and
146
- splashes are all procedural. The one bundled model is a CC0 mannequin with 45
147
- embedded animation clips.
148
-
149
- ## Library usage
367
+ ### Default Call Me Sensei grass
150
368
 
151
- ### A complete open world in one screen of code
369
+ ToonLab's default grass is its own deterministic procedural implementation.
370
+ The package generates the `primary` or denser `secondary` clump, LOD0/1/2,
371
+ blade attributes, and material entirely from code. The public factory uses the
372
+ primary `call_me_sensei_clump` meadow by default and has no GLB or image
373
+ dependency. Its accepted look is continuous upright coverage, full ground
374
+ color adoption, and a bright texture-free watercolor wash—not isolated dark
375
+ tufts or generic procedural blades:
152
376
 
153
377
  ```js
154
- import { createStylizedTerrain, createStylizedWorld, createWorldMinimap } from '@call-me-sensei/toonlab';
155
-
156
- // Seeded terrain generator — ANY seed is a valid, playable world. One knob
157
- // per big idea: waterCoverage (how much water), height (mountain range),
158
- // depth (basins), size (number or { x, z }), floatingIslands, sinkholes.
159
- const terrain = createStylizedTerrain({ seed: 42, size: 1000, archetype: 'terracedKarst' });
160
- const terrainRoot = new THREE.Group();
161
- terrainRoot.add(terrain.root);
162
- scene.add(terrainRoot);
163
-
164
- // Environment shading, aligned sun + real shadows, sky, anime water, LOD
165
- // forests (billboard far trees), follow-window grass, cloud shadows,
166
- // unified three-layer fog, and collision — all on by default.
167
- const world = await createStylizedWorld({
168
- renderer, scene, camera,
169
- terrain: { heightAt: terrain.heightAt, root: terrainRoot, size: terrain.meshExtent },
170
- water: { level: terrain.waterLevel },
171
- weather: { preset: 'call_me_sensei' }, // 'snow' | 'hail' | 'thunderstorm' | ...
172
- followTarget: character, // your character root (optional): splashes, wakes, grass push
378
+ import { createSceneSurfaceRuntime } from '@call-me-sensei/toonlab/runtime';
379
+ import { createSceneStyleRuntime, createStyleTarget } from '@call-me-sensei/toonlab/styles';
380
+
381
+ const surface = createSceneSurfaceRuntime({ bounds, heightAt, waterLevel: 0 });
382
+ const grass = await surface.createGrassField({
383
+ count: 12000,
384
+ min: { x: -40, z: -30 },
385
+ max: { x: 40, z: 30 },
386
+ // variant: 'secondary',
173
387
  });
174
- character.position.copy(terrain.spawn); // probed: walkable, near a shore
388
+ const water = surface.createWaterSurface({
389
+ width: 80,
390
+ depth: 50,
391
+ position: { x: 0, z: -25 },
392
+ });
393
+ scene.add(grass);
394
+ scene.add(water);
395
+
396
+ const look = createSceneStyleRuntime({ renderer, scene, sky, water });
397
+ await look.apply('call-me-sensei', {
398
+ targets: [
399
+ createStyleTarget('terrain', 'terrain.ground', ground),
400
+ createStyleTarget('meadow', 'vegetation.grass', grass),
401
+ ],
402
+ });
403
+
404
+ // The style runtime updates its ground-color field before the grass renders.
405
+ look.update(delta, camera);
406
+ grass.update(delta, camera);
175
407
 
176
- const clock = new THREE.Clock();
177
- renderer.setAnimationLoop(() => {
178
- world.update(clock.getDelta());
179
- renderer.render(scene, camera);
408
+ // Fail closed after the package shadow pass has produced coverage telemetry.
409
+ surface.assertReady({
410
+ camera,
411
+ styleRuntime: look,
412
+ requireShadowDomains: ['character', 'manufactured.surface', 'vegetation.tree'],
413
+ });
414
+ ```
415
+
416
+ Large fields are spatially chunked by default. Each update rejects chunks and
417
+ placements outside the camera frustum, then compacts only visible records into
418
+ the same three LOD draw buffers. `chunkSize` (default 16 m), `cullPadding`
419
+ (default 1.5 m), and `frustumCulling` are construction options;
420
+ `grass.cullingStats` reports the current visible/culled instance and chunk
421
+ counts. Do not disable this for an outdoor meadow merely to work around bounds.
422
+
423
+ `CALL_ME_SENSEI_GRASS_CLUMP_VARIANTS` exposes the stable procedural recipes;
424
+ `CALL_ME_SENSEI_GRASS_MATERIAL_TEXTURE_URLS` is an empty compatibility binding
425
+ because the material has no image dependencies. The default factory returns a
426
+ `StylizedGrassClumpField`. `RetainedGrassClumpField` remains the generic
427
+ caller-supplied geometry/material container and does not load assets by itself.
428
+ The Call Me Sensei default preserves sampled ground hue: green ground produces
429
+ only lighter/darker green blades. Optional hue shift/desaturation remain public
430
+ profile parameters for other authored styles. Its recipe-v3 LOD0/1/2 topology
431
+ uses 40/14/6 primary blades and compensates retained stroke width so zooming
432
+ does not make the underlying terrain appear to change color.
433
+
434
+ The supported tree set is intentionally the proven pre-species surface.
435
+ Use a named legacy silhouette directly:
436
+
437
+ ```js
438
+ import {
439
+ LEGACY_TREE_IDS,
440
+ createLegacyTree,
441
+ } from '@call-me-sensei/toonlab/vegetation';
442
+
443
+ console.log(LEGACY_TREE_IDS); // straight, leaning, see-through, ...
444
+ const legacyTree = createLegacyTree('golden-gingko', {
445
+ trunkMap: barkTexture,
446
+ vegetationShader: { preset: 'call_me_sensei' },
180
447
  });
448
+ scene.add(legacyTree);
181
449
  ```
182
450
 
183
- **Bring your own terrain instead** the generator is optional. The whole
184
- contract is a pure `heightAt(x, z)` in meters plus your displaced mesh under
185
- `terrain.root`; masks, scatter, collision, and the minimap all derive from
186
- it:
451
+ For a configurable recursive branch-type broadleaf, use the focused wrapper:
187
452
 
188
453
  ```js
189
- const heightAt = (x, z) => 12 * Math.sin(x / 90) * Math.cos(z / 90); // yours
190
- const world = await createStylizedWorld({
191
- renderer, scene, camera,
192
- terrain: { heightAt, root: myTerrainRoot, size: 1200 },
193
- water: { level: 0 },
454
+ import { BranchTree } from '@call-me-sensei/toonlab/vegetation';
455
+
456
+ const tree = new BranchTree({
457
+ seed: 18,
458
+ branches: { levels: 3, children: 5, angle: 52 },
459
+ leaves: { shape: 'oak', color: [0.18, 0.48, 0.22], map: leafTexture },
460
+ trunk: { color: [0.48, 0.29, 0.16], map: barkTexture },
194
461
  });
462
+ scene.add(tree);
195
463
  ```
196
464
 
197
- Add a clickable minimap with `createWorldMinimap({ heightAt, size,
198
- waterLevel, onPick })`, and solid rocks/trees with the built-in
199
- `world.collision` (`addCircles` for your own props, `resolve(position,
200
- radius)` per frame). Archetypes: `terracedKarst`, `lakeland`, `alpine`,
201
- `rollingPlains`, `archipelago`.
465
+ `teardrop`, `round`, `oak`, `maple`, and `gingko` are the supported leaf
466
+ shapes. Botanical species generation is not a public package claim.
467
+
468
+ Water, sky, flowers, trees, grass, and splashes keep procedural defaults, while
469
+ legacy trees and BranchTree may use caller-owned leaf and bark textures. The
470
+ Call Me Sensei tree path resolves bark in this order: explicit
471
+ `trunkSurfaceProfile`, authored `trunkMap`, then the registered
472
+ `call-me-sensei-bark-v1` fallback. Use `getTreeSurfaceProfileOptions()` when a
473
+ developer or coding agent should choose a different registered surface; use
474
+ `trunkSurfaceProfile: 'none'` only for an intentional flat-color trunk. Trunks
475
+ cast and receive through the package shared shadow pass by default.
476
+
477
+ The optional CC0 Quaternius mannequin is also not bundled in npm: its immutable R2
478
+ URL, byte count, hash, source, and license are exposed as metadata. A host may
479
+ download that test fixture or use its own mannequin:
480
+
481
+ ```js
482
+ import { TOONLAB_MANNEQUIN_ASSET } from '@call-me-sensei/toonlab/character';
483
+ import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
484
+
485
+ const { scene: mannequin, animations } = await new GLTFLoader().loadAsync(
486
+ TOONLAB_MANNEQUIN_ASSET.url,
487
+ );
488
+ ```
489
+
490
+ ## Library usage
491
+
492
+ The local Library is discoverable through the same vocabulary as Gallery:
493
+ search names, descriptions, types, and durable tags in `/library/`, or use
494
+ `list_my_creations` / `search_assets({ source: 'library' })` through MCP.
495
+ Saved-object tags are ASCII lowercase slugs (`a-z`, `0-9`, and single hyphen
496
+ separators; maximum 10 tags and 32 characters each) and are
497
+ stored independently from the portable document so they remain searchable
498
+ after reload and edits.
499
+
500
+ Start by loading one style bundle, explicitly labeling the scene targets, and
501
+ preflighting the complete routing plan. Strict mode is atomic: if any target
502
+ is unlabeled, unsupported, or missing an adapter, nothing is mutated.
503
+
504
+ ```js
505
+ import {
506
+ CALL_ME_SENSEI_STYLE_BUNDLE,
507
+ applyStyleBundle,
508
+ } from '@call-me-sensei/toonlab/styles';
509
+
510
+ const targets = [
511
+ {
512
+ id: 'hero',
513
+ domain: 'character',
514
+ subject: characterRoot,
515
+ apply: (root, settings) => applyCharacterProfile(root, settings),
516
+ },
517
+ {
518
+ id: 'terrain',
519
+ domain: 'terrain.ground',
520
+ subject: terrainRoot,
521
+ apply: (root, settings) => applyGroundProfile(root, settings),
522
+ },
523
+ {
524
+ id: 'forest',
525
+ domain: 'vegetation.tree',
526
+ subject: treeRoot,
527
+ apply: (root, settings) => applyTreeProfile(root, settings),
528
+ },
529
+ ];
530
+
531
+ await applyStyleBundle(CALL_ME_SENSEI_STYLE_BUNDLE, { targets });
532
+ ```
533
+
534
+ Use the domain-specific runtimes below to implement each `apply` callback.
535
+ Asset identity stays in project/library sourcing configuration; it is never
536
+ embedded in the style bundle. Custom adapters and custom assets must be
537
+ recorded in `.toonlab/reports/style-asset-gaps.json` and
538
+ `TOONLAB_ASSET_GAPS.md`.
202
539
 
203
540
  ### Individual clusters
204
541
 
@@ -217,18 +554,24 @@ applyToonShader(characterRoot, { settings });
217
554
 
218
555
  ```js
219
556
  import { WaterSurface } from '@call-me-sensei/toonlab/water';
220
- import { StylizedSky } from '@call-me-sensei/toonlab/sky';
221
557
 
222
- const water = new WaterSurface({ width: 200, depth: 200, preset: 'lake' });
558
+ // The host supplies a continuous shore and closed bed sampler.
559
+ const water = new WaterSurface({
560
+ width: 200,
561
+ depth: 200,
562
+ preset: 'lake',
563
+ bedHeight,
564
+ });
223
565
  scene.add(water);
224
- const sky = new StylizedSky();
225
- scene.add(sky);
226
566
 
227
567
  // per frame, before renderer.render(scene, camera):
228
568
  water.update(renderer, scene, camera, delta);
229
- sky.update(delta, camera);
230
569
  ```
231
570
 
571
+ Add Sky and Cloud after the host scene has one coordinated sun, light rig, and
572
+ current-condition source. Their focused Labs produce the portable settings;
573
+ the application owns final scene composition.
574
+
232
575
  Inside this repo the labs import from `../../src/...`; the `@call-me-sensei/toonlab/...`
233
576
  specifiers are what you use once the package is installed from npm. The
234
577
  shader clusters are TSL/NodeMaterial modules for Three's WebGPU renderer
@@ -241,60 +584,77 @@ stack, with WebGL2 fallback through the same TSL path.
241
584
  MCP setup, the prompt cookbook, and the full settings reference. Hosted
242
585
  features are marked "Pro"; the extended hosted docs live at
243
586
  [toonlab.io/docs](https://toonlab.io/docs).
244
- - [Lab responsibilities](docs/lab-architecture.md) — the boundary between
245
- Shader Labs, Asset Labs, World Systems, and preview-only scene state.
246
- - [Getting started](docs/getting-started.md) — clone, run, tour the labs,
587
+ - [Lab responsibilities](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-architecture.md) — the finalized artifact,
588
+ production-method, editor/library, and preview-state boundaries.
589
+ - [The 15 live ToonLab Labs](https://github.com/call-me-sensei/toonlab/blob/main/docs/live-labs.md) — each user-facing editor, saved artifact, runtime, and generation workflow.
590
+ - [Universal lab preview environment](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-preview-environment.md) —
591
+ shared 24-hour controls, four-state regression matrix, and required cool/blue
592
+ daylight-shadow verification.
593
+ - [Rock shader](https://github.com/call-me-sensei/toonlab/blob/main/docs/rock-shader.md) — the separate generator/material
594
+ architecture, 58-field public configuration, import policy, and bundle use.
595
+ - [Styles, style bundles, and asset routing](https://github.com/call-me-sensei/toonlab/blob/main/docs/styles-and-bundles.md) —
596
+ rendering domains, required asset labels, fallback policy, bundle ownership,
597
+ OSS application boundaries, and the shader/lab migration contract.
598
+ - [Open asset library and scene coverage](https://github.com/call-me-sensei/toonlab/blob/main/docs/open-asset-library.md) —
599
+ measurable scene-kit coverage, curated stylized generator base sets,
600
+ CC0/CC-BY provenance, gallery routing, and generation fallback policy.
601
+ - [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) — clone, run, tour the labs,
247
602
  load your own models.
248
- - [Toon character shading](docs/toon-shading.md)
249
- - [Environment shading](docs/environment.md)
250
- - [Lighting](docs/lighting.md)
251
- - [Weather system](docs/weather.md)
252
- - [Generative style labs](docs/style-labs.md) — Post & Color, Camera, Motion,
253
- UI Theme, Biome, Soundscape, and Game Feel; shared recipes, MCP authoring,
254
- package runtimes, quality budgets, and engine design references.
255
- - [Water](docs/water.md)
256
- - [Sky system](docs/sky.md)
257
- - [Vegetation](docs/vegetation-sky.md)
258
- - [Post-processing](docs/post-processing.md)
259
- - [Texture Lab and texgen](docs/texture-lab.md)
260
- - [Characters and animation](docs/characters.md)
261
- - [Debug panel](docs/debug-panel.md)
262
- - [World scale and world presets](docs/world-scale.md) — the meters
263
- convention, open-world scale presets, rock quality tiers, and vegetation
264
- scatter helpers.
265
- - [Settings reference](docs/settings-reference.md) — every tunable field,
603
+ - [Current capability status](https://github.com/call-me-sensei/toonlab/blob/main/docs/capability-status.md) — recommended
604
+ existing-scene, Gallery, MCP, and focused-authoring workflows versus
605
+ experimental scene-construction claims.
606
+ - [Toon character shading](https://github.com/call-me-sensei/toonlab/blob/main/docs/toon-shading.md)
607
+ - [Manufactured environment materials](https://github.com/call-me-sensei/toonlab/blob/main/docs/urban-prop-surface-roles.md) —
608
+ the layered classify-once contract for props, vehicles, buildings,
609
+ interiors, and reusable material-aware shaders.
610
+ - [Environment shading](https://github.com/call-me-sensei/toonlab/blob/main/docs/environment.md)
611
+ - [Styles and bundles](https://github.com/call-me-sensei/toonlab/blob/main/docs/styles-and-bundles.md) — apply coordinated treatments to explicitly labeled scene targets.
612
+ - [Current release notes](https://github.com/call-me-sensei/toonlab/blob/main/docs/release-notes.md)
613
+ - [Water](https://github.com/call-me-sensei/toonlab/blob/main/docs/water.md)
614
+ - [Sky system](https://github.com/call-me-sensei/toonlab/blob/main/docs/sky.md)
615
+ - [Cloud shader](https://github.com/call-me-sensei/toonlab/blob/main/docs/cloud-shader.md)
616
+ - [Vegetation](https://github.com/call-me-sensei/toonlab/blob/main/docs/vegetation-sky.md)
617
+ - [Post-processing](https://github.com/call-me-sensei/toonlab/blob/main/docs/post-processing.md)
618
+ - [Texture Lab and texgen](https://github.com/call-me-sensei/toonlab/blob/main/docs/texture-lab.md)
619
+ - [Characters and animation](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md)
620
+ - [Settings reference](https://github.com/call-me-sensei/toonlab/blob/main/docs/settings-reference.md) — every tunable field,
266
621
  generated from the schemas (`node scripts/generate-settings-reference.mjs`).
267
- - [Shader constants](docs/shader-constants.md) — the deliberately unexposed
622
+ - [Shader constants](https://github.com/call-me-sensei/toonlab/blob/main/docs/shader-constants.md) — the deliberately unexposed
268
623
  constants and where they live.
269
624
 
270
625
  ## Build with an AI coding agent
271
626
 
272
627
  ToonLab is designed to be driven by a coding agent (Claude Code, Codex,
273
628
  Cursor, …). The recommended setup has three parts: give the agent the ToonLab
274
- skills, connect an MCP server for asset discovery, then start from a goal
275
- prompt and iterate. Everything the agent needs ships in this repo under
276
- `agents/` (not in the npm package the package stays runtime-only).
629
+ skills, connect whichever ToonLab OSS local or ToonLab Pro remote MCP surface
630
+ the developer has, then start from a goal prompt and iterate. The npm package
631
+ ships runtime source and the small text-only `agents/` guidance bundle. It
632
+ ships no models, textures, labs, examples, review fixtures, or other binary or
633
+ visual assets.
277
634
 
278
635
  ### 1. Install the ToonLab skills in your game project
279
636
 
280
- The skills teach the agent the assembly order, the frame-loop contract, and
281
- each subsystem's API so it wires ToonLab correctly on the first try. Start
282
- with `game-dev`; the other twelve cover individual features (water, weather,
283
- lighting, camera, game feel, …).
637
+ The skills teach the agent the runtime boundary, asset-discovery order,
638
+ frame-loop contract, and each focused subsystem API. Start with `game-dev` for
639
+ integration into an existing scene and `asset-sourcing` for Gallery/MCP work.
640
+ `outdoor-world`, `karst-cliff-construction`, and current Sky/Cloud guidance are
641
+ experimental research aids: use them to qualify a bounded experiment or record
642
+ a gap, not as a promise that an agent can build a polished world in one pass.
284
643
 
285
644
  ```bash
286
645
  # Claude Code — feature skills + project guidance
287
646
  mkdir -p .claude/skills
288
- cp -R path/to/toonlab/agents/skills/claude/* .claude/skills/
289
- cat path/to/toonlab/agents/codex/AGENTS.md >> CLAUDE.md
647
+ cp -R node_modules/@call-me-sensei/toonlab/agents/skills/claude/* .claude/skills/
648
+ cat node_modules/@call-me-sensei/toonlab/agents/claude/CLAUDE.md >> CLAUDE.md
290
649
 
291
650
  # Codex — shared guide + Codex-oriented skills
292
- cat path/to/toonlab/agents/codex/AGENTS.md >> AGENTS.md
293
- cp -R path/to/toonlab/agents/skills/codex path/to/your-game/docs/toonlab-skills
651
+ cat node_modules/@call-me-sensei/toonlab/agents/codex/AGENTS.md >> AGENTS.md
652
+ mkdir -p docs/toonlab-skills
653
+ cp -R node_modules/@call-me-sensei/toonlab/agents/skills/codex/* docs/toonlab-skills/
294
654
 
295
655
  # Cursor — rule file
296
656
  mkdir -p .cursor/rules
297
- cp path/to/toonlab/agents/cursor/toonlab.mdc .cursor/rules/
657
+ cp node_modules/@call-me-sensei/toonlab/agents/cursor/toonlab.mdc .cursor/rules/
298
658
  ```
299
659
 
300
660
  See [`agents/README.md`](agents/README.md) for the full layout.
@@ -321,7 +681,7 @@ into a disk-backed `.toonlab/` workspace:
321
681
 
322
682
  If you run the labs from a checkout (`npm run dev`), open
323
683
  `http://localhost:5175/settings/` for a ready-made config instead. See
324
- [Local MCP and workspace](docs/mcp.md).
684
+ [Local MCP and workspace](https://github.com/call-me-sensei/toonlab/blob/main/docs/mcp.md).
325
685
 
326
686
  **ToonLab Pro (remote, OAuth).** [toonlab.io](https://toonlab.io) hosts a
327
687
  remote MCP server that adds an indexed CC0 asset search with ToonLab-styled
@@ -340,25 +700,28 @@ live at [toonlab.io/docs/mcp](https://toonlab.io/docs/mcp).
340
700
 
341
701
  ### 3. The first prompt
342
702
 
343
- Give the agent a goal, name the skill, and let it verify its own work:
703
+ Give the agent a bounded goal over supplied scene content, name the skill, and
704
+ let it verify its own work:
344
705
 
345
706
  ```text
346
- Using the ToonLab game-dev skill, set up a new Three.js + Vite project with
347
- @call-me-sensei/toonlab. Build a 1 km seeded open world (archetype
348
- "lakeland") with the bundled toon-shaded mannequin as the playable character,
349
- water, sky, the "call_me_sensei" weather preset, post-processing, and a
350
- follow camera with game feel. Follow the skill's assembly order and
351
- frame-loop contract, then run the dev server and fix issues until I can walk
352
- from spawn to the shoreline and swim.
707
+ Using the ToonLab game-dev skill, integrate @call-me-sensei/toonlab into this
708
+ existing Three.js scene. Inventory and label the character, manufactured,
709
+ ground, rock, tree, grass, flower, water, and post targets. Confirm my asset
710
+ sourcing policy and use whichever ToonLab OSS or Pro MCP surface is connected
711
+ to fill only named asset gaps. Apply the matching public runtimes, preserve
712
+ provenance, run the scene, and verify the supplied cameras. Do not redesign the
713
+ terrain, coastline, biome, lighting, camera, or gameplay unless I explicitly
714
+ request an experiment.
353
715
  ```
354
716
 
355
717
  ### 4. Prompts for common jobs
356
718
 
357
719
  ```text
358
720
  Use the ToonLab MCP server to find CC0 props for a small fishing village —
359
- lanterns, crates, a pier then place them with the propgen placement
360
- pipeline so they are grounded, collided, and LOD'd. Add a torii gate near
361
- the spawn using catalog.spawn.
721
+ lanterns, crates, a pier, a torii gate. Evaluate geometry, material separation,
722
+ texture frequency, silhouette, provenance, and license for the Call Me Sensei
723
+ anime treatment. Use the host game's placement/collision/LOD system and tell
724
+ me what came from where.
362
725
  ```
363
726
 
364
727
  ```text
@@ -372,9 +735,10 @@ shrine path. I want a hand-painted look with a five-stop cel ramp.
372
735
  ```
373
736
 
374
737
  ```text
375
- Using the ToonLab weather + lighting skills, add a day/night cycle with a
376
- thunderstorm that rolls in at dusk: wind picks up in the grass, rain streaks
377
- the water, lightning drives the sky and light rig.
738
+ As an experiment, use ToonLab Weather plus the host game's lighting system to
739
+ prototype a day/night cycle with a thunderstorm at dusk. Keep lighting outside
740
+ the selected style bundle, list every host adapter, and do not describe the result
741
+ as a supported full-world workflow.
378
742
  ```
379
743
 
380
744
  ```text
@@ -383,8 +747,9 @@ it across toon shading, sky, water, and post so the whole game matches it.
383
747
  ```
384
748
 
385
749
  ```text
386
- Give the sword swing anime game feel: hit-stop, a camera punch, a trail
387
- ribbon and impact sparks from vfxgen, and a white flash on hit.
750
+ Design a sword-swing VFX treatment that matches the selected anime bundle.
751
+ VFX is not included in the selected bundle, so use your application runtime,
752
+ record the custom VFX choice, and include its provenance and intended feedback.
388
753
  ```
389
754
 
390
755
  A more extensive prompt cookbook — including the Pro generation and