@call-me-sensei/toonlab 0.4.22 → 0.4.24

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 (113) hide show
  1. package/NPM-LIBRARY.md +45 -34
  2. package/README.md +53 -52
  3. package/agents/PROMPTS.md +17 -3
  4. package/agents/README.md +13 -3
  5. package/agents/claude/CLAUDE.md +3 -0
  6. package/agents/codex/AGENTS.md +112 -159
  7. package/agents/cursor/toonlab.mdc +7 -3
  8. package/agents/examples/game-foundation.mjs +104 -0
  9. package/agents/references/custom-gap-report.md +2 -2
  10. package/agents/references/game-lifecycle.md +57 -0
  11. package/agents/references/runtime-entry-points.md +26 -0
  12. package/agents/references/style-bundles.md +4 -1
  13. package/agents/skills/claude/asset-sourcing/SKILL.md +7 -4
  14. package/agents/skills/claude/environment/SKILL.md +4 -0
  15. package/agents/skills/claude/game-dev/SKILL.md +63 -87
  16. package/agents/skills/claude/lighting/SKILL.md +36 -0
  17. package/agents/skills/claude/post-processing/SKILL.md +8 -3
  18. package/agents/skills/claude/rock-ground-shaders/SKILL.md +10 -15
  19. package/agents/skills/claude/rockgen/SKILL.md +52 -21
  20. package/agents/skills/claude/scene-style-application/SKILL.md +4 -0
  21. package/agents/skills/claude/style-presets/SKILL.md +11 -8
  22. package/agents/skills/claude/toon-shading/SKILL.md +4 -0
  23. package/agents/skills/claude/vegetation-sky/SKILL.md +13 -7
  24. package/agents/skills/claude/visual-verification/SKILL.md +45 -119
  25. package/agents/skills/claude/water/SKILL.md +6 -2
  26. package/agents/skills/codex/asset-sourcing/SKILL.md +7 -4
  27. package/agents/skills/codex/environment/SKILL.md +4 -0
  28. package/agents/skills/codex/game-dev/SKILL.md +63 -87
  29. package/agents/skills/codex/lighting/SKILL.md +36 -0
  30. package/agents/skills/codex/post-processing/SKILL.md +8 -3
  31. package/agents/skills/codex/rock-ground-shaders/SKILL.md +10 -15
  32. package/agents/skills/codex/rockgen/SKILL.md +52 -21
  33. package/agents/skills/codex/scene-style-application/SKILL.md +4 -0
  34. package/agents/skills/codex/style-presets/SKILL.md +11 -8
  35. package/agents/skills/codex/toon-shading/SKILL.md +4 -0
  36. package/agents/skills/codex/vegetation-sky/SKILL.md +13 -7
  37. package/agents/skills/codex/visual-verification/SKILL.md +45 -119
  38. package/agents/skills/codex/water/SKILL.md +6 -2
  39. package/database/providers.mjs +1 -0
  40. package/database/seeds/catalog/0008_2026-08-c7-v2.sql +39404 -0
  41. package/database/seeds/catalog/0009_2026-09-c8-first100-profiles.sql +14844 -0
  42. package/database/seeds/catalog/0010_2026-09-community-trees.sql +4466 -0
  43. package/mcp/lab-management.mjs +11 -8
  44. package/mcp/public-catalog.mjs +0 -16
  45. package/mcp/server.mjs +1 -4
  46. package/mcp/tree-lab-contract.mjs +2381 -0
  47. package/mcp/vite-plugin.mjs +5 -1
  48. package/package.json +31 -22
  49. package/scripts/generate-catalog-seed.mjs +60 -7
  50. package/src/cloud/cloudReprojection.js +40 -7
  51. package/src/cloud/cloudVolume.js +44 -7
  52. package/src/cloud/noise/baseShapeVolume.js +8 -6
  53. package/src/cloud/noise/cirrusMap.js +2 -1
  54. package/src/cloud/noise/curlNoise.js +2 -1
  55. package/src/cloud/noise/erosionVolume.js +2 -1
  56. package/src/cloud/noise/textureCache.js +77 -0
  57. package/src/cloud/noise/weatherMap.js +2 -1
  58. package/src/core/sha256.js +83 -0
  59. package/src/ground-shader/groundShaderMaterial.js +12 -3
  60. package/src/rockgen/index.js +9 -0
  61. package/src/rockgen/rockDocument.js +326 -40
  62. package/src/rockgen/surface/c7GeologySurface.js +39 -9
  63. package/src/rockgen/surface/naturalRockSurface.js +1948 -0
  64. package/src/shaders-tsl/chunks/projected-water-caustics.js +16 -5
  65. package/src/shaders-tsl/chunks/water-foam.js +6 -6
  66. package/src/shaders-tsl/chunks/water-lighting.js +28 -5
  67. package/src/shaders-tsl/chunks/water-shore-state.js +5 -2
  68. package/src/shaders-tsl/chunks/water-waves.js +10 -5
  69. package/src/shaders-tsl/flower.js +7 -4
  70. package/src/shaders-tsl/grass.js +4 -3
  71. package/src/shaders-tsl/water-shore-state-simulation.js +3 -2
  72. package/src/shaders-tsl/water.js +209 -41
  73. package/src/sky/skySystem.js +34 -12
  74. package/src/toon/settings/perspectiveRemovalSettings.js +1 -1
  75. package/src/toon/toonSettings.js +74 -0
  76. package/src/vegetation/stylizedFlower.js +6 -0
  77. package/src/version.js +1 -1
  78. package/src/water/waterDetailSpectrum.js +91 -0
  79. package/src/water/waterDynamics.js +422 -0
  80. package/src/water/waterFoamParticles.js +196 -0
  81. package/src/water/waterFoamTexture.js +57 -0
  82. package/src/water/waterHydrodynamics.js +209 -0
  83. package/src/water/waterMaterial.js +1 -0
  84. package/src/water/waterRenderExtension.js +107 -0
  85. package/src/water/waterScenePasses.js +14 -6
  86. package/src/water/waterSettings.js +53 -26
  87. package/src/water/waterShoreMaterial.js +38 -14
  88. package/src/water/waterSpectralOcean.js +137 -0
  89. package/src/water/waterStageSettings.js +19 -1
  90. package/src/water/waterSurface.js +62 -18
  91. package/src/water/waterUnderwaterAtmosphere.js +30 -3
  92. package/types/cloud/noise/baseShapeVolume.d.ts +1 -1
  93. package/types/cloud/noise/textureCache.d.ts +12 -0
  94. package/types/core/sha256.d.ts +2 -0
  95. package/types/index.d.ts +6 -0
  96. package/types/rockgen/index.d.ts +1 -0
  97. package/types/rockgen/rockDocument.d.ts +76 -4
  98. package/types/rockgen/surface/naturalRockSurface.d.ts +100 -0
  99. package/types/shaders-tsl/chunks/projected-water-caustics.d.ts +7 -1
  100. package/types/shaders-tsl/chunks/water-lighting.d.ts +4 -3
  101. package/types/shaders-tsl/water.d.ts +2 -1
  102. package/types/version.d.ts +1 -1
  103. package/types/water/waterDetailSpectrum.d.ts +13 -0
  104. package/types/water/waterDynamics.d.ts +89 -0
  105. package/types/water/waterFoamParticles.d.ts +32 -0
  106. package/types/water/waterFoamTexture.d.ts +1 -0
  107. package/types/water/waterHydrodynamics.d.ts +49 -0
  108. package/types/water/waterRenderExtension.d.ts +16 -0
  109. package/types/water/waterScenePasses.d.ts +1 -1
  110. package/types/water/waterSettings.d.ts +1 -0
  111. package/types/water/waterSpectralOcean.d.ts +17 -0
  112. package/types/water/waterStageSettings.d.ts +1 -1
  113. package/types/water/waterUnderwaterAtmosphere.d.ts +19 -4
package/NPM-LIBRARY.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # ToonLab npm library guide
2
2
 
3
3
  This guide is included in `@call-me-sensei/toonlab`. It is the package-first
4
- reference for version 0.4.22 and does not require access to the source
4
+ reference for version 0.4.24 and does not require access to the source
5
5
  repository.
6
6
 
7
7
  ## Install
@@ -67,13 +67,13 @@ release. A one-asset Node rock annotation compiler is also repository-only.
67
67
  The npm artifact contains four supported layers:
68
68
 
69
69
  1. The JavaScript runtime and TypeScript declarations for the public imports.
70
- 2. Text-only agent guides, prompts, references, and paired Codex/Claude skills
70
+ 2. Text-only agent guides, prompts, references, a copyable game example, and paired Codex/Claude skills
71
71
  under `agents/`.
72
72
  3. The `toonlab` manifest audit CLI and `toonlab-mcp` local stdio MCP server.
73
73
  4. The local MCP database/catalog support required for Library and asset
74
74
  discovery workflows.
75
75
 
76
- It does not contain the ToonLab website, Lab application UIs, examples,
76
+ It does not contain the ToonLab website, Lab application UIs, repository demo applications,
77
77
  screenshots, models, textures, or other binary media. Optional public fixtures
78
78
  are identified by immutable `https://assets.toonlab.io` metadata rather than
79
79
  being bundled. Authored tree recipes are assets too: the reviewed public tree
@@ -115,8 +115,12 @@ await look.apply(CALL_ME_SENSEI_STYLE_BUNDLE, {
115
115
 
116
116
  renderer.setAnimationLoop(() => {
117
117
  const delta = clock.getDelta();
118
+ sky?.update(delta);
118
119
  look.update(delta, camera);
119
- renderer.render(scene, camera);
120
+ // Update host-owned grass/characters here if this scene uses them.
121
+ water?.update(delta, camera);
122
+ if (post) post.render(delta);
123
+ else renderer.render(scene, camera);
120
124
  });
121
125
  ```
122
126
 
@@ -124,10 +128,22 @@ The host application still owns renderer creation, geometry and XZ layout,
124
128
  cameras, controls, gameplay, dynamic physics, navigation, persistence, and the
125
129
  frame loop. ToonLab does not turn a prompt into a finished world.
126
130
 
131
+ ## Realistic rock surface generation
132
+
133
+ The public `rockgen` entry includes `createNaturalRockMapData`,
134
+ `createNaturalRockSurfaceSpecification`, `resolveNaturalRockProjection`,
135
+ `NATURAL_ROCK_SURFACE_PROFILES`, and `NATURAL_ROCK_MAP_ROLES`.
136
+ These are the same deterministic realistic material profiles used by the Rock
137
+ Lab. They produce typed RGBA map data; the host creates textures and assigns
138
+ material/projection settings. Saved library rocks retain their surface recipe.
139
+ The published realistic GLB is also available through raw catalog acquisition.
140
+ Composite lithologies require authored semantic regions; micro-height maps are
141
+ surface detail, not displacement that replaces a geometric high-to-low bake.
142
+
127
143
  ## Load Nature Reference Rocks
128
144
 
129
- Version 0.4.22 understands both the original `rock-0001`–`rock-0480`
130
- identities and the `rock-c8-*` Nature Reference Rocks. Acquiring an asset
145
+ Version 0.4.24 understands both the original `rock-0001`–`rock-0480`
146
+ identities and the Nature Reference Rocks catalog. Acquiring an asset
131
147
  directly returns its realistic PBR GLB. The one-call placement path additionally
132
148
  loads that asset's reviewed geology maps and `call_me_sensei` material settings
133
149
  before applying the selected style bundle.
@@ -146,21 +162,24 @@ const provider = createOfficialCatalogProvider({
146
162
  transport: 'public-rock',
147
163
  });
148
164
  const assets = createOfficialCatalogAssetRuntime({ provider, renderer });
165
+ const catalog = await provider.listAssets();
166
+ const selectedRock = catalog.assets.find((asset) => asset.label.toLowerCase().includes('sandstone'));
167
+ if (!selectedRock) throw new Error('Select an available sandstone rock from the catalog.');
149
168
 
150
169
  // Raw acquisition keeps the realistic PBR model.
151
- const realistic = await assets.acquireAsset('rock-c8-arch-sandstone');
170
+ const realistic = await assets.acquireAsset(selectedRock.id);
152
171
  scene.add(realistic.root);
153
172
 
154
173
  // Placement loads the same rock's geology maps and applies Call Me Sensei.
155
174
  const stylized = await loadOfficialCatalogAsset({
156
- assetId: 'rock-c8-arch-sandstone',
175
+ assetId: selectedRock.id,
157
176
  assetRuntime: assets,
158
177
  parent: scene,
159
178
  styleBundle: CALL_ME_SENSEI_STYLE_BUNDLE,
160
179
  });
161
180
 
162
181
  // Rock Lab/editor integrations receive the non-destructive authoring contract.
163
- const rockPackage = await assets.getRockPackage('rock-c8-arch-sandstone');
182
+ const rockPackage = await assets.getRockPackage(selectedRock.id);
164
183
  const editorSource = createOfficialCatalogRockEditorDescriptor(
165
184
  rockPackage.asset,
166
185
  rockPackage,
@@ -177,32 +196,23 @@ when their scene lifetime ends.
177
196
 
178
197
  Everything in this section is present in the installed npm package.
179
198
 
180
- ### Codex
181
-
182
- ```bash
183
- cp node_modules/@call-me-sensei/toonlab/agents/codex/AGENTS.md ./AGENTS.md
184
- mkdir -p .agents/skills
185
- cp -R node_modules/@call-me-sensei/toonlab/agents/skills/codex/* .agents/skills/
186
- ```
199
+ ### Use the installed guide
187
200
 
188
- ### Claude Code
201
+ Add a reference to `node_modules/@call-me-sensei/toonlab/agents/codex/AGENTS.md`
202
+ in the project's existing instructions, or read it directly. Merge relevant
203
+ guidance; do not replace an existing `AGENTS.md` or `CLAUDE.md`. Claude's optional
204
+ wrapper is `agents/claude/CLAUDE.md`; Cursor's is `agents/cursor/toonlab.mdc`.
189
205
 
190
- ```bash
191
- cp node_modules/@call-me-sensei/toonlab/agents/claude/CLAUDE.md ./CLAUDE.md
192
- mkdir -p .claude/skills
193
- cp -R node_modules/@call-me-sensei/toonlab/agents/skills/claude/* .claude/skills/
194
- ```
195
-
196
- ### Cursor
197
-
198
- ```bash
199
- mkdir -p .cursor/rules
200
- cp node_modules/@call-me-sensei/toonlab/agents/cursor/toonlab.mdc .cursor/rules/
201
- ```
206
+ Copy only the feature skills you need into the client's skill directory, while
207
+ preserving any existing skills with the same names. Shared `agents/...`
208
+ references remain relative to the installed package root. Keep the package
209
+ installed; copying a single skill does not copy its reference library.
202
210
 
203
- Use `agents/PROMPTS.md` for ready-to-paste prompts. Begin with `game-dev` for
204
- an existing scene and add `asset-sourcing` when Library, Gallery, or MCP asset
205
- discovery is involved.
211
+ Start with `game-dev` for a new game or existing-scene integration, then add
212
+ `asset-sourcing` for Library/Gallery work and the focused rendering skills as
213
+ needed. `agents/PROMPTS.md` contains the prompt cookbook.
214
+ `agents/examples/game-foundation.mjs` is a copyable, playable blockout example;
215
+ it is application code, not an exported ToonLab game engine.
206
216
 
207
217
  ## Connect MCP
208
218
 
@@ -218,7 +228,8 @@ it uses the disk workspace passed through `--workspace`; no account is needed.
218
228
  "command": "npx",
219
229
  "args": [
220
230
  "-y",
221
- "@call-me-sensei/toonlab@0.4.22",
231
+ "--package=@call-me-sensei/toonlab@0.4.24",
232
+ "toonlab-mcp",
222
233
  "--workspace",
223
234
  "/absolute/path/to/your-game/.toonlab"
224
235
  ],
@@ -230,7 +241,7 @@ it uses the disk workspace passed through `--workspace`; no account is needed.
230
241
  }
231
242
  ```
232
243
 
233
- This server provides the anime-game profile, runtime guide, live-Lab
244
+ This server provides the anime-game profile, live-Lab
234
245
  contracts, deterministic document creation and mutation, policy validation,
235
246
  public Gallery search/retrieval, local Library operations, and optional
236
247
  provider-backed generation when the developer supplies server-side provider
package/README.md CHANGED
@@ -19,7 +19,7 @@ Use ToonLab as a focused runtime library (`@call-me-sensei/toonlab` on npm), as
19
19
  an asset/preset authoring workspace, or as an asset-discovery service—not as a
20
20
  one-shot world generator.
21
21
 
22
- ## Versioned expectation: 0.4.22
22
+ ## Versioned expectation: 0.4.24
23
23
 
24
24
  For a correctly constructed and semantically labeled scene, one strict Call Me
25
25
  Sensei bundle application is expected to establish the supported visual
@@ -115,7 +115,7 @@ await inspector.setDomainEnabled(label.domain, false);
115
115
  **Run the labs locally** (this repo):
116
116
 
117
117
  ```bash
118
- git clone https://github.com/call-me-sensei/toonlab.git && cd toonlab
118
+ git clone https://github.com/call-me-sensei-app/toonlab.git && cd toonlab
119
119
  npm install
120
120
  npm run setup
121
121
  npm run dev
@@ -125,7 +125,7 @@ Setup starts local Postgres with Docker Compose, applies schema migrations and
125
125
  official catalog seeds, and reports configured BYO-key providers. Set an
126
126
  external `DATABASE_URL` to use an existing Postgres service instead. Vite
127
127
  serves the labs at `http://127.0.0.1:5175`. See
128
- [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) for a tour.
128
+ [Getting started](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/getting-started.md) for a tour.
129
129
 
130
130
  ### Open the full documentation locally
131
131
 
@@ -153,7 +153,7 @@ Prerequisites:
153
153
  Install and configure:
154
154
 
155
155
  ```bash
156
- git clone https://github.com/call-me-sensei/toonlab.git
156
+ git clone https://github.com/call-me-sensei-app/toonlab.git
157
157
  cd toonlab
158
158
  npm install
159
159
  cp .env.example .env
@@ -317,8 +317,8 @@ exported files; generate approved seeded recipes; and import assets into the
317
317
  project. Authored Gallery recipes are fetched with their public license and
318
318
  provenance instead of being copied into the npm package. The server uses stdio,
319
319
  requires no account or OAuth for public discovery, and keeps local work local.
320
- See [Local MCP and workspace](https://github.com/call-me-sensei/toonlab/blob/main/docs/mcp.md) and
321
- [Local database and public asset releases](https://github.com/call-me-sensei/toonlab/blob/main/docs/local-database-and-public-assets.md).
320
+ See [Local MCP and workspace](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/mcp.md) and
321
+ [Local database and public asset releases](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/local-database-and-public-assets.md).
322
322
 
323
323
  ## The labs
324
324
 
@@ -326,7 +326,7 @@ Lab UIs are development tools and are not published in the npm package. The
326
326
  Labs home (`/`) presents the 15 live user-facing Labs by the artifact they
327
327
  author. Every Lab can save and reopen its documented portable creation type;
328
328
  preview cameras, stages, lights, playback, and comparison helpers remain
329
- preview-only. See [The 15 live ToonLab Labs](https://github.com/call-me-sensei/toonlab/blob/main/docs/live-labs.md).
329
+ preview-only. See [The 15 live ToonLab Labs](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/live-labs.md).
330
330
 
331
331
  Focused ToonLab shaders, water, vegetation, generated assets, texture recipes,
332
332
  Gallery assets, and metadata are intended for supplied scene content. Complete
@@ -336,7 +336,7 @@ construction remain host responsibilities.
336
336
  Every lab also uses one shared 24-hour preview harness with Dawn, Day, Sunset,
337
337
  and Night captures. The Day reference must visibly show Call Me Sensei's
338
338
  cool/blue shadow response. See the
339
- [universal preview contract](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-preview-environment.md).
339
+ [universal preview contract](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/lab-preview-environment.md).
340
340
 
341
341
  - **Shaders** — Character, Tree, Grass, Flower, Rock, Ground, Manufactured
342
342
  Surface, Water, Sky, Cloud, and integrated Sky & Cloud authoring.
@@ -345,8 +345,8 @@ cool/blue shadow response. See the
345
345
 
346
346
  Every card links to a working editor. Integration examples are documented as
347
347
  examples rather than additional Labs. See
348
- [Lab responsibilities](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-architecture.md) for scope rules and
349
- [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) for current direct routes.
348
+ [Lab responsibilities](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/lab-architecture.md) for scope rules and
349
+ [Getting started](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/getting-started.md) for current direct routes.
350
350
 
351
351
  Sky, Cloud, and Water Labs author reusable rendering artifacts. Your application
352
352
  still supplies valid scene geometry, placement, current conditions, and the
@@ -362,7 +362,7 @@ retired after the verified commit. Static hosted builds
362
362
  fall back to browser storage. **Reset Lab** clears the current lab state.
363
363
  Point any model-aware lab at your own model with the Model URL input or
364
364
  `?model=` — see
365
- [Characters](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md).
365
+ [Characters](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/characters.md).
366
366
 
367
367
  ## What's inside
368
368
 
@@ -375,21 +375,21 @@ camera behavior, and game feel remain host-owned or pre-beta.
375
375
 
376
376
  | Cluster | Import | What you get |
377
377
  |---|---|---|
378
- | 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) |
379
- | 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) |
380
- | 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) |
381
- | 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) |
382
- | Vegetation | `@call-me-sensei/toonlab/vegetation` | Tree/grass/flower construction and shader runtimes, including the focused procedural broadleaf `BranchTree` with deterministic branching, five leaf silhouettes, caller-supplied leaf/bark textures, and a portable recipe. No authored tree asset collection is bundled or exported: reviewed tree recipes remain searchable Gallery assets delivered through MCP with their CC0 metadata. Package-generated trees preserve authored bark first and otherwise select a registered deterministic bark surface instead of a bare trunk. The experimental species roster remains repository-only. [Docs](https://github.com/call-me-sensei/toonlab/blob/main/docs/vegetation-sky.md) |
383
- | 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) |
384
- | 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) |
385
- | 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) |
386
- | 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) |
387
- | 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) |
388
- | 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) |
389
- | 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) |
378
+ | 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-app/toonlab/blob/main/docs/styles-and-bundles.md) |
379
+ | 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-app/toonlab/blob/main/docs/toon-shading.md) |
380
+ | 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-app/toonlab/blob/main/docs/environment.md) |
381
+ | 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-app/toonlab/blob/main/docs/water.md) |
382
+ | Vegetation | `@call-me-sensei/toonlab/vegetation` | Tree/grass/flower construction and shader runtimes, including the focused procedural broadleaf `BranchTree` with deterministic branching, eight leaf silhouettes, caller-supplied leaf/bark textures, and a portable recipe. No authored tree asset collection is bundled or exported: reviewed tree recipes remain searchable Gallery assets delivered through MCP with their CC0 metadata. Package-generated trees preserve authored bark first and otherwise select a registered deterministic bark surface instead of a bare trunk. The experimental species roster remains repository-only. [Docs](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/vegetation-sky.md) |
383
+ | 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-app/toonlab/blob/main/docs/rock-shader.md) |
384
+ | 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-app/toonlab/blob/main/docs/ground-shader.md) |
385
+ | 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-app/toonlab/blob/main/docs/sky.md) |
386
+ | 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-app/toonlab/blob/main/docs/cloud-shader.md) |
387
+ | 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-app/toonlab/blob/main/docs/post-processing.md) |
388
+ | 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-app/toonlab/blob/main/docs/texture-lab.md) |
389
+ | 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-app/toonlab/blob/main/docs/characters.md) |
390
390
  | 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. |
391
391
  | 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. |
392
- | 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) |
392
+ | 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-app/toonlab/blob/main/docs/characters.md) |
393
393
 
394
394
  The main `vegetation` barrel exposes the complete runtime. Smaller consumers
395
395
  can import the same bindings from
@@ -573,7 +573,8 @@ Use the domain-specific runtimes below to implement each `apply` callback.
573
573
  Asset identity stays in project/library sourcing configuration; it is never
574
574
  embedded in the style bundle. Custom adapters and custom assets must be
575
575
  recorded in `.toonlab/reports/style-asset-gaps.json` and
576
- `TOONLAB_ASSET_GAPS.md`.
576
+ `.toonlab/reports/asset-gaps.md`. These generated review records stay local and are
577
+ excluded from source control.
577
578
 
578
579
  ### Individual clusters
579
580
 
@@ -622,42 +623,42 @@ stack, with WebGL2 fallback through the same TSL path.
622
623
  MCP setup, the prompt cookbook, and the full settings reference. Hosted
623
624
  features are marked "Pro"; the extended hosted docs live at
624
625
  [toonlab.io/docs](https://toonlab.io/docs).
625
- - [Lab responsibilities](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-architecture.md) — the finalized artifact,
626
+ - [Lab responsibilities](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/lab-architecture.md) — the finalized artifact,
626
627
  production-method, editor/library, and preview-state boundaries.
627
- - [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.
628
- - [Universal lab preview environment](https://github.com/call-me-sensei/toonlab/blob/main/docs/lab-preview-environment.md) —
628
+ - [The 15 live ToonLab Labs](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/live-labs.md) — each user-facing editor, saved artifact, runtime, and generation workflow.
629
+ - [Universal lab preview environment](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/lab-preview-environment.md) —
629
630
  shared 24-hour controls, four-state regression matrix, and required cool/blue
630
631
  daylight-shadow verification.
631
- - [Rock shader](https://github.com/call-me-sensei/toonlab/blob/main/docs/rock-shader.md) — the separate generator/material
632
- architecture, 58-field public configuration, import policy, and bundle use.
633
- - [Styles, style bundles, and asset routing](https://github.com/call-me-sensei/toonlab/blob/main/docs/styles-and-bundles.md) —
632
+ - [Rock shader](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/rock-shader.md) — the separate generator/material
633
+ architecture, schema-defined public configuration, import policy, and bundle use.
634
+ - [Styles, style bundles, and asset routing](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/styles-and-bundles.md) —
634
635
  rendering domains, required asset labels, fallback policy, bundle ownership,
635
636
  OSS application boundaries, and the shader/lab migration contract.
636
- - [Open asset library and scene coverage](https://github.com/call-me-sensei/toonlab/blob/main/docs/open-asset-library.md) —
637
+ - [Open asset library and scene coverage](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/open-asset-library.md) —
637
638
  measurable scene-kit coverage, curated stylized generator base sets,
638
639
  CC0/CC-BY provenance, gallery routing, and generation fallback policy.
639
- - [Getting started](https://github.com/call-me-sensei/toonlab/blob/main/docs/getting-started.md) — clone, run, tour the labs,
640
+ - [Getting started](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/getting-started.md) — clone, run, tour the labs,
640
641
  load your own models.
641
- - [Current capability status](https://github.com/call-me-sensei/toonlab/blob/main/docs/capability-status.md) — recommended
642
+ - [Current capability status](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/capability-status.md) — recommended
642
643
  existing-scene, Gallery, MCP, and focused-authoring workflows versus
643
644
  experimental scene-construction claims.
644
- - [Toon character shading](https://github.com/call-me-sensei/toonlab/blob/main/docs/toon-shading.md)
645
- - [Manufactured environment materials](https://github.com/call-me-sensei/toonlab/blob/main/docs/urban-prop-surface-roles.md) —
645
+ - [Toon character shading](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/toon-shading.md)
646
+ - [Manufactured environment materials](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/urban-prop-surface-roles.md) —
646
647
  the layered classify-once contract for props, vehicles, buildings,
647
648
  interiors, and reusable material-aware shaders.
648
- - [Environment shading](https://github.com/call-me-sensei/toonlab/blob/main/docs/environment.md)
649
- - [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.
650
- - [Current release notes](https://github.com/call-me-sensei/toonlab/blob/main/docs/release-notes.md)
651
- - [Water](https://github.com/call-me-sensei/toonlab/blob/main/docs/water.md)
652
- - [Sky system](https://github.com/call-me-sensei/toonlab/blob/main/docs/sky.md)
653
- - [Cloud shader](https://github.com/call-me-sensei/toonlab/blob/main/docs/cloud-shader.md)
654
- - [Vegetation](https://github.com/call-me-sensei/toonlab/blob/main/docs/vegetation-sky.md)
655
- - [Post-processing](https://github.com/call-me-sensei/toonlab/blob/main/docs/post-processing.md)
656
- - [Texture Lab and texgen](https://github.com/call-me-sensei/toonlab/blob/main/docs/texture-lab.md)
657
- - [Characters and animation](https://github.com/call-me-sensei/toonlab/blob/main/docs/characters.md)
658
- - [Settings reference](https://github.com/call-me-sensei/toonlab/blob/main/docs/settings-reference.md) — every tunable field,
649
+ - [Environment shading](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/environment.md)
650
+ - [Styles and bundles](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/styles-and-bundles.md) — apply coordinated treatments to explicitly labeled scene targets.
651
+ - [Current release notes](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/release-notes.md)
652
+ - [Water](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/water.md)
653
+ - [Sky system](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/sky.md)
654
+ - [Cloud shader](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/cloud-shader.md)
655
+ - [Vegetation](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/vegetation-sky.md)
656
+ - [Post-processing](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/post-processing.md)
657
+ - [Texture Lab and texgen](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/texture-lab.md)
658
+ - [Characters and animation](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/characters.md)
659
+ - [Settings reference](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/settings-reference.md) — selected runtime and repository settings,
659
660
  generated from the schemas (`node scripts/generate-settings-reference.mjs`).
660
- - [Shader constants](https://github.com/call-me-sensei/toonlab/blob/main/docs/shader-constants.md) — the deliberately unexposed
661
+ - [Shader constants](https://github.com/call-me-sensei-app/toonlab/blob/main/docs/shader-constants.md) — the deliberately unexposed
661
662
  constants and where they live.
662
663
 
663
664
  ## Build with an AI coding agent
@@ -667,14 +668,14 @@ Cursor, …). The recommended setup has three parts: give the agent the ToonLab
667
668
  skills, connect whichever ToonLab OSS local or ToonLab Pro remote MCP surface
668
669
  the developer has, then start from a goal prompt and iterate. The npm package
669
670
  ships runtime source and the small text-only `agents/` guidance bundle. It
670
- ships no models, textures, labs, examples, review fixtures, or other binary or
671
- visual assets.
671
+ includes a copyable playable blockout in `agents/examples/game-foundation.mjs`;
672
+ models, textures, Lab apps, repository demos and review media are not bundled.
672
673
 
673
674
  ### 1. Install the ToonLab skills in your game project
674
675
 
675
676
  The skills teach the agent the runtime boundary, asset-discovery order,
676
677
  frame-loop contract, and each focused subsystem API. Start with `game-dev` for
677
- integration into an existing scene and `asset-sourcing` for Gallery/MCP work.
678
+ new-game development or integration, and `asset-sourcing` for Gallery/MCP work.
678
679
  Experimental whole-world, natural-cliff, Weather/Climate, camera, game-feel,
679
680
  and gameplay-VFX skills are intentionally not included in the npm artifact.
680
681
 
@@ -714,7 +715,7 @@ the public tree collection—those recipes are not npm built-ins:
714
715
  "mcpServers": {
715
716
  "toonlab-local": {
716
717
  "command": "npx",
717
- "args": ["-y", "@call-me-sensei/toonlab@latest", "--workspace", "/absolute/path/to/your-game/.toonlab"],
718
+ "args": ["-y", "--package=@call-me-sensei/toonlab@latest", "toonlab-mcp", "--workspace", "/absolute/path/to/your-game/.toonlab"],
718
719
  "env": { "TOONLAB_LEGACY_WORKSPACE": "1" }
719
720
  }
720
721
  }
package/agents/PROMPTS.md CHANGED
@@ -1,7 +1,21 @@
1
1
  # ToonLab agent prompts
2
2
 
3
3
  These prompts are included with the npm package. They use only the supported
4
- 0.4.22 runtime, agent skills, and MCP workflows.
4
+ 0.4.24 runtime, agent skills, and MCP workflows.
5
+
6
+ ## New playable game
7
+
8
+ ```text
9
+ Use the installed ToonLab game-dev skill to build the game described in my
10
+ request. Implement the host gameplay, input, camera, UI and level structure;
11
+ use ToonLab's public APIs for the supported visual and runtime systems. Start
12
+ with a playable slice that has movement, collision, one objective and restart,
13
+ then replace placeholders and apply the selected style. Use the installed
14
+ version's export map, preserve asset/material identities, assign one update
15
+ owner per system, and verify actual keyboard/pointer input, resize and teardown.
16
+ Do not invent package APIs or describe the result as polished before inspecting
17
+ it at the gameplay camera. Report remaining limitations concretely.
18
+ ```
5
19
 
6
20
  ## Existing-scene integration
7
21
 
@@ -71,8 +85,8 @@ species engine.
71
85
  ```text
72
86
  Using the ToonLab rockgen and rock-ground-shaders skills, create or edit the
73
87
  requested rock asset with @call-me-sensei/toonlab/rockgen and style it with
74
- @call-me-sensei/toonlab/rock-shader. Keep geometry identity, seed, LOD,
75
- collision, and baked channels in the rock document; keep reusable appearance in
88
+ @call-me-sensei/toonlab/rock-shader. Preserve geometry identity, seed, surface recipe, authored masks, LOD,
89
+ collision, and bake provenance; keep reusable appearance in
76
90
  the rock shader profile. Validate the portable documents and verify the result
77
91
  from multiple useful views. Do not deep-import repository compilers or test
78
92
  fixtures.
package/agents/README.md CHANGED
@@ -4,7 +4,8 @@ These are downloadable AI coding agent resources for developers using ToonLab
4
4
  runtime features in their own apps. They are not maintenance instructions for
5
5
  this repository.
6
6
 
7
- The recommended agent workflow starts from an existing scene: apply the
7
+ For a new game, implement a playable host-game slice and then apply ToonLab.
8
+ For an existing scene, preserve its authorized layout and systems: apply the
8
9
  focused character, manufactured, ground, rock, vegetation, water, sky, cloud,
9
10
  lighting, and post runtimes; find assets through Gallery or MCP; and author
10
11
  bounded portable outputs. The package does not promise reliable one-shot scene
@@ -22,12 +23,14 @@ Layout:
22
23
  runtime-boundary, sourcing-policy, and custom-gap contracts used by every
23
24
  agent integration.
24
25
 
25
- Recommended feature skills (start with `game-dev` for existing-scene
26
+ Recommended feature skills (start with `game-dev` for new-game development or existing-scene
26
27
  integration and `asset-sourcing` for Gallery/MCP work):
27
28
 
28
29
  - `asset-sourcing`
29
30
  - `environment`
30
31
  - `game-dev`
32
+ - `lighting`
33
+ - `scene-style-application`
31
34
  - `post-processing`
32
35
  - `rock-ground-shaders`
33
36
  - `rockgen`
@@ -42,7 +45,7 @@ artifact. This includes whole-world construction, natural cliff formation,
42
45
  Weather/Climate composition, camera behavior, game feel, and gameplay VFX.
43
46
 
44
47
  These text-only resources ship with the npm package beside the runtime source.
45
- The package does not include ToonLab lab applications, examples, review
48
+ The package does not include ToonLab lab applications, repository demo applications, review
46
49
  fixtures, models, textures, or other redistributed visual/media assets.
47
50
  First-party grass geometry and materials are generated by runtime code; the
48
51
  optional CC0 mannequin resolves from immutable public R2 rather than npm.
@@ -52,3 +55,10 @@ root needs a stable target ID/domain, and every material slot needs a stable
52
55
  material ID plus semantic role in the versioned ToonLab material contract.
53
56
  Root-only labels do not make multi-material assets bundle-ready. Strict mode
54
57
  blocks incomplete assets; advisory mode must report them as incomplete.
58
+
59
+ References beginning `agents/` resolve under the installed package root. Do not
60
+ copy the shared guide over an existing game instruction file: add a reference
61
+ to it, or merge only relevant guidance. Individual skills copied to an agent's
62
+ skill directory still read shared references from the installed package.
63
+ See `references/game-lifecycle.md` for update ownership and
64
+ `examples/game-foundation.mjs` for a copyable, verified playable blockout.
@@ -2,6 +2,9 @@
2
2
 
3
3
  ## Claude Code
4
4
 
5
+ - Resolve `agents/` references from the installed package root.
6
+ - Use the `game-dev` skill for new games and integration; host-owned input,
7
+ gameplay and layout are part of requested game development.
5
8
  - Use `agents/skills/claude/` as the user-facing usage guides for ToonLab
6
9
  runtime features.
7
10
  - Keep this file short; shared guidance belongs in `agents/codex/AGENTS.md`.