@instruktlabs/kiln 0.0.0-stage → 1.0.0

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 (947) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +19 -0
  3. package/.claude-plugin/plugin.json +30 -0
  4. package/.codex-plugin/plugin.json +37 -0
  5. package/.mcp.json +10 -0
  6. package/CHANGELOG.md +2579 -0
  7. package/CONTRIBUTING.md +130 -0
  8. package/LICENSE +21 -0
  9. package/README.md +443 -2
  10. package/THIRD_PARTY_NOTICES.md +62 -0
  11. package/dist/agent-providers.mjs +310 -0
  12. package/dist/agent-run.mjs +40433 -0
  13. package/dist/build.json +215 -0
  14. package/dist/cli.mjs +48027 -0
  15. package/dist/evaluator-worker.mjs +27572 -0
  16. package/dist/mcp-engine.mjs +43537 -0
  17. package/dist/mcp-server.mjs +2388 -0
  18. package/dist/viewer/app.js +4281 -0
  19. package/dist/viewer/chat.html +4409 -0
  20. package/dist/viewer/index.html +51 -0
  21. package/dist/viewer/style.css +51 -0
  22. package/docs/architecture.md +77 -0
  23. package/docs/cameras.md +181 -0
  24. package/docs/chatgpt.md +48 -0
  25. package/docs/collections.md +195 -0
  26. package/docs/community-exporter.md +95 -0
  27. package/docs/engine-handoff.md +221 -0
  28. package/docs/examples.md +171 -0
  29. package/docs/export-profiles.md +223 -0
  30. package/docs/extending.md +43 -0
  31. package/docs/geometry.md +505 -0
  32. package/docs/google.md +121 -0
  33. package/docs/harnesses.md +372 -0
  34. package/docs/install.md +542 -0
  35. package/docs/material-library.md +133 -0
  36. package/docs/migration.md +809 -0
  37. package/docs/programs.md +123 -0
  38. package/docs/projects-and-live-review.md +94 -0
  39. package/docs/rendering.md +250 -0
  40. package/docs/runtime.md +223 -0
  41. package/docs/sdk.md +137 -0
  42. package/docs/tools.md +1874 -0
  43. package/lib/_types/render-service/src/build-identity.d.mts +24 -0
  44. package/lib/_types/render-service/src/instance.d.mts +47 -0
  45. package/lib/agent/call-budget.d.ts +55 -0
  46. package/lib/agent/call-budget.js +52 -0
  47. package/lib/agent/compaction.d.ts +83 -0
  48. package/lib/agent/compaction.js +124 -0
  49. package/lib/agent/concurrency.d.ts +8 -0
  50. package/lib/agent/concurrency.js +24 -0
  51. package/lib/agent/diff.d.ts +23 -0
  52. package/lib/agent/diff.js +124 -0
  53. package/lib/agent/generate.d.ts +192 -0
  54. package/lib/agent/generate.js +240 -0
  55. package/lib/agent/hooks.d.ts +91 -0
  56. package/lib/agent/hooks.js +158 -0
  57. package/lib/agent/index.d.ts +42 -0
  58. package/lib/agent/index.js +30 -0
  59. package/lib/agent/native-prompt.d.ts +15 -0
  60. package/lib/agent/native-prompt.js +29 -0
  61. package/lib/agent/native-workflow.d.ts +4 -0
  62. package/lib/agent/native-workflow.js +30 -0
  63. package/lib/agent/providers.d.ts +188 -0
  64. package/lib/agent/providers.js +392 -0
  65. package/lib/agent/run.d.ts +72 -0
  66. package/lib/agent/run.js +245 -0
  67. package/lib/agent/skill-resources.d.ts +9 -0
  68. package/lib/agent/skill-resources.js +178 -0
  69. package/lib/agent/split-tool-result-images.d.ts +33 -0
  70. package/lib/agent/split-tool-result-images.js +47 -0
  71. package/lib/agent/stream-start.d.ts +30 -0
  72. package/lib/agent/stream-start.js +32 -0
  73. package/lib/agent/tools.d.ts +12 -0
  74. package/lib/agent/tools.js +77 -0
  75. package/lib/agent/view-render-timeout.d.ts +40 -0
  76. package/lib/agent/view-render-timeout.js +71 -0
  77. package/lib/animation-cubic.d.ts +12 -0
  78. package/lib/animation-cubic.js +44 -0
  79. package/lib/animation-spline.d.ts +50 -0
  80. package/lib/animation-spline.js +168 -0
  81. package/lib/architecture.d.ts +146 -0
  82. package/lib/architecture.js +498 -0
  83. package/lib/arena/adaptive.d.ts +38 -0
  84. package/lib/arena/adaptive.js +87 -0
  85. package/lib/arena/bradley-terry.d.ts +63 -0
  86. package/lib/arena/bradley-terry.js +165 -0
  87. package/lib/arena/index.d.ts +15 -0
  88. package/lib/arena/index.js +13 -0
  89. package/lib/assembly-transform.d.ts +7 -0
  90. package/lib/assembly-transform.js +21 -0
  91. package/lib/assembly.d.ts +105 -0
  92. package/lib/assembly.js +587 -0
  93. package/lib/asset-catalog.d.ts +13 -0
  94. package/lib/asset-catalog.js +21 -0
  95. package/lib/asset-export.d.ts +41 -0
  96. package/lib/asset-export.js +106 -0
  97. package/lib/asset-materials-node.d.ts +5 -0
  98. package/lib/asset-materials-node.js +56 -0
  99. package/lib/asset-widget.d.ts +10 -0
  100. package/lib/asset-widget.js +23 -0
  101. package/lib/assets-node.d.ts +33 -0
  102. package/lib/assets-node.js +348 -0
  103. package/lib/assets-resources.d.ts +33 -0
  104. package/lib/assets-resources.js +109 -0
  105. package/lib/assets.d.ts +91 -0
  106. package/lib/assets.js +205 -0
  107. package/lib/atomic-directory.d.ts +9 -0
  108. package/lib/atomic-directory.js +31 -0
  109. package/lib/authoring-style.d.ts +3 -0
  110. package/lib/authoring-style.js +42 -0
  111. package/lib/build-cache-node.d.ts +12 -0
  112. package/lib/build-cache-node.js +87 -0
  113. package/lib/build-cache.d.ts +24 -0
  114. package/lib/build-cache.js +229 -0
  115. package/lib/character.d.ts +132 -0
  116. package/lib/character.js +612 -0
  117. package/lib/cli-render-mode.d.ts +31 -0
  118. package/lib/cli-render-mode.js +204 -0
  119. package/lib/community-exporter.d.ts +13 -0
  120. package/lib/community-exporter.js +237 -0
  121. package/lib/composer/agent/compaction.d.ts +72 -0
  122. package/lib/composer/agent/compaction.js +103 -0
  123. package/lib/composer/agent/index.d.ts +25 -0
  124. package/lib/composer/agent/index.js +19 -0
  125. package/lib/composer/agent/prompt.d.ts +25 -0
  126. package/lib/composer/agent/prompt.js +100 -0
  127. package/lib/composer/agent/run.d.ts +91 -0
  128. package/lib/composer/agent/run.js +212 -0
  129. package/lib/composer/agent/tools.d.ts +75 -0
  130. package/lib/composer/agent/tools.js +643 -0
  131. package/lib/composer/agent/world-run.d.ts +50 -0
  132. package/lib/composer/agent/world-run.js +295 -0
  133. package/lib/composer/agent/world-tools.d.ts +20 -0
  134. package/lib/composer/agent/world-tools.js +311 -0
  135. package/lib/composer/collision.d.ts +109 -0
  136. package/lib/composer/collision.js +339 -0
  137. package/lib/composer/contract-utils.d.ts +6 -0
  138. package/lib/composer/contract-utils.js +48 -0
  139. package/lib/composer/dsl.d.ts +52 -0
  140. package/lib/composer/dsl.js +147 -0
  141. package/lib/composer/ground.d.ts +22 -0
  142. package/lib/composer/ground.js +9 -0
  143. package/lib/composer/index.d.ts +19 -0
  144. package/lib/composer/index.js +19 -0
  145. package/lib/composer/layout.d.ts +106 -0
  146. package/lib/composer/layout.js +216 -0
  147. package/lib/composer/model.d.ts +298 -0
  148. package/lib/composer/model.js +441 -0
  149. package/lib/composer/overlap.d.ts +89 -0
  150. package/lib/composer/overlap.js +139 -0
  151. package/lib/composer/presentation.d.ts +123 -0
  152. package/lib/composer/presentation.js +256 -0
  153. package/lib/composer/reachability.d.ts +78 -0
  154. package/lib/composer/reachability.js +303 -0
  155. package/lib/composer/render-port.d.ts +293 -0
  156. package/lib/composer/render-port.js +172 -0
  157. package/lib/composer/terrain-runtime.d.ts +73 -0
  158. package/lib/composer/terrain-runtime.js +328 -0
  159. package/lib/composer/terrain.d.ts +43 -0
  160. package/lib/composer/terrain.js +49 -0
  161. package/lib/composer/world-document.d.ts +722 -0
  162. package/lib/composer/world-document.js +857 -0
  163. package/lib/composer/world-integration.d.ts +78 -0
  164. package/lib/composer/world-integration.js +452 -0
  165. package/lib/composer/world-package.d.ts +312 -0
  166. package/lib/composer/world-package.js +209 -0
  167. package/lib/contracts/asset.d.ts +270 -0
  168. package/lib/contracts/asset.js +1616 -0
  169. package/lib/contracts/breadth.d.ts +197 -0
  170. package/lib/contracts/breadth.js +631 -0
  171. package/lib/contracts/environment.d.ts +13 -0
  172. package/lib/contracts/environment.js +67 -0
  173. package/lib/contracts/index.d.ts +5 -0
  174. package/lib/contracts/index.js +5 -0
  175. package/lib/contracts/integration.d.ts +94 -0
  176. package/lib/contracts/integration.js +10 -0
  177. package/lib/contracts/requirements-migration.d.ts +61 -0
  178. package/lib/contracts/requirements-migration.js +401 -0
  179. package/lib/contracts/requirements.d.ts +815 -0
  180. package/lib/contracts/requirements.js +266 -0
  181. package/lib/contracts/semantic.d.ts +124 -0
  182. package/lib/contracts/semantic.js +421 -0
  183. package/lib/deform.d.ts +31 -0
  184. package/lib/deform.js +137 -0
  185. package/lib/deformation-normals.d.ts +3 -0
  186. package/lib/deformation-normals.js +72 -0
  187. package/lib/discovery/articulation-recipes.d.ts +6 -0
  188. package/lib/discovery/articulation-recipes.js +184 -0
  189. package/lib/discovery/catalog-schema.d.ts +175 -0
  190. package/lib/discovery/catalog-schema.js +118 -0
  191. package/lib/discovery/catalog.d.ts +25 -0
  192. package/lib/discovery/catalog.js +84 -0
  193. package/lib/discovery/construction-recipes.d.ts +7 -0
  194. package/lib/discovery/construction-recipes.js +236 -0
  195. package/lib/discovery/helper-contracts.d.ts +19 -0
  196. package/lib/discovery/helper-contracts.js +1940 -0
  197. package/lib/discovery/helper-specs.d.ts +40 -0
  198. package/lib/discovery/helper-specs.js +800 -0
  199. package/lib/discovery/index.d.ts +9 -0
  200. package/lib/discovery/index.js +20 -0
  201. package/lib/discovery/intents.d.ts +3 -0
  202. package/lib/discovery/intents.js +117 -0
  203. package/lib/discovery/lexical-index.d.ts +5 -0
  204. package/lib/discovery/lexical-index.js +67 -0
  205. package/lib/discovery/query-schema.d.ts +35 -0
  206. package/lib/discovery/query-schema.js +66 -0
  207. package/lib/discovery/recipes.d.ts +6 -0
  208. package/lib/discovery/recipes.js +191 -0
  209. package/lib/discovery/service.d.ts +57 -0
  210. package/lib/discovery/service.js +234 -0
  211. package/lib/discovery/shapes.d.ts +6 -0
  212. package/lib/discovery/shapes.js +65 -0
  213. package/lib/discovery/structural-recipes.d.ts +6 -0
  214. package/lib/discovery/structural-recipes.js +193 -0
  215. package/lib/discovery/surface-recipes.d.ts +7 -0
  216. package/lib/discovery/surface-recipes.js +124 -0
  217. package/lib/draw-diagnostics.d.ts +57 -0
  218. package/lib/draw-diagnostics.js +239 -0
  219. package/lib/edit-buffer.d.ts +86 -0
  220. package/lib/edit-buffer.js +99 -0
  221. package/lib/engine-identity.d.ts +44 -0
  222. package/lib/engine-identity.js +41 -0
  223. package/lib/evaluator/authoring-diagnostic.d.ts +38 -0
  224. package/lib/evaluator/authoring-diagnostic.js +128 -0
  225. package/lib/evaluator/handler.d.ts +14 -0
  226. package/lib/evaluator/handler.js +86 -0
  227. package/lib/evaluator/index.d.ts +4 -0
  228. package/lib/evaluator/index.js +4 -0
  229. package/lib/evaluator/isolation.d.ts +45 -0
  230. package/lib/evaluator/isolation.js +362 -0
  231. package/lib/evaluator/probe-invariants.d.ts +2 -0
  232. package/lib/evaluator/probe-invariants.js +7 -0
  233. package/lib/evaluator/probe-worker.d.ts +1 -0
  234. package/lib/evaluator/probe-worker.js +134 -0
  235. package/lib/evaluator/protocol.d.ts +105 -0
  236. package/lib/evaluator/protocol.js +512 -0
  237. package/lib/evaluator/source-check.d.ts +7 -0
  238. package/lib/evaluator/source-check.js +57 -0
  239. package/lib/evaluator/subprocess.d.ts +26 -0
  240. package/lib/evaluator/subprocess.js +212 -0
  241. package/lib/evaluator/transport-worker.d.mts +1 -0
  242. package/lib/evaluator/transport-worker.mjs +3 -0
  243. package/lib/evaluator/worker-urls.d.ts +6 -0
  244. package/lib/evaluator/worker-urls.js +12 -0
  245. package/lib/evaluator/worker.d.ts +1 -0
  246. package/lib/evaluator/worker.js +26 -0
  247. package/lib/exporter-node.d.ts +16 -0
  248. package/lib/exporter-node.js +58 -0
  249. package/lib/gears.d.ts +68 -0
  250. package/lib/gears.js +259 -0
  251. package/lib/geometry-budget.d.ts +15 -0
  252. package/lib/geometry-budget.js +36 -0
  253. package/lib/geometry-catalog.d.ts +5 -0
  254. package/lib/geometry-catalog.js +161 -0
  255. package/lib/geometry-export.d.ts +11 -0
  256. package/lib/geometry-export.js +160 -0
  257. package/lib/geometry.d.ts +46 -0
  258. package/lib/geometry.js +311 -0
  259. package/lib/gltf-io.d.ts +38 -0
  260. package/lib/gltf-io.js +95 -0
  261. package/lib/implicit.d.ts +20 -0
  262. package/lib/implicit.js +58 -0
  263. package/lib/index-policy.d.ts +13 -0
  264. package/lib/index-policy.js +41 -0
  265. package/lib/index.d.ts +5 -0
  266. package/lib/index.js +5 -0
  267. package/lib/inspect.d.ts +76 -0
  268. package/lib/inspect.js +206 -0
  269. package/lib/kit.d.ts +90 -0
  270. package/lib/kit.js +459 -0
  271. package/lib/live-review-node.d.ts +70 -0
  272. package/lib/live-review-node.js +961 -0
  273. package/lib/live-review.d.ts +65 -0
  274. package/lib/live-review.js +1 -0
  275. package/lib/local-runtime.d.ts +25 -0
  276. package/lib/local-runtime.js +272 -0
  277. package/lib/lod-export.d.ts +39 -0
  278. package/lib/lod-export.js +102 -0
  279. package/lib/lod.d.ts +56 -0
  280. package/lib/lod.js +138 -0
  281. package/lib/material-library-node.d.ts +56 -0
  282. package/lib/material-library-node.js +402 -0
  283. package/lib/material-library.d.ts +731 -0
  284. package/lib/material-library.js +425 -0
  285. package/lib/material-metrics.d.ts +72 -0
  286. package/lib/material-metrics.js +276 -0
  287. package/lib/material-presets.d.ts +29 -0
  288. package/lib/material-presets.js +181 -0
  289. package/lib/material-recipe-prompt.d.ts +23 -0
  290. package/lib/material-recipe-prompt.js +72 -0
  291. package/lib/material-recipe-runtime.d.ts +31 -0
  292. package/lib/material-recipe-runtime.js +91 -0
  293. package/lib/material-recipes.d.ts +131 -0
  294. package/lib/material-recipes.js +543 -0
  295. package/lib/material-resources.d.ts +181 -0
  296. package/lib/material-resources.js +416 -0
  297. package/lib/material-texture-library.generated.d.ts +1311 -0
  298. package/lib/material-texture-library.generated.js +11308 -0
  299. package/lib/metrics.d.ts +98 -0
  300. package/lib/metrics.js +210 -0
  301. package/lib/node-visibility.d.ts +31 -0
  302. package/lib/node-visibility.js +105 -0
  303. package/lib/open-shell.d.ts +21 -0
  304. package/lib/open-shell.js +83 -0
  305. package/lib/ops.d.ts +197 -0
  306. package/lib/ops.js +630 -0
  307. package/lib/palette-snap.d.ts +74 -0
  308. package/lib/palette-snap.js +151 -0
  309. package/lib/palette.d.ts +75 -0
  310. package/lib/palette.js +273 -0
  311. package/lib/portable-material-runtime.d.ts +14 -0
  312. package/lib/portable-material-runtime.js +81 -0
  313. package/lib/primitives.d.ts +483 -0
  314. package/lib/primitives.js +1553 -0
  315. package/lib/procedural-material-v2.d.ts +189 -0
  316. package/lib/procedural-material-v2.js +452 -0
  317. package/lib/procedural-texture.d.ts +90 -0
  318. package/lib/procedural-texture.js +306 -0
  319. package/lib/profile.d.ts +190 -0
  320. package/lib/profile.js +366 -0
  321. package/lib/program-store-node.d.ts +14 -0
  322. package/lib/program-store-node.js +137 -0
  323. package/lib/program-store.d.ts +43 -0
  324. package/lib/program-store.js +89 -0
  325. package/lib/project-bundle-node.d.ts +15 -0
  326. package/lib/project-bundle-node.js +175 -0
  327. package/lib/project-bundle.d.ts +65 -0
  328. package/lib/project-bundle.js +322 -0
  329. package/lib/projects-node.d.ts +17 -0
  330. package/lib/projects-node.js +227 -0
  331. package/lib/projects.d.ts +312 -0
  332. package/lib/projects.js +216 -0
  333. package/lib/prompt-api.d.ts +32 -0
  334. package/lib/prompt-api.js +223 -0
  335. package/lib/qa/architecture-corpus.d.ts +31 -0
  336. package/lib/qa/architecture-corpus.js +438 -0
  337. package/lib/qa/architecture-repairs.d.ts +17 -0
  338. package/lib/qa/architecture-repairs.js +73 -0
  339. package/lib/qa/architecture.d.ts +56 -0
  340. package/lib/qa/architecture.js +985 -0
  341. package/lib/qa/benchmark-fixtures.d.ts +42 -0
  342. package/lib/qa/benchmark-fixtures.js +191 -0
  343. package/lib/qa/breadth-corpus.d.ts +17 -0
  344. package/lib/qa/breadth-corpus.js +125 -0
  345. package/lib/qa/breadth-evidence.d.ts +18 -0
  346. package/lib/qa/breadth-evidence.js +514 -0
  347. package/lib/qa/breadth-final.d.ts +46 -0
  348. package/lib/qa/breadth-final.js +359 -0
  349. package/lib/qa/breadth.d.ts +66 -0
  350. package/lib/qa/breadth.js +539 -0
  351. package/lib/qa/character-advisory.d.ts +7 -0
  352. package/lib/qa/character-advisory.js +488 -0
  353. package/lib/qa/character-repairs.d.ts +11 -0
  354. package/lib/qa/character-repairs.js +68 -0
  355. package/lib/qa/character-vehicle-corpus.d.ts +32 -0
  356. package/lib/qa/character-vehicle-corpus.js +525 -0
  357. package/lib/qa/character.d.ts +66 -0
  358. package/lib/qa/character.js +712 -0
  359. package/lib/qa/corpus.d.ts +185 -0
  360. package/lib/qa/corpus.js +396 -0
  361. package/lib/qa/environment.d.ts +44 -0
  362. package/lib/qa/environment.js +725 -0
  363. package/lib/qa/geometry-relations.d.ts +94 -0
  364. package/lib/qa/geometry-relations.js +552 -0
  365. package/lib/qa/gltf.d.ts +29 -0
  366. package/lib/qa/gltf.js +66 -0
  367. package/lib/qa/index.d.ts +32 -0
  368. package/lib/qa/index.js +34 -0
  369. package/lib/qa/lod.d.ts +14 -0
  370. package/lib/qa/lod.js +25 -0
  371. package/lib/qa/material.d.ts +5 -0
  372. package/lib/qa/material.js +223 -0
  373. package/lib/qa/part-connectivity.d.ts +73 -0
  374. package/lib/qa/part-connectivity.js +216 -0
  375. package/lib/qa/prop-environment-prompt.d.ts +6 -0
  376. package/lib/qa/prop-environment-prompt.js +43 -0
  377. package/lib/qa/prop-helper-policy.d.ts +37 -0
  378. package/lib/qa/prop-helper-policy.js +65 -0
  379. package/lib/qa/prop.d.ts +44 -0
  380. package/lib/qa/prop.js +702 -0
  381. package/lib/qa/reference-comparison.d.ts +183 -0
  382. package/lib/qa/reference-comparison.js +420 -0
  383. package/lib/qa/registry.d.ts +159 -0
  384. package/lib/qa/registry.js +406 -0
  385. package/lib/qa/requirements-applicability.d.ts +33 -0
  386. package/lib/qa/requirements-applicability.js +189 -0
  387. package/lib/qa/requirements-report.d.ts +38 -0
  388. package/lib/qa/requirements-report.js +202 -0
  389. package/lib/qa/requirements-run.d.ts +20 -0
  390. package/lib/qa/requirements-run.js +370 -0
  391. package/lib/qa/run.d.ts +54 -0
  392. package/lib/qa/run.js +240 -0
  393. package/lib/qa/self-intersection.d.ts +157 -0
  394. package/lib/qa/self-intersection.js +633 -0
  395. package/lib/qa/sweep.d.ts +4 -0
  396. package/lib/qa/sweep.js +65 -0
  397. package/lib/qa/types.d.ts +90 -0
  398. package/lib/qa/types.js +81 -0
  399. package/lib/qa/universal.d.ts +14 -0
  400. package/lib/qa/universal.js +398 -0
  401. package/lib/qa/vegetation-corpus.d.ts +18 -0
  402. package/lib/qa/vegetation-corpus.js +304 -0
  403. package/lib/qa/vegetation.d.ts +133 -0
  404. package/lib/qa/vegetation.js +933 -0
  405. package/lib/qa/vehicle-advisory.d.ts +8 -0
  406. package/lib/qa/vehicle-advisory.js +395 -0
  407. package/lib/qa/vehicle.d.ts +19 -0
  408. package/lib/qa/vehicle.js +594 -0
  409. package/lib/rebuild-options.d.ts +31 -0
  410. package/lib/rebuild-options.js +13 -0
  411. package/lib/render-capabilities.d.ts +25 -0
  412. package/lib/render-capabilities.js +100 -0
  413. package/lib/render-service-client.d.ts +59 -0
  414. package/lib/render-service-client.js +194 -0
  415. package/lib/render-service-host.d.ts +44 -0
  416. package/lib/render-service-host.js +236 -0
  417. package/lib/render-service-windows.d.ts +12 -0
  418. package/lib/render-service-windows.js +72 -0
  419. package/lib/render.d.ts +565 -0
  420. package/lib/render.js +1978 -0
  421. package/lib/requirements-assets.d.ts +6 -0
  422. package/lib/requirements-assets.js +33 -0
  423. package/lib/requirements-context.d.ts +1658 -0
  424. package/lib/requirements-context.js +126 -0
  425. package/lib/requirements-identity.d.ts +3 -0
  426. package/lib/requirements-identity.js +38 -0
  427. package/lib/requirements-json.d.ts +12 -0
  428. package/lib/requirements-json.js +58 -0
  429. package/lib/requirements-store.d.ts +42 -0
  430. package/lib/requirements-store.js +86 -0
  431. package/lib/requirements.d.ts +4 -0
  432. package/lib/requirements.js +4 -0
  433. package/lib/revision-comparison.d.ts +85 -0
  434. package/lib/revision-comparison.js +334 -0
  435. package/lib/rig-export.d.ts +5 -0
  436. package/lib/rig-export.js +19 -0
  437. package/lib/rigid-merge.d.ts +90 -0
  438. package/lib/rigid-merge.js +585 -0
  439. package/lib/runtime-identity.d.ts +20 -0
  440. package/lib/runtime-identity.js +193 -0
  441. package/lib/solids.d.ts +29 -0
  442. package/lib/solids.js +523 -0
  443. package/lib/source-bindings.d.ts +6 -0
  444. package/lib/source-bindings.js +96 -0
  445. package/lib/source-runtime-checks.d.ts +14 -0
  446. package/lib/source-runtime-checks.js +169 -0
  447. package/lib/sweep-analysis.d.ts +22 -0
  448. package/lib/sweep-analysis.js +109 -0
  449. package/lib/sweep.d.ts +34 -0
  450. package/lib/sweep.js +347 -0
  451. package/lib/texture-bake.d.ts +125 -0
  452. package/lib/texture-bake.js +395 -0
  453. package/lib/texture-contract.d.ts +3 -0
  454. package/lib/texture-contract.js +10 -0
  455. package/lib/texture-resolver.d.ts +22 -0
  456. package/lib/texture-resolver.js +28 -0
  457. package/lib/textures.d.ts +90 -0
  458. package/lib/textures.js +240 -0
  459. package/lib/tools/actions.d.ts +35 -0
  460. package/lib/tools/actions.js +69 -0
  461. package/lib/tools/capture-input.d.ts +373 -0
  462. package/lib/tools/capture-input.js +193 -0
  463. package/lib/tools/discovery.d.ts +3 -0
  464. package/lib/tools/discovery.js +177 -0
  465. package/lib/tools/materials.d.ts +29 -0
  466. package/lib/tools/materials.js +168 -0
  467. package/lib/tools/preview-fidelity.d.ts +6 -0
  468. package/lib/tools/preview-fidelity.js +23 -0
  469. package/lib/tools/program-artifacts.d.ts +30 -0
  470. package/lib/tools/program-artifacts.js +76 -0
  471. package/lib/tools/programs.d.ts +9 -0
  472. package/lib/tools/programs.js +151 -0
  473. package/lib/tools/projects.d.ts +27 -0
  474. package/lib/tools/projects.js +98 -0
  475. package/lib/tools/registry.d.ts +792 -0
  476. package/lib/tools/registry.js +2123 -0
  477. package/lib/tools/review-detail.d.ts +106 -0
  478. package/lib/tools/review-detail.js +740 -0
  479. package/lib/tools/review.d.ts +40 -0
  480. package/lib/tools/review.js +230 -0
  481. package/lib/tools/skill-resource.d.ts +8 -0
  482. package/lib/tools/skill-resource.js +1 -0
  483. package/lib/tools/workspace.d.ts +8 -0
  484. package/lib/tools/workspace.js +87 -0
  485. package/lib/user-data-extras.d.ts +40 -0
  486. package/lib/user-data-extras.js +158 -0
  487. package/lib/user-data-validation.d.ts +18 -0
  488. package/lib/user-data-validation.js +201 -0
  489. package/lib/uv-project.d.ts +14 -0
  490. package/lib/uv-project.js +145 -0
  491. package/lib/uv-shapes.d.ts +11 -0
  492. package/lib/uv-shapes.js +48 -0
  493. package/lib/uv.d.ts +39 -0
  494. package/lib/uv.js +216 -0
  495. package/lib/validation.d.ts +90 -0
  496. package/lib/validation.js +1099 -0
  497. package/lib/vehicle.d.ts +128 -0
  498. package/lib/vehicle.js +487 -0
  499. package/lib/views/annotate.d.ts +41 -0
  500. package/lib/views/annotate.js +131 -0
  501. package/lib/views/architecture.d.ts +22 -0
  502. package/lib/views/architecture.js +55 -0
  503. package/lib/views/background.d.ts +54 -0
  504. package/lib/views/background.js +65 -0
  505. package/lib/views/camera-capture.d.ts +15 -0
  506. package/lib/views/camera-capture.js +101 -0
  507. package/lib/views/camera.d.ts +106 -0
  508. package/lib/views/camera.js +488 -0
  509. package/lib/views/capture-cache.d.ts +48 -0
  510. package/lib/views/capture-cache.js +239 -0
  511. package/lib/views/capture-limits.d.ts +19 -0
  512. package/lib/views/capture-limits.js +61 -0
  513. package/lib/views/capture.d.ts +124 -0
  514. package/lib/views/capture.js +210 -0
  515. package/lib/views/character-capture.d.ts +20 -0
  516. package/lib/views/character-capture.js +180 -0
  517. package/lib/views/character.d.ts +64 -0
  518. package/lib/views/character.js +176 -0
  519. package/lib/views/diagnostic.d.ts +90 -0
  520. package/lib/views/diagnostic.js +627 -0
  521. package/lib/views/evidence-history.d.ts +13 -0
  522. package/lib/views/evidence-history.js +131 -0
  523. package/lib/views/glb.d.ts +36 -0
  524. package/lib/views/glb.js +524 -0
  525. package/lib/views/grid.d.ts +46 -0
  526. package/lib/views/grid.js +81 -0
  527. package/lib/views/index.d.ts +257 -0
  528. package/lib/views/index.js +624 -0
  529. package/lib/views/inspect.d.ts +110 -0
  530. package/lib/views/inspect.js +195 -0
  531. package/lib/views/lod.d.ts +30 -0
  532. package/lib/views/lod.js +79 -0
  533. package/lib/views/measurement.d.ts +47 -0
  534. package/lib/views/measurement.js +60 -0
  535. package/lib/views/part-placement.d.ts +25 -0
  536. package/lib/views/part-placement.js +26 -0
  537. package/lib/views/png.d.ts +23 -0
  538. package/lib/views/png.js +162 -0
  539. package/lib/views/port.d.ts +74 -0
  540. package/lib/views/port.js +250 -0
  541. package/lib/views/pose.d.ts +113 -0
  542. package/lib/views/pose.js +433 -0
  543. package/lib/views/raster.d.ts +164 -0
  544. package/lib/views/raster.js +508 -0
  545. package/lib/views/renderer-id.d.ts +11 -0
  546. package/lib/views/renderer-id.js +29 -0
  547. package/lib/views/scene-raster.d.ts +41 -0
  548. package/lib/views/scene-raster.js +84 -0
  549. package/lib/views/surface-distance.d.ts +51 -0
  550. package/lib/views/surface-distance.js +343 -0
  551. package/lib/views/vehicle.d.ts +57 -0
  552. package/lib/views/vehicle.js +288 -0
  553. package/lib/wall-panels.d.ts +38 -0
  554. package/lib/wall-panels.js +99 -0
  555. package/lib/widget-transfer.d.ts +12 -0
  556. package/lib/widget-transfer.js +117 -0
  557. package/lib/workspace-location.d.ts +6 -0
  558. package/lib/workspace-location.js +16 -0
  559. package/lib/workspace-node.d.ts +15 -0
  560. package/lib/workspace-node.js +74 -0
  561. package/lib/workspace.d.ts +26 -0
  562. package/lib/workspace.js +22 -0
  563. package/lib/written-nodes.d.ts +10 -0
  564. package/lib/written-nodes.js +32 -0
  565. package/package.json +385 -4
  566. package/plugin.json +16 -0
  567. package/plugins/kiln-engine/.claude-plugin/plugin.json +18 -0
  568. package/plugins/kiln-engine/LICENSE +21 -0
  569. package/plugins/kiln-engine/README.md +25 -0
  570. package/plugins/kiln-engine/package-provenance.json +15 -0
  571. package/plugins/kiln-engine/plugin.json +38 -0
  572. package/plugins/kiln-engine/runtime.json +4 -0
  573. package/plugins/kiln-engine/scripts/setup-workspace.mjs +337 -0
  574. package/plugins/kiln-engine/skills/kiln-setup-workspace/SKILL.md +108 -0
  575. package/plugins/kiln-engine/skills/kiln-setup-workspace/references/plugin-install.md +66 -0
  576. package/render-service/README.md +139 -0
  577. package/render-service/package-lock.json +72 -0
  578. package/render-service/package.json +22 -0
  579. package/render-service/src/backdrops.mjs +26 -0
  580. package/render-service/src/bind-policy.mjs +80 -0
  581. package/render-service/src/build-identity.mjs +83 -0
  582. package/render-service/src/cache-identity.mjs +65 -0
  583. package/render-service/src/contract.mjs +494 -0
  584. package/render-service/src/display-output.mjs +18 -0
  585. package/render-service/src/display-transform.mjs +192 -0
  586. package/render-service/src/framing.mjs +114 -0
  587. package/render-service/src/glb-input.mjs +259 -0
  588. package/render-service/src/gpu.mjs +101 -0
  589. package/render-service/src/health-contract.mjs +40 -0
  590. package/render-service/src/instance.mjs +146 -0
  591. package/render-service/src/node-visibility.mjs +49 -0
  592. package/render-service/src/png-input.mjs +77 -0
  593. package/render-service/src/presentation-presets.mjs +216 -0
  594. package/render-service/src/readback.mjs +16 -0
  595. package/render-service/src/register-hooks.mjs +2 -0
  596. package/render-service/src/render-queue.mjs +144 -0
  597. package/render-service/src/renderer.mjs +473 -0
  598. package/render-service/src/request-limits.mjs +72 -0
  599. package/render-service/src/review-tone-mapping.mjs +55 -0
  600. package/render-service/src/server.mjs +387 -0
  601. package/render-service/src/three-alias-hooks.mjs +6 -0
  602. package/scripts/create-workspace.mjs +808 -0
  603. package/scripts/package-plugin.mjs +67 -0
  604. package/skills/kiln-author-asset/SKILL.md +104 -0
  605. package/skills/kiln-author-asset/references/camera-cli.md +33 -0
  606. package/skills/kiln-author-asset/references/camera-recipes.md +73 -0
  607. package/skills/kiln-author-asset/references/export-profiles.md +216 -0
  608. package/skills/kiln-author-asset/references/geometry-recipes.md +329 -0
  609. package/skills/kiln-author-asset/references/program-contract.md +44 -0
  610. package/skills/kiln-author-asset/references/projects-and-materials.md +158 -0
  611. package/skills/kiln-author-asset/references/reusable-frame.kiln.js +32 -0
  612. package/skills/kiln-batch-dispatch/SKILL.md +22 -0
  613. package/skills/kiln-batch-dispatch/references/clean-room-evaluation.md +35 -0
  614. package/skills/kiln-compose-scene/SKILL.md +38 -0
  615. package/skills/kiln-compose-scene/references/composition-api.md +29 -0
  616. package/skills/kiln-compose-scene/references/runtime-scenes.md +363 -0
  617. package/skills/kiln-qa-asset/SKILL.md +99 -0
  618. package/skills/kiln-qa-asset/references/engine-handoff.md +246 -0
  619. package/skills/kiln-qa-asset/references/integration-checks.md +96 -0
  620. package/skills/kiln-refine-asset/SKILL.md +136 -0
  621. package/skills/kiln-refine-asset/references/revision-and-views.md +205 -0
  622. package/skills/kiln-refine-asset/references/revision-cli.md +39 -0
  623. package/skills/kiln-setup-workspace/SKILL.md +108 -0
  624. package/skills/kiln-setup-workspace/references/plugin-install.md +66 -0
  625. package/src/agent/call-budget.ts +106 -0
  626. package/src/agent/compaction.ts +197 -0
  627. package/src/agent/concurrency.ts +30 -0
  628. package/src/agent/diff.ts +141 -0
  629. package/src/agent/generate.ts +448 -0
  630. package/src/agent/hooks.ts +204 -0
  631. package/src/agent/index.ts +114 -0
  632. package/src/agent/native-prompt.ts +51 -0
  633. package/src/agent/native-workflow.ts +33 -0
  634. package/src/agent/providers.ts +529 -0
  635. package/src/agent/run.ts +356 -0
  636. package/src/agent/skill-resources.ts +198 -0
  637. package/src/agent/split-tool-result-images.ts +80 -0
  638. package/src/agent/stream-start.ts +61 -0
  639. package/src/agent/tools.ts +113 -0
  640. package/src/agent/view-render-timeout.ts +110 -0
  641. package/src/animation-cli.ts +251 -0
  642. package/src/animation-cubic.ts +57 -0
  643. package/src/animation-spline.ts +183 -0
  644. package/src/architecture.ts +871 -0
  645. package/src/arena/adaptive.ts +119 -0
  646. package/src/arena/bradley-terry.ts +221 -0
  647. package/src/arena/index.ts +21 -0
  648. package/src/assembly-transform.ts +34 -0
  649. package/src/assembly.ts +762 -0
  650. package/src/asset-catalog.ts +30 -0
  651. package/src/asset-cli.ts +505 -0
  652. package/src/asset-export.ts +141 -0
  653. package/src/asset-materials-node.ts +78 -0
  654. package/src/asset-viewer.ts +160 -0
  655. package/src/asset-widget-uri.ts +9 -0
  656. package/src/asset-widget.ts +38 -0
  657. package/src/assets-node.ts +412 -0
  658. package/src/assets-resources.ts +137 -0
  659. package/src/assets.ts +252 -0
  660. package/src/atomic-directory.ts +45 -0
  661. package/src/authoring-style.ts +49 -0
  662. package/src/breadth-prompt.ts +79 -0
  663. package/src/build-cache-node.ts +99 -0
  664. package/src/build-cache.ts +253 -0
  665. package/src/character.ts +776 -0
  666. package/src/cli-json.ts +29 -0
  667. package/src/cli-output.ts +135 -0
  668. package/src/cli-render-mode.ts +270 -0
  669. package/src/cli.ts +809 -0
  670. package/src/community-exporter.ts +268 -0
  671. package/src/composer/agent/compaction.ts +146 -0
  672. package/src/composer/agent/index.ts +41 -0
  673. package/src/composer/agent/prompt.ts +126 -0
  674. package/src/composer/agent/run.ts +317 -0
  675. package/src/composer/agent/tools.ts +847 -0
  676. package/src/composer/agent/world-run.ts +421 -0
  677. package/src/composer/agent/world-tools.ts +411 -0
  678. package/src/composer/collision.ts +448 -0
  679. package/src/composer/contract-utils.ts +52 -0
  680. package/src/composer/dsl.ts +196 -0
  681. package/src/composer/ground.ts +27 -0
  682. package/src/composer/index.ts +19 -0
  683. package/src/composer/layout.ts +357 -0
  684. package/src/composer/model.ts +688 -0
  685. package/src/composer/overlap.ts +220 -0
  686. package/src/composer/presentation.ts +309 -0
  687. package/src/composer/reachability.ts +407 -0
  688. package/src/composer/render-port.ts +516 -0
  689. package/src/composer/terrain-runtime.ts +415 -0
  690. package/src/composer/terrain.ts +53 -0
  691. package/src/composer/world-document.ts +1019 -0
  692. package/src/composer/world-integration.ts +589 -0
  693. package/src/composer/world-package.ts +255 -0
  694. package/src/contracts/asset.ts +2030 -0
  695. package/src/contracts/breadth.ts +888 -0
  696. package/src/contracts/environment.ts +81 -0
  697. package/src/contracts/index.ts +5 -0
  698. package/src/contracts/integration.ts +100 -0
  699. package/src/contracts/requirements-migration.ts +536 -0
  700. package/src/contracts/requirements.ts +357 -0
  701. package/src/contracts/semantic.ts +544 -0
  702. package/src/deform.ts +215 -0
  703. package/src/deformation-normals.ts +84 -0
  704. package/src/direct-entry.ts +28 -0
  705. package/src/discovery/articulation-recipes.ts +190 -0
  706. package/src/discovery/catalog-schema.ts +125 -0
  707. package/src/discovery/catalog.ts +88 -0
  708. package/src/discovery/construction-recipes.ts +243 -0
  709. package/src/discovery/helper-contracts.ts +2388 -0
  710. package/src/discovery/helper-specs.ts +1046 -0
  711. package/src/discovery/index.ts +36 -0
  712. package/src/discovery/intents.ts +120 -0
  713. package/src/discovery/lexical-index.ts +72 -0
  714. package/src/discovery/query-schema.ts +71 -0
  715. package/src/discovery/recipes.ts +215 -0
  716. package/src/discovery/service.ts +329 -0
  717. package/src/discovery/shapes.ts +120 -0
  718. package/src/discovery/structural-recipes.ts +199 -0
  719. package/src/discovery/surface-recipes.ts +130 -0
  720. package/src/discovery-cli.ts +106 -0
  721. package/src/draw-diagnostics.ts +313 -0
  722. package/src/edit-buffer.ts +134 -0
  723. package/src/edit-cli.ts +125 -0
  724. package/src/engine-identity.ts +50 -0
  725. package/src/evaluator/authoring-diagnostic.ts +168 -0
  726. package/src/evaluator/handler.ts +114 -0
  727. package/src/evaluator/index.ts +50 -0
  728. package/src/evaluator/isolation.ts +454 -0
  729. package/src/evaluator/probe-invariants.ts +9 -0
  730. package/src/evaluator/probe-worker.ts +158 -0
  731. package/src/evaluator/protocol.ts +701 -0
  732. package/src/evaluator/source-check.ts +64 -0
  733. package/src/evaluator/subprocess.ts +294 -0
  734. package/src/evaluator/transport-worker.mjs +8 -0
  735. package/src/evaluator/worker-urls.ts +16 -0
  736. package/src/evaluator/worker.ts +26 -0
  737. package/src/experiments/geometry-acceptance.ts +278 -0
  738. package/src/experiments/geometry-frontier.ts +181 -0
  739. package/src/experiments/program-aliases.ts +96 -0
  740. package/src/experiments/run-w6-material-vegetation.ts +7 -0
  741. package/src/experiments/run-w7-vegetation-lod.ts +6 -0
  742. package/src/experiments/w6-material-vegetation.ts +772 -0
  743. package/src/experiments/w7-vegetation-lod.ts +335 -0
  744. package/src/exporter-node.ts +68 -0
  745. package/src/gears.ts +334 -0
  746. package/src/generated/mcp-manifest.json +2050 -0
  747. package/src/geometry-budget.ts +50 -0
  748. package/src/geometry-catalog.ts +215 -0
  749. package/src/geometry-export.ts +193 -0
  750. package/src/geometry.ts +379 -0
  751. package/src/gltf-io.ts +129 -0
  752. package/src/gltf-validator-shims.d.ts +12 -0
  753. package/src/implicit.ts +106 -0
  754. package/src/index-policy.ts +52 -0
  755. package/src/index.ts +5 -0
  756. package/src/inspect-cli.ts +198 -0
  757. package/src/inspect.ts +290 -0
  758. package/src/kit.ts +547 -0
  759. package/src/live-review-node.ts +1011 -0
  760. package/src/live-review.ts +55 -0
  761. package/src/local-runtime.ts +336 -0
  762. package/src/lod-export.ts +120 -0
  763. package/src/lod.ts +192 -0
  764. package/src/loopback.ts +6 -0
  765. package/src/material-library-node.ts +488 -0
  766. package/src/material-library.ts +481 -0
  767. package/src/material-metrics.ts +392 -0
  768. package/src/material-presets.ts +207 -0
  769. package/src/material-recipe-prompt.ts +99 -0
  770. package/src/material-recipe-runtime.ts +162 -0
  771. package/src/material-recipes.ts +748 -0
  772. package/src/material-resources.ts +640 -0
  773. package/src/material-texture-library.generated.ts +11408 -0
  774. package/src/mcp-core.ts +437 -0
  775. package/src/mcp-engine.ts +383 -0
  776. package/src/mcp-manifest.ts +104 -0
  777. package/src/mcp-server.ts +118 -0
  778. package/src/metrics.ts +277 -0
  779. package/src/migration-cli.ts +105 -0
  780. package/src/migration-rebuild.ts +265 -0
  781. package/src/node-visibility.ts +116 -0
  782. package/src/open-shell.ts +104 -0
  783. package/src/ops.ts +751 -0
  784. package/src/palette-snap.ts +209 -0
  785. package/src/palette.ts +307 -0
  786. package/src/portable-material-runtime.ts +109 -0
  787. package/src/primitives.ts +2299 -0
  788. package/src/procedural-material-v2.ts +720 -0
  789. package/src/procedural-texture.ts +427 -0
  790. package/src/profile.ts +485 -0
  791. package/src/program-store-node.ts +138 -0
  792. package/src/program-store.ts +116 -0
  793. package/src/project-bundle-node.ts +220 -0
  794. package/src/project-bundle.ts +392 -0
  795. package/src/project-cli.ts +248 -0
  796. package/src/projects-node.ts +270 -0
  797. package/src/projects.ts +274 -0
  798. package/src/prompt-api.ts +231 -0
  799. package/src/qa/architecture-corpus.ts +828 -0
  800. package/src/qa/architecture-repairs.ts +92 -0
  801. package/src/qa/architecture.ts +1358 -0
  802. package/src/qa/benchmark-fixtures.ts +441 -0
  803. package/src/qa/breadth-corpus.ts +168 -0
  804. package/src/qa/breadth-evidence.ts +595 -0
  805. package/src/qa/breadth-final.ts +453 -0
  806. package/src/qa/breadth.ts +690 -0
  807. package/src/qa/character-advisory.ts +596 -0
  808. package/src/qa/character-repairs.ts +185 -0
  809. package/src/qa/character-vehicle-corpus.ts +802 -0
  810. package/src/qa/character.ts +998 -0
  811. package/src/qa/corpus.ts +499 -0
  812. package/src/qa/environment.ts +903 -0
  813. package/src/qa/geometry-relations.ts +843 -0
  814. package/src/qa/gltf.ts +103 -0
  815. package/src/qa/index.ts +34 -0
  816. package/src/qa/lod.ts +28 -0
  817. package/src/qa/material.ts +302 -0
  818. package/src/qa/part-connectivity.ts +252 -0
  819. package/src/qa/prop-environment-prompt.ts +58 -0
  820. package/src/qa/prop-helper-policy.ts +118 -0
  821. package/src/qa/prop.ts +828 -0
  822. package/src/qa/reference-comparison.ts +495 -0
  823. package/src/qa/registry.ts +604 -0
  824. package/src/qa/requirements-applicability.ts +241 -0
  825. package/src/qa/requirements-report.ts +280 -0
  826. package/src/qa/requirements-run.ts +470 -0
  827. package/src/qa/run.ts +329 -0
  828. package/src/qa/self-intersection.ts +741 -0
  829. package/src/qa/sweep.ts +68 -0
  830. package/src/qa/types.ts +187 -0
  831. package/src/qa/universal.ts +506 -0
  832. package/src/qa/vegetation-corpus.ts +404 -0
  833. package/src/qa/vegetation.ts +1174 -0
  834. package/src/qa/vehicle-advisory.ts +468 -0
  835. package/src/qa/vehicle.ts +756 -0
  836. package/src/rebuild-options.ts +16 -0
  837. package/src/render-capabilities.ts +140 -0
  838. package/src/render-service-client.ts +297 -0
  839. package/src/render-service-host.ts +278 -0
  840. package/src/render-service-windows.ts +80 -0
  841. package/src/render.ts +2748 -0
  842. package/src/requirements-assets.ts +53 -0
  843. package/src/requirements-context.ts +170 -0
  844. package/src/requirements-file.ts +10 -0
  845. package/src/requirements-identity.ts +43 -0
  846. package/src/requirements-json.ts +65 -0
  847. package/src/requirements-store.ts +150 -0
  848. package/src/requirements.ts +4 -0
  849. package/src/review-cli.ts +81 -0
  850. package/src/revision-comparison.ts +425 -0
  851. package/src/rig-export.ts +29 -0
  852. package/src/rigid-merge.ts +691 -0
  853. package/src/runtime-identity.ts +207 -0
  854. package/src/runtime-support.mjs +20 -0
  855. package/src/service-cli.ts +210 -0
  856. package/src/solids.ts +650 -0
  857. package/src/source-bindings.ts +90 -0
  858. package/src/source-runtime-checks.ts +189 -0
  859. package/src/sweep-analysis.ts +168 -0
  860. package/src/sweep.ts +482 -0
  861. package/src/texture-bake.ts +526 -0
  862. package/src/texture-contract.ts +12 -0
  863. package/src/texture-resolver.ts +61 -0
  864. package/src/textures.ts +345 -0
  865. package/src/tools/actions.ts +124 -0
  866. package/src/tools/capture-input.ts +233 -0
  867. package/src/tools/discovery.ts +194 -0
  868. package/src/tools/materials.ts +206 -0
  869. package/src/tools/preview-fidelity.ts +31 -0
  870. package/src/tools/program-artifacts.ts +107 -0
  871. package/src/tools/programs.ts +190 -0
  872. package/src/tools/projects.ts +141 -0
  873. package/src/tools/registry.ts +3111 -0
  874. package/src/tools/review-detail.ts +788 -0
  875. package/src/tools/review.ts +269 -0
  876. package/src/tools/skill-resource.ts +9 -0
  877. package/src/tools/workspace.ts +112 -0
  878. package/src/user-data-extras.ts +181 -0
  879. package/src/user-data-validation.ts +211 -0
  880. package/src/uv-project.ts +185 -0
  881. package/src/uv-shapes.ts +63 -0
  882. package/src/uv.ts +301 -0
  883. package/src/validation.ts +1257 -0
  884. package/src/vegetation-prompt.ts +109 -0
  885. package/src/vehicle.ts +742 -0
  886. package/src/viewer/app.ts +666 -0
  887. package/src/viewer/attribution.ts +17 -0
  888. package/src/viewer/camera-state.ts +45 -0
  889. package/src/viewer/chat-app.ts +221 -0
  890. package/src/viewer/chat-download.ts +53 -0
  891. package/src/viewer/dashboard.ts +59 -0
  892. package/src/viewer/deep-link.ts +34 -0
  893. package/src/viewer/dom.ts +63 -0
  894. package/src/viewer/framing.ts +55 -0
  895. package/src/viewer/library-state.ts +34 -0
  896. package/src/viewer/live-panel.ts +742 -0
  897. package/src/viewer/live-state.ts +99 -0
  898. package/src/viewer/load-guard.ts +10 -0
  899. package/src/viewer/lod-control.ts +98 -0
  900. package/src/viewer/lod.ts +172 -0
  901. package/src/viewer/material-preset-form.ts +34 -0
  902. package/src/viewer/materials-panel.ts +335 -0
  903. package/src/viewer/membership-panel.ts +122 -0
  904. package/src/viewer/navigation.ts +9 -0
  905. package/src/viewer/performance-control.ts +75 -0
  906. package/src/viewer/performance.ts +61 -0
  907. package/src/viewer/project-editor.ts +37 -0
  908. package/src/viewer/project-membership.ts +20 -0
  909. package/src/viewer/projects-panel.ts +374 -0
  910. package/src/viewer/scene.ts +426 -0
  911. package/src/viewer/visibility.ts +73 -0
  912. package/src/views/annotate.ts +138 -0
  913. package/src/views/architecture.ts +77 -0
  914. package/src/views/background.ts +87 -0
  915. package/src/views/camera-capture.ts +143 -0
  916. package/src/views/camera.ts +622 -0
  917. package/src/views/capture-cache.ts +272 -0
  918. package/src/views/capture-limits.ts +73 -0
  919. package/src/views/capture.ts +300 -0
  920. package/src/views/character-capture.ts +279 -0
  921. package/src/views/character.ts +267 -0
  922. package/src/views/diagnostic.ts +853 -0
  923. package/src/views/evidence-history.ts +166 -0
  924. package/src/views/glb.ts +747 -0
  925. package/src/views/grid.ts +118 -0
  926. package/src/views/index.ts +1071 -0
  927. package/src/views/inspect.ts +296 -0
  928. package/src/views/lod.ts +117 -0
  929. package/src/views/measurement.ts +69 -0
  930. package/src/views/part-placement.ts +50 -0
  931. package/src/views/png.ts +175 -0
  932. package/src/views/port.ts +335 -0
  933. package/src/views/pose.ts +541 -0
  934. package/src/views/raster.ts +627 -0
  935. package/src/views/renderer-id.ts +31 -0
  936. package/src/views/scene-raster.ts +139 -0
  937. package/src/views/surface-distance.ts +403 -0
  938. package/src/views/vehicle.ts +431 -0
  939. package/src/wall-panels.ts +127 -0
  940. package/src/widget-transfer.ts +115 -0
  941. package/src/workspace-cli.ts +41 -0
  942. package/src/workspace-http.ts +219 -0
  943. package/src/workspace-location.ts +20 -0
  944. package/src/workspace-node.ts +91 -0
  945. package/src/workspace.ts +43 -0
  946. package/src/written-nodes.ts +39 -0
  947. package/src/xatlasjs-shims.d.ts +16 -0
@@ -0,0 +1,130 @@
1
+ # Contributing to Kiln
2
+
3
+ Small fixes, clear bug reports, examples and documentation improvements are welcome.
4
+ For a behavior bug, include a minimal `.kiln.js` program, the command or tool call,
5
+ and the error or image you saw. Include your OS, Node version and whether rendering
6
+ used CPU or GPU. Remove credentials and private paths from shared logs.
7
+
8
+ ## Work on the engine
9
+
10
+ Read [AGENTS.md](AGENTS.md) and the [README](README.md). Contributor checks use Bun
11
+ 1.4.2, Node 22.23.3 and npm 12.2.0. End users only need Node/npm for a built package.
12
+
13
+ ```sh
14
+ bun install --frozen-lockfile
15
+ bun run check:toolchain
16
+ bun run check:skills
17
+ bun run build:sdk
18
+ bun run typecheck
19
+ bun run lint
20
+ bun run test
21
+ bun run test:render-service
22
+ bun run test:coverage
23
+ ```
24
+
25
+ `bun run test` is `bun test src scripts`, so it never reaches `render-service/` -- a
26
+ separate npm project with its own lockfile and a native dependency.
27
+ `bun run test:render-service` does, after `npm --prefix render-service ci
28
+ --ignore-scripts` once. This suite needs no GPU or Dawn build; CI requires it.
29
+
30
+ The maintained scenes have a separate lockfile and validation commands:
31
+
32
+ ```sh
33
+ cd scenes
34
+ bun install --frozen-lockfile
35
+ bun run check:toolchain
36
+ bun run check:pins
37
+ bun run typecheck
38
+ bun run lint
39
+ bun run test
40
+ bun test ./scripts/tests --timeout 20000
41
+ ```
42
+
43
+ The pin check reads the engine, render service and site from the same checkout.
44
+ The portable test runner covers scene source contracts; the separate script-test
45
+ command covers the validation and evidence tooling. Asset and browser qualification
46
+ require staged inputs; see [scenes/README.md](scenes/README.md).
47
+
48
+ `lint` reports **nothing** on a clean tree, and a warning fails it. There is no
49
+ tolerated baseline to compare against, so any diagnostic your change produces is
50
+ yours -- either fix it, or suppress it with a `biome-ignore` comment that says why.
51
+
52
+ The surface is every directory that holds code: `src/`, `site/src/`, `site/*.ts`,
53
+ `render-service/` and `scripts/`. If you add
54
+ a directory, add it to `files.includes` in `biome.json`: Biome silently processes
55
+ nothing outside that list, which is how `scripts/` went unlinted while the coverage
56
+ run measured it. Note that `biome` prints at most 20 diagnostics by default, so a
57
+ count read off the output is a floor.
58
+
59
+ ### Version
60
+
61
+ Maintainers should follow the [v1 release runbook](https://github.com/instruktlabs/kiln/blob/main/docs/releasing.md) for exact
62
+ archive qualification, npm staging and owner promotion.
63
+
64
+ `version` in `package.json` identifies the installable release. Changes on `main`
65
+ ahead of that release go in the changelog's `Unreleased` section and can retain the
66
+ released version until the next release is prepared. A new release must bump the
67
+ version before producing its tarball: two different releases must never share a
68
+ package version. Patch for a fix, minor for changed or added capability; this
69
+ package is pre-1.0 and unpublished, so a minor is the normal case.
70
+
71
+ Bumping it means rebuilding: `runtimeBuildIdentity` hashes the version into each
72
+ entry's `identity` in `dist/build.json`, which is the value a build receipt cites. Run
73
+ `bun run build:runtime` and commit `dist/`. A test asserts the two agree -- nothing else
74
+ does, because the version is read from `package.json` at runtime rather than inlined, so
75
+ the bundle bytes are identical either way and a byte comparison cannot see the drift.
76
+
77
+ For behavior changes, first add a focused failing test, then make the smallest fix
78
+ and run the relevant checks. Keep the coverage thresholds. Ordinary tests use CPU
79
+ rendering and make no model calls. Live provider tests are optional and can spend
80
+ credits; they are not required for a documentation or platform contribution.
81
+
82
+ Rebuild the runtime bundles after changing the CLI, MCP server or evaluator:
83
+
84
+ ```sh
85
+ bun run build:runtime
86
+ ```
87
+
88
+ Try the result in a separate authoring workspace:
89
+
90
+ ```sh
91
+ node scripts/create-workspace.mjs ../kiln-test-assets --harness opencode
92
+ ```
93
+
94
+ Choose your installed harness and follow the generated `START.md`. The directory
95
+ must be empty and outside the engine installation. Setup copies project-local
96
+ skills and configuration without changing global agent settings or authentication.
97
+
98
+ In a pull request, describe the problem, resulting behavior and checks you ran.
99
+ Keep generated source examples and their provenance together. If you change a
100
+ public tool, update its shared registry definition rather than duplicating a
101
+ transport-specific definition.
102
+
103
+ ## Check a built package
104
+
105
+ ```sh
106
+ bun run build:runtime
107
+ npm pack --ignore-scripts
108
+ npm run test:package -- --tarball /absolute/path/to/the-generated-package.tgz
109
+ ```
110
+
111
+ Use the actual filename printed by `npm pack`. The check installs runtime
112
+ dependencies in a temporary directory and exercises the packaged CLI, MCP server,
113
+ workspace setup and exports. It uses npm registry access but makes no model calls
114
+ and publishes nothing.
115
+
116
+ ## Help verify macOS
117
+
118
+ Windows, Linux and hosted macOS runners have passing package checks, including
119
+ Apple Silicon and Intel. The [Mac setup guide](docs/install.md) still benefits from
120
+ reports on real user installations and optional GPU support.
121
+
122
+ If you have a Mac, try the built-package workflow and report the package hash,
123
+ macOS version, Node/npm versions, architecture (`node -p process.arch`) and package
124
+ check result. A small PR fixing a reproduced installation issue is useful; a clear
125
+ passing or failing receipt is useful too. CI already contains native jobs for both
126
+ architectures. No model generation or paid provider account is needed.
127
+
128
+ Keep CPU package verification separate from Apple GPU/Metal testing. A successful
129
+ installation does not establish GPU support. There is no need to install a new
130
+ global skill set or copy authentication files to contribute either check.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Matthew Kissinger
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,444 @@
1
- # Temporary Holding Version
1
+ # Kiln
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![CI](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml/badge.svg)](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
+
6
+ **Build and revise 3D assets with your coding agent.**
7
+
8
+ **The package name is `@instruktlabs/kiln`.** This checkout targets version 1.0.0.
9
+ Stable releases use npm's `latest` tag; release candidates use `next`.
10
+ Until 1.0.0 is available in the [npm registry](https://www.npmjs.com/package/@instruktlabs/kiln),
11
+ install the public RC with `npm install @instruktlabs/kiln@next`, or pin
12
+ `@instruktlabs/kiln@1.0.0-rc.1`. Do not use the unqualified name while `latest`
13
+ still points to the temporary `0.0.0-stage` holding version.
14
+ Package publication and the hosted service have separate release gates. The [SDK guide](docs/sdk.md)
15
+ describes the compiled ESM library; use the [local package build](docs/install.md#install-a-local-package)
16
+ to test this checkout. The 0.10.0 release described below remains a historical release.
17
+
18
+ The agent writes JavaScript using Kiln's geometry and material helpers. Kiln runs the
19
+ program and returns rendered views and structural checks so the agent can review its
20
+ work. Export the asset as a GLB and keep the source for later changes.
21
+
22
+ Kiln runs locally. It includes an MCP server, a CLI, a TypeScript library, and skills
23
+ for authoring, editing, animation review, and scene composition. Your agent supplies
24
+ the model; Kiln does not require a separate model API key for its tools.
25
+
26
+ Walk the [Farm](https://kilnstudio.tools/scenes/farm/), drive across
27
+ [Golden Gate](https://kilnstudio.tools/scenes/golden-gate/), or explore the
28
+ [Foundry Floor](https://kilnstudio.tools/scenes/foundry-floor/), or fight as Achilles
29
+ or Hector in [Troy](https://kilnstudio.tools/scenes/troy/).
30
+ The scenes put Kiln assets to work with animation, levels of detail and interactive controls.
31
+
32
+ | Farm | Golden Gate |
33
+ | --- | --- |
34
+ | [![Explore the Farm scene](assets/readme/farm-v09.png)](https://kilnstudio.tools/scenes/farm/) | [![Golden Gate over the water](assets/readme/golden-gate-v09.png)](https://kilnstudio.tools/scenes/golden-gate/) |
35
+ | Crops, animals and working farm buildings. | Bridge, terrain, water and drivable traffic. |
36
+
37
+ | Foundry Floor: the campus | Inside the fab |
38
+ | --- | --- |
39
+ | [![Foundry campus exterior](assets/readme/foundry-campus-v09.png)](https://kilnstudio.tools/scenes/foundry-floor/) | [![Container transport inside the Foundry Floor](assets/readme/foundry-floor-v09.png)](https://kilnstudio.tools/scenes/foundry-floor/) |
40
+
41
+ Foundry Floor pairs a factory campus with a representative floor in its southwest
42
+ building. AMRs, robot arms and overhead transport move containers through the fab.
43
+
44
+ Six reusable vehicles, shown with the gallery's live body-paint controls:
45
+
46
+ | Hatchback · yellow | Sedan · blue | SUV · green |
47
+ | --- | --- | --- |
48
+ | [![Yellow hatchback](assets/readme/hatchback-yellow.png)](https://kilnstudio.tools/gallery/hatchback/) | [![Blue sedan](assets/readme/sedan-blue.png)](https://kilnstudio.tools/gallery/sedan/) | [![Green SUV](assets/readme/suv-green.png)](https://kilnstudio.tools/gallery/suv/) |
49
+ | Pickup · red | Box truck · silver | Transit bus · blue |
50
+ | [![Red pickup](assets/readme/pickup-red.png)](https://kilnstudio.tools/gallery/pickup/) | [![Silver box truck](assets/readme/box-truck-silver.png)](https://kilnstudio.tools/gallery/box-truck/) | [![Blue transit bus](assets/readme/transit-bus-blue.png)](https://kilnstudio.tools/gallery/transit-bus/) |
51
+
52
+ [Browse the current assets](https://kilnstudio.tools/gallery/) ·
53
+ [Farm pack](https://kilnstudio.tools/packs/farm/) ·
54
+ [Vehicles pack](https://kilnstudio.tools/packs/vehicles/) ·
55
+ [Scenes](https://kilnstudio.tools/scenes/)
56
+
57
+ All five packs offer **Runtime assets** for applications and **Editable assets** with
58
+ authoring sources, materials and the available revisions. The vehicle viewer includes
59
+ live paint colours. [Pack source](packs/README.md) and the maintained
60
+ [Farm, Bridge, Foundry and Troy scene code](scenes/README.md) are in this repository.
61
+ Large generated models and archives are downloaded explicitly from Cloudflare.
62
+ The [Blender and Unity guide](https://kilnstudio.tools/docs/engine-handoff/)
63
+ describes the tested import workflows and their limits.
64
+
65
+ Kiln's local dashboard adds [optional projects, a material library and Live Review](docs/projects-and-live-review.md).
66
+ Standalone assets remain a complete workflow; projects add shared briefs, inventories,
67
+ art direction and material pins when useful.
68
+
69
+ Earlier examples remain in the gallery and [example provenance](docs/example-provenance.md).
70
+ They are historical showcases, not golden outputs or a model ranking.
71
+ Screenshots above show the v0.9 review builds; [image provenance](assets/readme/README.md).
72
+
73
+ Version **0.10.0** is the v1 readiness release: the stdio server serves protocol revision
74
+ 2026-07-28 beside the 2025 handshakes and answers before the engine loads, the three
75
+ record tools are flat objects with an `action` field, every tool result is bounded and
76
+ leads with its verdict, and the generated workspace guide and skills are shorter. It
77
+ builds on 0.9.0's optional projects, material library, Live Review and calibrated
78
+ `review-neutral-v1` lighting rig. [CHANGELOG.md](CHANGELOG.md) lists the changes with
79
+ each breaking one marked, and the [migration notes](docs/migration.md#changes-in-0100)
80
+ list what an existing author will notice.
81
+
82
+ **0.10.0 was the source and site release for dogfooding.** Its package tarball is attached
83
+ to the [v0.10.0 release](https://github.com/instruktlabs/kiln/releases/tag/v0.10.0)
84
+ with `SHA256SUMS.txt` and the installed-package receipts, as later releases' tarballs are
85
+ on the [releases page](https://github.com/instruktlabs/kiln/releases).
86
+ The public npm release candidate and stable release process are described above;
87
+ site deployment does not publish a package.
88
+
89
+ ## Install and start an asset workspace
90
+
91
+ Use Node.js **20.15.0+ on the 20.x line**, or **22.2.0 and later**, with npm.
92
+ Download the tarball and `SHA256SUMS.txt` from the release and check the tarball
93
+ against the checksum file before installing. Use only a tarball actually attached to
94
+ a release, with that release's documentation; a checkout ahead of the release
95
+ [builds its own package](docs/install.md#install-a-local-package). Bun and a separate
96
+ model API key are not required to install the tarball:
97
+
98
+ ```sh
99
+ mkdir kiln-install
100
+ cd kiln-install
101
+ npm init -y
102
+ npm install /absolute/path/to/PACKAGE.tgz --omit=dev --include=optional
103
+ npm exec --offline -- kiln-init ../my-assets --harness opencode # or claude, codex, hermes, agy, copilot, cursor-agent
104
+ cd ../my-assets
105
+ # Follow START.md for your harness
106
+ ```
107
+
108
+ The installation stays separate from your asset workspace. Choose `claude`, `codex`,
109
+ `opencode`, `hermes`, `agy`, `copilot`, or `cursor-agent` for `--harness`.
110
+ The [installation guide](docs/install.md#install-the-package) covers checksums,
111
+ local package builds, existing-workspace upgrades and platform qualification. For a new
112
+ installation, a maintained Node 22 or 24 LTS release is recommended; Node 20
113
+ compatibility accommodates existing distribution-managed installations.
114
+
115
+ ## Run from a checkout
116
+
117
+ For engine development, install [Bun](https://bun.sh) 1.4.2, then:
118
+
119
+ ```sh
120
+ git clone --filter=blob:none https://github.com/instruktlabs/kiln
121
+ cd kiln
122
+ bun install --frozen-lockfile
123
+ bun run kiln render examples/crate.kiln.js --out crate.glb --views sheet.png
124
+ ```
125
+
126
+ `--filter=blob:none` checks out the current tree in full and leaves historical
127
+ file contents on the server, fetching them only if you ask for an old revision.
128
+ A plain `git clone` also works and gives you the whole history up front.
129
+
130
+ This writes a GLB and a six-view image of an existing program. It makes no model call.
131
+ Rendering uses the CPU unless a compatible local GPU service is available.
132
+ Use `--render cpu` to select the CPU explicitly. Sheets sit on a neutral grey; add
133
+ `--backdrop dark` or `--backdrop light` when an asset's silhouette merges with it; `kiln save`
134
+ takes the same flag for the preview it stores.
135
+
136
+ For anchored CLI edits, import source with `kiln source asset.kiln.js`, then run
137
+ `kiln edit RETURNED_REF --edits edits.json`. The file contains an array of
138
+ `{ "oldString": "exact existing text", "newString": "replacement text" }` objects.
139
+ The command returns a new immutable reference and diff without executing source;
140
+ render that new reference to inspect the result. `kiln edit --help` describes
141
+ batch limits and `replaceAll`.
142
+
143
+ **Using assets in Blender or Unity?** Read the [handoff guide](docs/engine-handoff.md) for direct GLB import,
144
+ materials, backfaces, named pivots and animation checks. The established exporter remains
145
+ the default. An **experimental community exporter** is available for explicit comparison
146
+ when you need its additional feature preservation; the guide includes activation, rollback
147
+ and known limitations. Both converters are included in this installation.
148
+
149
+ <details>
150
+ <summary>For clones made before the September 10 history cleanup</summary>
151
+
152
+ History was rewritten on 2026-09-10 to drop 288 MB of gallery renders and launch
153
+ video that no tool reads, taking a clone from 440 MB to 60 MB, or 49 MB with
154
+ `--filter=blob:none`; measured 2026-09-12. Every commit survived and the tree is
155
+ unchanged apart from those files, but every commit hash changed, so a clone made
156
+ before that date cannot fast-forward.
157
+
158
+ Re-cloning is simplest. Before converting an old clone, back up uncommitted work
159
+ and local branches: the commands below reset the checkout and prune recovery
160
+ history. Move the **tag** as well as the branch:
161
+
162
+ ```sh
163
+ git fetch --tags --force origin
164
+ git reset --hard origin/main
165
+ git reflog expire --expire=now --all
166
+ git gc --prune=now
167
+ ```
168
+
169
+ `--force` is the load-bearing flag. `oss-2026-09-05` was rewritten too, and git
170
+ will not move a tag that already exists without it: plain `git fetch --tags`, and
171
+ even `--prune-tags`, both report `would clobber existing tag` and leave the old
172
+ one in place, holding every removed file reachable. Omit it and `.git` stays at
173
+ 228 MB where a fresh clone is 26 MB; run it and the same clone packs to 23 MB.
174
+
175
+ The gallery images are served from `assets.kilnstudio.tools`; the 83 poster
176
+ receipts that attest their bytes stayed in `examples/renders/`.
177
+
178
+ </details>
179
+
180
+ ## Connect your agent
181
+
182
+ The [agent reading guide](site/public/llms.txt) links to setup, tool schemas and the
183
+ source revision workflow in plain text.
184
+
185
+ The installation commands above create a separate asset workspace, register MCP
186
+ and copy the Kiln skills. Follow its START.md to launch your harness. Setup writes
187
+ project-local configuration and leaves your global settings unchanged. A user-level server
188
+ named `kiln` from another installation can still load beside the workspace's
189
+ `kiln_workspace`; author with `kiln_workspace`, and disable the other server for these
190
+ sessions when the harness lists both ([how to tell them apart](docs/harnesses.md)).
191
+
192
+ If you are developing Kiln from a source checkout, create that workspace with:
193
+
194
+ ```sh
195
+ bun run build:runtime
196
+ node scripts/create-workspace.mjs ../my-assets --harness opencode
197
+ cd ../my-assets
198
+ # Follow START.md for your harness
199
+ ```
200
+
201
+ Choose `claude`, `codex`, `opencode`, `hermes`, `agy`, `copilot`, or `cursor-agent` for `--harness`, then open that harness in the
202
+ new directory using its generated START.md instructions and accept its project and MCP trust prompts. Sign in to your harness
203
+ first. The compiled MCP server and CLI accept Node.js 20.15.0+ on the 20.x line,
204
+ or 22.2.0 and later. Bun is for building and testing the engine; installed commands
205
+ do not require it. The optional native Strands agent requires Node 22.2.0+.
206
+ See the [runtime requirements and qualification limits](docs/install.md).
207
+
208
+ If the brief depends on textures, roughness, metalness, glass, or other material evidence,
209
+ check the optional [GPU renderer setup](docs/rendering.md#running-the-gpu-renderer) before
210
+ the first authoring session. Auto mode starts a compatible local service lazily when its
211
+ dependencies are available. CPU views are useful for shape and contact, but not for judging
212
+ materials. After dependency repair or a failed startup, call
213
+ `kiln_renderer({action:"reprobe"})` inside the MCP session to refresh its connection.
214
+ Restart after changing Kiln, environment variables or credentials. A compatible
215
+ renderer can also run on another device: configure the MCP server's
216
+ `KILN_RENDER_PORT_URL` and `KILN_RENDER_TOKEN`, or use CLI `--render-port URL` with
217
+ the token in its environment. The [rendering guide](docs/rendering.md#running-the-gpu-renderer)
218
+ covers remote service authentication and lifecycle.
219
+
220
+ **Follow START.md rather than launching the harness directly.** Some harnesses keep all
221
+ configuration in a user-level home and read nothing from a project directory, so the workspace
222
+ reaches them through a small generated launcher -- `node codex.mjs`, `node agy.mjs`,
223
+ `node hermes.mjs` -- which passes the server, the program store and the directory per
224
+ invocation. Nothing is written outside the workspace and your existing configuration and
225
+ sign-in are left alone. Starting those harnesses with their bare command in the workspace finds
226
+ no Kiln tools. START.md names the right command for the harness you chose, and hermes needs one
227
+ extra user-level registration that it prints for you.
228
+
229
+ Try: “Read AGENTS.md, then make a wooden workbench with a lower shelf. Render it,
230
+ review the result, and save the source and GLB.”
231
+
232
+ Setup installs the core authoring, refinement and QA skills. Composition and batch workflows are opt-in.
233
+ These skills work with your chosen harness through CLI/MCP. The optional built-in
234
+ Strands agent adds its own workflow internally; do not copy that context into your
235
+ harness. See [the workflow boundary](docs/runtime.md#optional-native-strands-workflow).
236
+
237
+ The workspace contains your brief, assets, and skills. The engine source and example
238
+ collection stay in the installation directory. See [clean-room setup](docs/clean-room.md)
239
+ for the exact boundaries and headless use, or [installation](docs/install.md) for other
240
+ harnesses and the plugin path.
241
+
242
+ For Google models, see [Antigravity and Gemini setup](docs/google.md). Local coding
243
+ agents use stdio directly; browser chat connections have different setup requirements.
244
+
245
+ ## Revise an asset
246
+
247
+ Save finished work into this workspace with
248
+ `node kiln.mjs save workbench.kiln.js --name "Workbench"`, or add
249
+ `--collection library` when you explicitly want it in your cross-workspace user library.
250
+ Run `node kiln.mjs view` to browse **This project** and **Your library**, inspect revisions,
251
+ and download Original GLB, Runtime GLB with companion metadata, or editable ZIP
252
+ bundles. Both collections use the same portable format and viewer. See [saved assets and the viewer](docs/collections.md).
253
+
254
+ For application delivery, export with `--profile runtime --out asset.glb` to move
255
+ Kiln's animation review metadata into a hash-linked JSON sidecar. Native glTF animation
256
+ still plays without that sidecar. The default `editable` profile preserves saved files
257
+ exactly; keep its ZIP for source and build records. The delivery profile is independent
258
+ of the established/experimental converter selected during generation. An export never
259
+ replaces an existing file, unlike `render --out`, because it hands off one exact saved
260
+ revision; `--json` prints a receipt with each file's `bytes` and `sha256`.
261
+ [Which options to use, why they exist, and examples](docs/export-profiles.md#which-option-should-i-use)
262
+ are also included in the authoring and QA skills installed into new asset workspaces.
263
+
264
+ ## Use Kiln in a chat client
265
+
266
+ Create and refine assets in ChatGPT through a private MCP connection, then ask to
267
+ see a saved revision. `kiln_present` opens that exact revision in an interactive 3D card in
268
+ supporting MCP App clients. Every coding harness receives exact artifact descriptors and readable
269
+ resource URIs in the JSON result; a verified host can opt into core MCP `resource_link` blocks.
270
+ An agent can also launch the local viewer on the saved revision and provide its loopback URL.
271
+ Orbit the model and inspect its animation without leaving chat.
272
+ ChatGPT viewing was verified with real saved assets.
273
+
274
+ 1. Install Kiln (or build the runtime from a checkout) and connect its stdio MCP server through an OpenAI Secure
275
+ MCP Tunnel scoped to your workspace.
276
+ 2. Install the authoring and refinement skills with their reference files using
277
+ ChatGPT's native skill uploader.
278
+ 3. Ask: “Make a field recorder, review the renders, save it to my project
279
+ collection, and show it with `kiln_present`.”
280
+
281
+ The [ChatGPT setup guide](docs/chatgpt.md) covers connection, skill packaging, and
282
+ host requirements. This currently needs developer setup; it is not a public
283
+ one-click ChatGPT app. Local GLB and editable ZIP downloads work through
284
+ `kiln view`. ChatGPT-native GLB/ZIP attachments remain unverified; download support
285
+ depends on the client or a host-provided delivery link.
286
+
287
+ ## Restore source for another edit
288
+
289
+ Import an existing program from your asset workspace:
290
+
291
+ ```sh
292
+ node kiln.mjs source workbench.kiln.js
293
+ ```
294
+
295
+ The command prints a short `programRef`, such as `p_7c94a132b8e0`, identifying that
296
+ exact source. Copy it exactly for later calls:
297
+
298
+ ```js
299
+ // programRef is the value returned by Kiln.
300
+ kiln_source({ programRef, query: "shelfHeight" })
301
+ kiln_edit({
302
+ programRef,
303
+ edits: [{ oldString: "shelfHeight = 0.2", newString: "shelfHeight = 0.35" }]
304
+ })
305
+ ```
306
+
307
+ `kiln_source` reads a bounded portion of the source. `kiln_edit` applies the changes
308
+ and renders the result, returning a new reference and a diff. The original revision
309
+ remains available. Text outside the replacements stays unchanged, and a failed edit
310
+ does not modify the base.
311
+
312
+ Save the new revision and export it without copying its source through the model:
313
+
314
+ ```sh
315
+ node kiln.mjs source RETURNED_REF --out workbench-v2.kiln.js
316
+ node kiln.mjs render RETURNED_REF --out workbench-v2.glb --views workbench-v2.png
317
+ ```
318
+
319
+ Replace `RETURNED_REF` with the new reference from the edit. Short references survive
320
+ local server restarts while you keep the workspace's store. Full SHA-256 references
321
+ are still accepted. Inline `code` still works for new drafts and
322
+ existing integrations. [Program storage and API details](docs/programs.md).
323
+
324
+ ## Shape geometry and choose views
325
+
326
+ Keep equations and custom modeling functions in the program. For example, this
327
+ samples a curved sheet; the [complete canopy example](site/examples/equation-canopy.kiln.js)
328
+ adds its material, posts and sockets.
329
+
330
+ ```js
331
+ const surface = parametricSurface(
332
+ (u, v) => [u, 1.35 + 0.22 * Math.sin(u * 2) + 0.12 * v * v, v],
333
+ { u: [-1.6, 1.6], v: [-0.8, 0.8],
334
+ uSegments: 48, vSegments: 24, orientation: 'vu' }
335
+ );
336
+ ```
337
+
338
+ Use `meshGeo` for explicit topology, or shape existing geometry with bends, twists,
339
+ lofts and sweeps. [Geometry contracts and limits](docs/geometry.md).
340
+
341
+ To check an attachment, request a close-up beside a whole-asset view. Reuse the
342
+ `programRef` and exact `partPath` from the render result:
343
+
344
+ ```js
345
+ kiln_render({ programRef, capture: {
346
+ version: 'kiln.capture.v1', cols: 2,
347
+ shots: [
348
+ { name: 'Whole asset' },
349
+ { name: 'Attachment', subject: { path: partPath },
350
+ visibility: 'context', camera: { type: 'orbit', relativeTo: 'part',
351
+ azimuthDeg: 65, elevationDeg: -18, padding: 3 } }
352
+ ]
353
+ }});
354
+ ```
355
+
356
+ The close-up follows the part's local axes while retaining surrounding geometry.
357
+ You can also set explicit camera positions, return separate images, or sample
358
+ animation frames. Either capture shape also takes `backdrop: 'neutral' | 'dark' |
359
+ 'light'`, and every result echoes the one used as `capture.backdrop`. `kiln_save` takes the
360
+ same field for the preview it stores, and the manifest records it as `preview.backdrop`.
361
+ [Camera controls](docs/cameras.md).
362
+
363
+ ## Tool reference
364
+
365
+ Use `kiln_discover` to find operations, assemblies and optional recipes in ordinary
366
+ modeling language. An empty request returns a compact overview with starting
367
+ signatures and six summaries. For example, search with `{ query: "curved hollow tube" }`,
368
+ then request `{ ids: ["sweepProfile"] }` for a complete contract and example. Exact
369
+ batches accept up to six distinct IDs or executable names. Recipes take the id the
370
+ search prints, with or without its prefix: `{ ids: ["recipe:material-wood-v1"] }` or
371
+ `{ ids: ["material-wood-v1"] }`. A material recipe's summary names the call it stands
372
+ for, `await materialRecipe("kiln.material.wood.v1")`. Search is local and needs no
373
+ separate model, network call, or asset-category selection.
374
+
375
+ The same workflow is available from your asset workspace in the CLI:
376
+
377
+ ```sh
378
+ node kiln.mjs discover --query "curved hollow tube"
379
+ node kiln.mjs discover --id sweepProfile --id createPart --json
380
+ node kiln.mjs discover --kind recipe
381
+ node kiln.mjs discover --capabilities
382
+ ```
383
+
384
+ Search and overview accept `family`, `kind`, `tags`, `offset` and `limit` (default six,
385
+ maximum twelve). CLI uses `--family`, `--kind`, repeated `--tag`, `--offset` and `--limit`.
386
+ Browse current filter labels in the overview. Search relevance does not certify that
387
+ a helper supports the entire requested asset; read its limitations and exact contract.
388
+
389
+ `kiln_list_primitives` and its `name`, `names`, and `category` selectors are removed,
390
+ with no callable alias. Stop the harness/MCP session, then run `kiln-init WORKSPACE
391
+ --check` and `kiln-init WORKSPACE --upgrade` from the updated installation. Upgrade
392
+ preserves assets and refuses conflicting local changes; resolve those explicitly
393
+ before retrying. Restart the session to load current schemas. A fresh workspace is
394
+ also supported. `--repair` repairs paths without upgrading copied skills. Use
395
+ `kiln migrate intent|manifest OLD.json --out REVIEW.json` for an explicit legacy-data
396
+ review; unresolved obligations prevent activation. See [migration](docs/migration.md).
397
+ The
398
+ [generated tool reference](docs/tools.md) covers source editing, validation,
399
+ rendering, part inspection, animation and interior views. The shared factory is
400
+ `createKilnProgramToolRegistry` in `@instruktlabs/kiln/tools`.
401
+
402
+ ## Uses and limitations
403
+
404
+ The examples cover props, machinery, vehicles, buildings and rigid-part animation.
405
+ Programs are useful when you want named parts, adjustable dimensions and repeatable
406
+ variants. Organic shapes and detailed character work are less well demonstrated.
407
+ Kiln is not a reconstruction tool: a reference image does not establish unseen geometry.
408
+
409
+ Structural checks help find problems, but do not establish visual quality or suitability
410
+ for a particular game. Review scale, performance, collision and appearance in your target
411
+ scene. The CPU renderer shows geometry and base colours; inspect `viewFidelity` before
412
+ judging textures or PBR materials. [GPU setup and materials](docs/rendering.md).
413
+
414
+ ## Development
415
+
416
+ ```sh
417
+ bun run typecheck
418
+ bun run lint
419
+ bun run test
420
+ bun run test:coverage
421
+ ```
422
+
423
+ Tests run without model calls and use CPU rendering. Coverage thresholds are checked
424
+ in CI. Runtime changes to the MCP server or CLI must also rebuild their committed bundles:
425
+
426
+ ```sh
427
+ bun run build:runtime
428
+ ```
429
+
430
+ For bug reports, include the smallest program that reproduces the problem and the
431
+ render or error you saw. [CONTRIBUTING.md](CONTRIBUTING.md) covers setup, checks and
432
+ pull requests; [AGENTS.md](AGENTS.md) covers repository conventions.
433
+
434
+ - [Library and architecture](docs/architecture.md)
435
+ - [Headless generation](docs/dispatch.md)
436
+ - [Headless harnesses](docs/harnesses.md)
437
+ - [Program-reference design](docs/programs.md)
438
+ - [Example collection](docs/examples.md)
439
+ - [Production history](docs/history/production-architecture.md)
440
+
441
+ Kiln began as the engine behind Kiln Studio. The hosted product has retired; this
442
+ repository contains the open-source engine and local tools.
443
+
444
+ MIT licensed. Built by Matthew Kissinger.
@@ -0,0 +1,62 @@
1
+ # Third-party notices
2
+
3
+ Kiln uses dependencies under their own licenses. Their package license files remain part
4
+ of the installed dependency tree. The optional renderer uses `webgpu` 0.6.1; it is resolved
5
+ as a dependency, not repacked or stripped. Its distributed `LICENSE.md` contains the Dawn
6
+ and Tint notice below. This notice is reproduced from the pinned installed artifact; npm's
7
+ short license metadata is not a replacement for that file.
8
+
9
+ ## Dawn and Tint (webgpu 0.6.1)
10
+
11
+ Copyright 2017-2025 The Dawn & Tint Authors
12
+
13
+ Redistribution and use in source and binary forms, with or without
14
+ modification, are permitted provided that the following conditions are met:
15
+
16
+ 1. Redistributions of source code must retain the above copyright notice, this
17
+ list of conditions and the following disclaimer.
18
+
19
+ 2. Redistributions in binary form must reproduce the above copyright notice,
20
+ this list of conditions and the following disclaimer in the documentation
21
+ and/or other materials provided with the distribution.
22
+
23
+ 3. Neither the name of the copyright holder nor the names of its
24
+ contributors may be used to endorse or promote products derived from
25
+ this software without specific prior written permission.
26
+
27
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
+
38
+ ## Candidate native/WASM dependency inventory
39
+
40
+ Inspected October 6, 2026. Runtime bundles keep npm dependencies external;
41
+ installation retains their own package files and notices. This table identifies
42
+ the native/WASM packages used by this candidate, not a replacement license for
43
+ their transitive components. Optional Strands/provider dependencies are separate
44
+ and are not required for CLI/MCP authoring.
45
+
46
+ | Package inspected | Package license metadata | Distributed notice / provenance |
47
+ | --- | --- | --- |
48
+ | `webgpu@0.6.2` | MIT metadata; distributed Dawn/Tint notice is BSD-3-Clause | `webgpu/LICENSE.md`, reproduced above; native Dawn/Tint supplied by the package |
49
+ | `@napi-rs/canvas@1.0.10` | MIT | `@napi-rs/canvas/LICENSE`; platform package contains the Skia-based native binding |
50
+ | `sharp@0.35.5` | Apache-2.0 | `sharp/LICENSE` |
51
+ | `@img/sharp-win32-x64@0.35.5` | Apache-2.0 AND LGPL-3.0-or-later | package `LICENSE` and `versions.json`; the inspected binary includes libvips 8.18.7 and additional native libraries |
52
+ | `manifold-3d@3.5.4` | Apache-2.0 | `manifold-3d/LICENSE`, JavaScript and WASM distribution |
53
+ | `xatlasjs@0.2.0` | MIT | `xatlasjs/LICENSE`, copyright Jonathan Young; JavaScript and WASM distribution |
54
+
55
+ Sharp selects platform-specific binaries during installation; consult the
56
+ [upstream installation documentation](https://sharp.pixelplumbing.com/install/)
57
+ and the exact installed platform package. A Windows receipt does not inventory
58
+ another platform's native artifacts. If distributing a self-contained archive
59
+ with dependencies, retain their license files and complete that archive's native
60
+ notice/source inventory before publication. Kiln's npm tarball does not embed
61
+ these native binaries. Full standalone-binary redistribution is not qualified by
62
+ this inventory.