@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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +19 -0
- package/.claude-plugin/plugin.json +30 -0
- package/.codex-plugin/plugin.json +37 -0
- package/.mcp.json +10 -0
- package/CHANGELOG.md +2579 -0
- package/CONTRIBUTING.md +130 -0
- package/LICENSE +21 -0
- package/README.md +443 -2
- package/THIRD_PARTY_NOTICES.md +62 -0
- package/dist/agent-providers.mjs +310 -0
- package/dist/agent-run.mjs +40433 -0
- package/dist/build.json +215 -0
- package/dist/cli.mjs +48027 -0
- package/dist/evaluator-worker.mjs +27572 -0
- package/dist/mcp-engine.mjs +43537 -0
- package/dist/mcp-server.mjs +2388 -0
- package/dist/viewer/app.js +4281 -0
- package/dist/viewer/chat.html +4409 -0
- package/dist/viewer/index.html +51 -0
- package/dist/viewer/style.css +51 -0
- package/docs/architecture.md +77 -0
- package/docs/cameras.md +181 -0
- package/docs/chatgpt.md +48 -0
- package/docs/collections.md +195 -0
- package/docs/community-exporter.md +95 -0
- package/docs/engine-handoff.md +221 -0
- package/docs/examples.md +171 -0
- package/docs/export-profiles.md +223 -0
- package/docs/extending.md +43 -0
- package/docs/geometry.md +505 -0
- package/docs/google.md +121 -0
- package/docs/harnesses.md +372 -0
- package/docs/install.md +542 -0
- package/docs/material-library.md +133 -0
- package/docs/migration.md +809 -0
- package/docs/programs.md +123 -0
- package/docs/projects-and-live-review.md +94 -0
- package/docs/rendering.md +250 -0
- package/docs/runtime.md +223 -0
- package/docs/sdk.md +137 -0
- package/docs/tools.md +1874 -0
- package/lib/_types/render-service/src/build-identity.d.mts +24 -0
- package/lib/_types/render-service/src/instance.d.mts +47 -0
- package/lib/agent/call-budget.d.ts +55 -0
- package/lib/agent/call-budget.js +52 -0
- package/lib/agent/compaction.d.ts +83 -0
- package/lib/agent/compaction.js +124 -0
- package/lib/agent/concurrency.d.ts +8 -0
- package/lib/agent/concurrency.js +24 -0
- package/lib/agent/diff.d.ts +23 -0
- package/lib/agent/diff.js +124 -0
- package/lib/agent/generate.d.ts +192 -0
- package/lib/agent/generate.js +240 -0
- package/lib/agent/hooks.d.ts +91 -0
- package/lib/agent/hooks.js +158 -0
- package/lib/agent/index.d.ts +42 -0
- package/lib/agent/index.js +30 -0
- package/lib/agent/native-prompt.d.ts +15 -0
- package/lib/agent/native-prompt.js +29 -0
- package/lib/agent/native-workflow.d.ts +4 -0
- package/lib/agent/native-workflow.js +30 -0
- package/lib/agent/providers.d.ts +188 -0
- package/lib/agent/providers.js +392 -0
- package/lib/agent/run.d.ts +72 -0
- package/lib/agent/run.js +245 -0
- package/lib/agent/skill-resources.d.ts +9 -0
- package/lib/agent/skill-resources.js +178 -0
- package/lib/agent/split-tool-result-images.d.ts +33 -0
- package/lib/agent/split-tool-result-images.js +47 -0
- package/lib/agent/stream-start.d.ts +30 -0
- package/lib/agent/stream-start.js +32 -0
- package/lib/agent/tools.d.ts +12 -0
- package/lib/agent/tools.js +77 -0
- package/lib/agent/view-render-timeout.d.ts +40 -0
- package/lib/agent/view-render-timeout.js +71 -0
- package/lib/animation-cubic.d.ts +12 -0
- package/lib/animation-cubic.js +44 -0
- package/lib/animation-spline.d.ts +50 -0
- package/lib/animation-spline.js +168 -0
- package/lib/architecture.d.ts +146 -0
- package/lib/architecture.js +498 -0
- package/lib/arena/adaptive.d.ts +38 -0
- package/lib/arena/adaptive.js +87 -0
- package/lib/arena/bradley-terry.d.ts +63 -0
- package/lib/arena/bradley-terry.js +165 -0
- package/lib/arena/index.d.ts +15 -0
- package/lib/arena/index.js +13 -0
- package/lib/assembly-transform.d.ts +7 -0
- package/lib/assembly-transform.js +21 -0
- package/lib/assembly.d.ts +105 -0
- package/lib/assembly.js +587 -0
- package/lib/asset-catalog.d.ts +13 -0
- package/lib/asset-catalog.js +21 -0
- package/lib/asset-export.d.ts +41 -0
- package/lib/asset-export.js +106 -0
- package/lib/asset-materials-node.d.ts +5 -0
- package/lib/asset-materials-node.js +56 -0
- package/lib/asset-widget.d.ts +10 -0
- package/lib/asset-widget.js +23 -0
- package/lib/assets-node.d.ts +33 -0
- package/lib/assets-node.js +348 -0
- package/lib/assets-resources.d.ts +33 -0
- package/lib/assets-resources.js +109 -0
- package/lib/assets.d.ts +91 -0
- package/lib/assets.js +205 -0
- package/lib/atomic-directory.d.ts +9 -0
- package/lib/atomic-directory.js +31 -0
- package/lib/authoring-style.d.ts +3 -0
- package/lib/authoring-style.js +42 -0
- package/lib/build-cache-node.d.ts +12 -0
- package/lib/build-cache-node.js +87 -0
- package/lib/build-cache.d.ts +24 -0
- package/lib/build-cache.js +229 -0
- package/lib/character.d.ts +132 -0
- package/lib/character.js +612 -0
- package/lib/cli-render-mode.d.ts +31 -0
- package/lib/cli-render-mode.js +204 -0
- package/lib/community-exporter.d.ts +13 -0
- package/lib/community-exporter.js +237 -0
- package/lib/composer/agent/compaction.d.ts +72 -0
- package/lib/composer/agent/compaction.js +103 -0
- package/lib/composer/agent/index.d.ts +25 -0
- package/lib/composer/agent/index.js +19 -0
- package/lib/composer/agent/prompt.d.ts +25 -0
- package/lib/composer/agent/prompt.js +100 -0
- package/lib/composer/agent/run.d.ts +91 -0
- package/lib/composer/agent/run.js +212 -0
- package/lib/composer/agent/tools.d.ts +75 -0
- package/lib/composer/agent/tools.js +643 -0
- package/lib/composer/agent/world-run.d.ts +50 -0
- package/lib/composer/agent/world-run.js +295 -0
- package/lib/composer/agent/world-tools.d.ts +20 -0
- package/lib/composer/agent/world-tools.js +311 -0
- package/lib/composer/collision.d.ts +109 -0
- package/lib/composer/collision.js +339 -0
- package/lib/composer/contract-utils.d.ts +6 -0
- package/lib/composer/contract-utils.js +48 -0
- package/lib/composer/dsl.d.ts +52 -0
- package/lib/composer/dsl.js +147 -0
- package/lib/composer/ground.d.ts +22 -0
- package/lib/composer/ground.js +9 -0
- package/lib/composer/index.d.ts +19 -0
- package/lib/composer/index.js +19 -0
- package/lib/composer/layout.d.ts +106 -0
- package/lib/composer/layout.js +216 -0
- package/lib/composer/model.d.ts +298 -0
- package/lib/composer/model.js +441 -0
- package/lib/composer/overlap.d.ts +89 -0
- package/lib/composer/overlap.js +139 -0
- package/lib/composer/presentation.d.ts +123 -0
- package/lib/composer/presentation.js +256 -0
- package/lib/composer/reachability.d.ts +78 -0
- package/lib/composer/reachability.js +303 -0
- package/lib/composer/render-port.d.ts +293 -0
- package/lib/composer/render-port.js +172 -0
- package/lib/composer/terrain-runtime.d.ts +73 -0
- package/lib/composer/terrain-runtime.js +328 -0
- package/lib/composer/terrain.d.ts +43 -0
- package/lib/composer/terrain.js +49 -0
- package/lib/composer/world-document.d.ts +722 -0
- package/lib/composer/world-document.js +857 -0
- package/lib/composer/world-integration.d.ts +78 -0
- package/lib/composer/world-integration.js +452 -0
- package/lib/composer/world-package.d.ts +312 -0
- package/lib/composer/world-package.js +209 -0
- package/lib/contracts/asset.d.ts +270 -0
- package/lib/contracts/asset.js +1616 -0
- package/lib/contracts/breadth.d.ts +197 -0
- package/lib/contracts/breadth.js +631 -0
- package/lib/contracts/environment.d.ts +13 -0
- package/lib/contracts/environment.js +67 -0
- package/lib/contracts/index.d.ts +5 -0
- package/lib/contracts/index.js +5 -0
- package/lib/contracts/integration.d.ts +94 -0
- package/lib/contracts/integration.js +10 -0
- package/lib/contracts/requirements-migration.d.ts +61 -0
- package/lib/contracts/requirements-migration.js +401 -0
- package/lib/contracts/requirements.d.ts +815 -0
- package/lib/contracts/requirements.js +266 -0
- package/lib/contracts/semantic.d.ts +124 -0
- package/lib/contracts/semantic.js +421 -0
- package/lib/deform.d.ts +31 -0
- package/lib/deform.js +137 -0
- package/lib/deformation-normals.d.ts +3 -0
- package/lib/deformation-normals.js +72 -0
- package/lib/discovery/articulation-recipes.d.ts +6 -0
- package/lib/discovery/articulation-recipes.js +184 -0
- package/lib/discovery/catalog-schema.d.ts +175 -0
- package/lib/discovery/catalog-schema.js +118 -0
- package/lib/discovery/catalog.d.ts +25 -0
- package/lib/discovery/catalog.js +84 -0
- package/lib/discovery/construction-recipes.d.ts +7 -0
- package/lib/discovery/construction-recipes.js +236 -0
- package/lib/discovery/helper-contracts.d.ts +19 -0
- package/lib/discovery/helper-contracts.js +1940 -0
- package/lib/discovery/helper-specs.d.ts +40 -0
- package/lib/discovery/helper-specs.js +800 -0
- package/lib/discovery/index.d.ts +9 -0
- package/lib/discovery/index.js +20 -0
- package/lib/discovery/intents.d.ts +3 -0
- package/lib/discovery/intents.js +117 -0
- package/lib/discovery/lexical-index.d.ts +5 -0
- package/lib/discovery/lexical-index.js +67 -0
- package/lib/discovery/query-schema.d.ts +35 -0
- package/lib/discovery/query-schema.js +66 -0
- package/lib/discovery/recipes.d.ts +6 -0
- package/lib/discovery/recipes.js +191 -0
- package/lib/discovery/service.d.ts +57 -0
- package/lib/discovery/service.js +234 -0
- package/lib/discovery/shapes.d.ts +6 -0
- package/lib/discovery/shapes.js +65 -0
- package/lib/discovery/structural-recipes.d.ts +6 -0
- package/lib/discovery/structural-recipes.js +193 -0
- package/lib/discovery/surface-recipes.d.ts +7 -0
- package/lib/discovery/surface-recipes.js +124 -0
- package/lib/draw-diagnostics.d.ts +57 -0
- package/lib/draw-diagnostics.js +239 -0
- package/lib/edit-buffer.d.ts +86 -0
- package/lib/edit-buffer.js +99 -0
- package/lib/engine-identity.d.ts +44 -0
- package/lib/engine-identity.js +41 -0
- package/lib/evaluator/authoring-diagnostic.d.ts +38 -0
- package/lib/evaluator/authoring-diagnostic.js +128 -0
- package/lib/evaluator/handler.d.ts +14 -0
- package/lib/evaluator/handler.js +86 -0
- package/lib/evaluator/index.d.ts +4 -0
- package/lib/evaluator/index.js +4 -0
- package/lib/evaluator/isolation.d.ts +45 -0
- package/lib/evaluator/isolation.js +362 -0
- package/lib/evaluator/probe-invariants.d.ts +2 -0
- package/lib/evaluator/probe-invariants.js +7 -0
- package/lib/evaluator/probe-worker.d.ts +1 -0
- package/lib/evaluator/probe-worker.js +134 -0
- package/lib/evaluator/protocol.d.ts +105 -0
- package/lib/evaluator/protocol.js +512 -0
- package/lib/evaluator/source-check.d.ts +7 -0
- package/lib/evaluator/source-check.js +57 -0
- package/lib/evaluator/subprocess.d.ts +26 -0
- package/lib/evaluator/subprocess.js +212 -0
- package/lib/evaluator/transport-worker.d.mts +1 -0
- package/lib/evaluator/transport-worker.mjs +3 -0
- package/lib/evaluator/worker-urls.d.ts +6 -0
- package/lib/evaluator/worker-urls.js +12 -0
- package/lib/evaluator/worker.d.ts +1 -0
- package/lib/evaluator/worker.js +26 -0
- package/lib/exporter-node.d.ts +16 -0
- package/lib/exporter-node.js +58 -0
- package/lib/gears.d.ts +68 -0
- package/lib/gears.js +259 -0
- package/lib/geometry-budget.d.ts +15 -0
- package/lib/geometry-budget.js +36 -0
- package/lib/geometry-catalog.d.ts +5 -0
- package/lib/geometry-catalog.js +161 -0
- package/lib/geometry-export.d.ts +11 -0
- package/lib/geometry-export.js +160 -0
- package/lib/geometry.d.ts +46 -0
- package/lib/geometry.js +311 -0
- package/lib/gltf-io.d.ts +38 -0
- package/lib/gltf-io.js +95 -0
- package/lib/implicit.d.ts +20 -0
- package/lib/implicit.js +58 -0
- package/lib/index-policy.d.ts +13 -0
- package/lib/index-policy.js +41 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +5 -0
- package/lib/inspect.d.ts +76 -0
- package/lib/inspect.js +206 -0
- package/lib/kit.d.ts +90 -0
- package/lib/kit.js +459 -0
- package/lib/live-review-node.d.ts +70 -0
- package/lib/live-review-node.js +961 -0
- package/lib/live-review.d.ts +65 -0
- package/lib/live-review.js +1 -0
- package/lib/local-runtime.d.ts +25 -0
- package/lib/local-runtime.js +272 -0
- package/lib/lod-export.d.ts +39 -0
- package/lib/lod-export.js +102 -0
- package/lib/lod.d.ts +56 -0
- package/lib/lod.js +138 -0
- package/lib/material-library-node.d.ts +56 -0
- package/lib/material-library-node.js +402 -0
- package/lib/material-library.d.ts +731 -0
- package/lib/material-library.js +425 -0
- package/lib/material-metrics.d.ts +72 -0
- package/lib/material-metrics.js +276 -0
- package/lib/material-presets.d.ts +29 -0
- package/lib/material-presets.js +181 -0
- package/lib/material-recipe-prompt.d.ts +23 -0
- package/lib/material-recipe-prompt.js +72 -0
- package/lib/material-recipe-runtime.d.ts +31 -0
- package/lib/material-recipe-runtime.js +91 -0
- package/lib/material-recipes.d.ts +131 -0
- package/lib/material-recipes.js +543 -0
- package/lib/material-resources.d.ts +181 -0
- package/lib/material-resources.js +416 -0
- package/lib/material-texture-library.generated.d.ts +1311 -0
- package/lib/material-texture-library.generated.js +11308 -0
- package/lib/metrics.d.ts +98 -0
- package/lib/metrics.js +210 -0
- package/lib/node-visibility.d.ts +31 -0
- package/lib/node-visibility.js +105 -0
- package/lib/open-shell.d.ts +21 -0
- package/lib/open-shell.js +83 -0
- package/lib/ops.d.ts +197 -0
- package/lib/ops.js +630 -0
- package/lib/palette-snap.d.ts +74 -0
- package/lib/palette-snap.js +151 -0
- package/lib/palette.d.ts +75 -0
- package/lib/palette.js +273 -0
- package/lib/portable-material-runtime.d.ts +14 -0
- package/lib/portable-material-runtime.js +81 -0
- package/lib/primitives.d.ts +483 -0
- package/lib/primitives.js +1553 -0
- package/lib/procedural-material-v2.d.ts +189 -0
- package/lib/procedural-material-v2.js +452 -0
- package/lib/procedural-texture.d.ts +90 -0
- package/lib/procedural-texture.js +306 -0
- package/lib/profile.d.ts +190 -0
- package/lib/profile.js +366 -0
- package/lib/program-store-node.d.ts +14 -0
- package/lib/program-store-node.js +137 -0
- package/lib/program-store.d.ts +43 -0
- package/lib/program-store.js +89 -0
- package/lib/project-bundle-node.d.ts +15 -0
- package/lib/project-bundle-node.js +175 -0
- package/lib/project-bundle.d.ts +65 -0
- package/lib/project-bundle.js +322 -0
- package/lib/projects-node.d.ts +17 -0
- package/lib/projects-node.js +227 -0
- package/lib/projects.d.ts +312 -0
- package/lib/projects.js +216 -0
- package/lib/prompt-api.d.ts +32 -0
- package/lib/prompt-api.js +223 -0
- package/lib/qa/architecture-corpus.d.ts +31 -0
- package/lib/qa/architecture-corpus.js +438 -0
- package/lib/qa/architecture-repairs.d.ts +17 -0
- package/lib/qa/architecture-repairs.js +73 -0
- package/lib/qa/architecture.d.ts +56 -0
- package/lib/qa/architecture.js +985 -0
- package/lib/qa/benchmark-fixtures.d.ts +42 -0
- package/lib/qa/benchmark-fixtures.js +191 -0
- package/lib/qa/breadth-corpus.d.ts +17 -0
- package/lib/qa/breadth-corpus.js +125 -0
- package/lib/qa/breadth-evidence.d.ts +18 -0
- package/lib/qa/breadth-evidence.js +514 -0
- package/lib/qa/breadth-final.d.ts +46 -0
- package/lib/qa/breadth-final.js +359 -0
- package/lib/qa/breadth.d.ts +66 -0
- package/lib/qa/breadth.js +539 -0
- package/lib/qa/character-advisory.d.ts +7 -0
- package/lib/qa/character-advisory.js +488 -0
- package/lib/qa/character-repairs.d.ts +11 -0
- package/lib/qa/character-repairs.js +68 -0
- package/lib/qa/character-vehicle-corpus.d.ts +32 -0
- package/lib/qa/character-vehicle-corpus.js +525 -0
- package/lib/qa/character.d.ts +66 -0
- package/lib/qa/character.js +712 -0
- package/lib/qa/corpus.d.ts +185 -0
- package/lib/qa/corpus.js +396 -0
- package/lib/qa/environment.d.ts +44 -0
- package/lib/qa/environment.js +725 -0
- package/lib/qa/geometry-relations.d.ts +94 -0
- package/lib/qa/geometry-relations.js +552 -0
- package/lib/qa/gltf.d.ts +29 -0
- package/lib/qa/gltf.js +66 -0
- package/lib/qa/index.d.ts +32 -0
- package/lib/qa/index.js +34 -0
- package/lib/qa/lod.d.ts +14 -0
- package/lib/qa/lod.js +25 -0
- package/lib/qa/material.d.ts +5 -0
- package/lib/qa/material.js +223 -0
- package/lib/qa/part-connectivity.d.ts +73 -0
- package/lib/qa/part-connectivity.js +216 -0
- package/lib/qa/prop-environment-prompt.d.ts +6 -0
- package/lib/qa/prop-environment-prompt.js +43 -0
- package/lib/qa/prop-helper-policy.d.ts +37 -0
- package/lib/qa/prop-helper-policy.js +65 -0
- package/lib/qa/prop.d.ts +44 -0
- package/lib/qa/prop.js +702 -0
- package/lib/qa/reference-comparison.d.ts +183 -0
- package/lib/qa/reference-comparison.js +420 -0
- package/lib/qa/registry.d.ts +159 -0
- package/lib/qa/registry.js +406 -0
- package/lib/qa/requirements-applicability.d.ts +33 -0
- package/lib/qa/requirements-applicability.js +189 -0
- package/lib/qa/requirements-report.d.ts +38 -0
- package/lib/qa/requirements-report.js +202 -0
- package/lib/qa/requirements-run.d.ts +20 -0
- package/lib/qa/requirements-run.js +370 -0
- package/lib/qa/run.d.ts +54 -0
- package/lib/qa/run.js +240 -0
- package/lib/qa/self-intersection.d.ts +157 -0
- package/lib/qa/self-intersection.js +633 -0
- package/lib/qa/sweep.d.ts +4 -0
- package/lib/qa/sweep.js +65 -0
- package/lib/qa/types.d.ts +90 -0
- package/lib/qa/types.js +81 -0
- package/lib/qa/universal.d.ts +14 -0
- package/lib/qa/universal.js +398 -0
- package/lib/qa/vegetation-corpus.d.ts +18 -0
- package/lib/qa/vegetation-corpus.js +304 -0
- package/lib/qa/vegetation.d.ts +133 -0
- package/lib/qa/vegetation.js +933 -0
- package/lib/qa/vehicle-advisory.d.ts +8 -0
- package/lib/qa/vehicle-advisory.js +395 -0
- package/lib/qa/vehicle.d.ts +19 -0
- package/lib/qa/vehicle.js +594 -0
- package/lib/rebuild-options.d.ts +31 -0
- package/lib/rebuild-options.js +13 -0
- package/lib/render-capabilities.d.ts +25 -0
- package/lib/render-capabilities.js +100 -0
- package/lib/render-service-client.d.ts +59 -0
- package/lib/render-service-client.js +194 -0
- package/lib/render-service-host.d.ts +44 -0
- package/lib/render-service-host.js +236 -0
- package/lib/render-service-windows.d.ts +12 -0
- package/lib/render-service-windows.js +72 -0
- package/lib/render.d.ts +565 -0
- package/lib/render.js +1978 -0
- package/lib/requirements-assets.d.ts +6 -0
- package/lib/requirements-assets.js +33 -0
- package/lib/requirements-context.d.ts +1658 -0
- package/lib/requirements-context.js +126 -0
- package/lib/requirements-identity.d.ts +3 -0
- package/lib/requirements-identity.js +38 -0
- package/lib/requirements-json.d.ts +12 -0
- package/lib/requirements-json.js +58 -0
- package/lib/requirements-store.d.ts +42 -0
- package/lib/requirements-store.js +86 -0
- package/lib/requirements.d.ts +4 -0
- package/lib/requirements.js +4 -0
- package/lib/revision-comparison.d.ts +85 -0
- package/lib/revision-comparison.js +334 -0
- package/lib/rig-export.d.ts +5 -0
- package/lib/rig-export.js +19 -0
- package/lib/rigid-merge.d.ts +90 -0
- package/lib/rigid-merge.js +585 -0
- package/lib/runtime-identity.d.ts +20 -0
- package/lib/runtime-identity.js +193 -0
- package/lib/solids.d.ts +29 -0
- package/lib/solids.js +523 -0
- package/lib/source-bindings.d.ts +6 -0
- package/lib/source-bindings.js +96 -0
- package/lib/source-runtime-checks.d.ts +14 -0
- package/lib/source-runtime-checks.js +169 -0
- package/lib/sweep-analysis.d.ts +22 -0
- package/lib/sweep-analysis.js +109 -0
- package/lib/sweep.d.ts +34 -0
- package/lib/sweep.js +347 -0
- package/lib/texture-bake.d.ts +125 -0
- package/lib/texture-bake.js +395 -0
- package/lib/texture-contract.d.ts +3 -0
- package/lib/texture-contract.js +10 -0
- package/lib/texture-resolver.d.ts +22 -0
- package/lib/texture-resolver.js +28 -0
- package/lib/textures.d.ts +90 -0
- package/lib/textures.js +240 -0
- package/lib/tools/actions.d.ts +35 -0
- package/lib/tools/actions.js +69 -0
- package/lib/tools/capture-input.d.ts +373 -0
- package/lib/tools/capture-input.js +193 -0
- package/lib/tools/discovery.d.ts +3 -0
- package/lib/tools/discovery.js +177 -0
- package/lib/tools/materials.d.ts +29 -0
- package/lib/tools/materials.js +168 -0
- package/lib/tools/preview-fidelity.d.ts +6 -0
- package/lib/tools/preview-fidelity.js +23 -0
- package/lib/tools/program-artifacts.d.ts +30 -0
- package/lib/tools/program-artifacts.js +76 -0
- package/lib/tools/programs.d.ts +9 -0
- package/lib/tools/programs.js +151 -0
- package/lib/tools/projects.d.ts +27 -0
- package/lib/tools/projects.js +98 -0
- package/lib/tools/registry.d.ts +792 -0
- package/lib/tools/registry.js +2123 -0
- package/lib/tools/review-detail.d.ts +106 -0
- package/lib/tools/review-detail.js +740 -0
- package/lib/tools/review.d.ts +40 -0
- package/lib/tools/review.js +230 -0
- package/lib/tools/skill-resource.d.ts +8 -0
- package/lib/tools/skill-resource.js +1 -0
- package/lib/tools/workspace.d.ts +8 -0
- package/lib/tools/workspace.js +87 -0
- package/lib/user-data-extras.d.ts +40 -0
- package/lib/user-data-extras.js +158 -0
- package/lib/user-data-validation.d.ts +18 -0
- package/lib/user-data-validation.js +201 -0
- package/lib/uv-project.d.ts +14 -0
- package/lib/uv-project.js +145 -0
- package/lib/uv-shapes.d.ts +11 -0
- package/lib/uv-shapes.js +48 -0
- package/lib/uv.d.ts +39 -0
- package/lib/uv.js +216 -0
- package/lib/validation.d.ts +90 -0
- package/lib/validation.js +1099 -0
- package/lib/vehicle.d.ts +128 -0
- package/lib/vehicle.js +487 -0
- package/lib/views/annotate.d.ts +41 -0
- package/lib/views/annotate.js +131 -0
- package/lib/views/architecture.d.ts +22 -0
- package/lib/views/architecture.js +55 -0
- package/lib/views/background.d.ts +54 -0
- package/lib/views/background.js +65 -0
- package/lib/views/camera-capture.d.ts +15 -0
- package/lib/views/camera-capture.js +101 -0
- package/lib/views/camera.d.ts +106 -0
- package/lib/views/camera.js +488 -0
- package/lib/views/capture-cache.d.ts +48 -0
- package/lib/views/capture-cache.js +239 -0
- package/lib/views/capture-limits.d.ts +19 -0
- package/lib/views/capture-limits.js +61 -0
- package/lib/views/capture.d.ts +124 -0
- package/lib/views/capture.js +210 -0
- package/lib/views/character-capture.d.ts +20 -0
- package/lib/views/character-capture.js +180 -0
- package/lib/views/character.d.ts +64 -0
- package/lib/views/character.js +176 -0
- package/lib/views/diagnostic.d.ts +90 -0
- package/lib/views/diagnostic.js +627 -0
- package/lib/views/evidence-history.d.ts +13 -0
- package/lib/views/evidence-history.js +131 -0
- package/lib/views/glb.d.ts +36 -0
- package/lib/views/glb.js +524 -0
- package/lib/views/grid.d.ts +46 -0
- package/lib/views/grid.js +81 -0
- package/lib/views/index.d.ts +257 -0
- package/lib/views/index.js +624 -0
- package/lib/views/inspect.d.ts +110 -0
- package/lib/views/inspect.js +195 -0
- package/lib/views/lod.d.ts +30 -0
- package/lib/views/lod.js +79 -0
- package/lib/views/measurement.d.ts +47 -0
- package/lib/views/measurement.js +60 -0
- package/lib/views/part-placement.d.ts +25 -0
- package/lib/views/part-placement.js +26 -0
- package/lib/views/png.d.ts +23 -0
- package/lib/views/png.js +162 -0
- package/lib/views/port.d.ts +74 -0
- package/lib/views/port.js +250 -0
- package/lib/views/pose.d.ts +113 -0
- package/lib/views/pose.js +433 -0
- package/lib/views/raster.d.ts +164 -0
- package/lib/views/raster.js +508 -0
- package/lib/views/renderer-id.d.ts +11 -0
- package/lib/views/renderer-id.js +29 -0
- package/lib/views/scene-raster.d.ts +41 -0
- package/lib/views/scene-raster.js +84 -0
- package/lib/views/surface-distance.d.ts +51 -0
- package/lib/views/surface-distance.js +343 -0
- package/lib/views/vehicle.d.ts +57 -0
- package/lib/views/vehicle.js +288 -0
- package/lib/wall-panels.d.ts +38 -0
- package/lib/wall-panels.js +99 -0
- package/lib/widget-transfer.d.ts +12 -0
- package/lib/widget-transfer.js +117 -0
- package/lib/workspace-location.d.ts +6 -0
- package/lib/workspace-location.js +16 -0
- package/lib/workspace-node.d.ts +15 -0
- package/lib/workspace-node.js +74 -0
- package/lib/workspace.d.ts +26 -0
- package/lib/workspace.js +22 -0
- package/lib/written-nodes.d.ts +10 -0
- package/lib/written-nodes.js +32 -0
- package/package.json +385 -4
- package/plugin.json +16 -0
- package/plugins/kiln-engine/.claude-plugin/plugin.json +18 -0
- package/plugins/kiln-engine/LICENSE +21 -0
- package/plugins/kiln-engine/README.md +25 -0
- package/plugins/kiln-engine/package-provenance.json +15 -0
- package/plugins/kiln-engine/plugin.json +38 -0
- package/plugins/kiln-engine/runtime.json +4 -0
- package/plugins/kiln-engine/scripts/setup-workspace.mjs +337 -0
- package/plugins/kiln-engine/skills/kiln-setup-workspace/SKILL.md +108 -0
- package/plugins/kiln-engine/skills/kiln-setup-workspace/references/plugin-install.md +66 -0
- package/render-service/README.md +139 -0
- package/render-service/package-lock.json +72 -0
- package/render-service/package.json +22 -0
- package/render-service/src/backdrops.mjs +26 -0
- package/render-service/src/bind-policy.mjs +80 -0
- package/render-service/src/build-identity.mjs +83 -0
- package/render-service/src/cache-identity.mjs +65 -0
- package/render-service/src/contract.mjs +494 -0
- package/render-service/src/display-output.mjs +18 -0
- package/render-service/src/display-transform.mjs +192 -0
- package/render-service/src/framing.mjs +114 -0
- package/render-service/src/glb-input.mjs +259 -0
- package/render-service/src/gpu.mjs +101 -0
- package/render-service/src/health-contract.mjs +40 -0
- package/render-service/src/instance.mjs +146 -0
- package/render-service/src/node-visibility.mjs +49 -0
- package/render-service/src/png-input.mjs +77 -0
- package/render-service/src/presentation-presets.mjs +216 -0
- package/render-service/src/readback.mjs +16 -0
- package/render-service/src/register-hooks.mjs +2 -0
- package/render-service/src/render-queue.mjs +144 -0
- package/render-service/src/renderer.mjs +473 -0
- package/render-service/src/request-limits.mjs +72 -0
- package/render-service/src/review-tone-mapping.mjs +55 -0
- package/render-service/src/server.mjs +387 -0
- package/render-service/src/three-alias-hooks.mjs +6 -0
- package/scripts/create-workspace.mjs +808 -0
- package/scripts/package-plugin.mjs +67 -0
- package/skills/kiln-author-asset/SKILL.md +104 -0
- package/skills/kiln-author-asset/references/camera-cli.md +33 -0
- package/skills/kiln-author-asset/references/camera-recipes.md +73 -0
- package/skills/kiln-author-asset/references/export-profiles.md +216 -0
- package/skills/kiln-author-asset/references/geometry-recipes.md +329 -0
- package/skills/kiln-author-asset/references/program-contract.md +44 -0
- package/skills/kiln-author-asset/references/projects-and-materials.md +158 -0
- package/skills/kiln-author-asset/references/reusable-frame.kiln.js +32 -0
- package/skills/kiln-batch-dispatch/SKILL.md +22 -0
- package/skills/kiln-batch-dispatch/references/clean-room-evaluation.md +35 -0
- package/skills/kiln-compose-scene/SKILL.md +38 -0
- package/skills/kiln-compose-scene/references/composition-api.md +29 -0
- package/skills/kiln-compose-scene/references/runtime-scenes.md +363 -0
- package/skills/kiln-qa-asset/SKILL.md +99 -0
- package/skills/kiln-qa-asset/references/engine-handoff.md +246 -0
- package/skills/kiln-qa-asset/references/integration-checks.md +96 -0
- package/skills/kiln-refine-asset/SKILL.md +136 -0
- package/skills/kiln-refine-asset/references/revision-and-views.md +205 -0
- package/skills/kiln-refine-asset/references/revision-cli.md +39 -0
- package/skills/kiln-setup-workspace/SKILL.md +108 -0
- package/skills/kiln-setup-workspace/references/plugin-install.md +66 -0
- package/src/agent/call-budget.ts +106 -0
- package/src/agent/compaction.ts +197 -0
- package/src/agent/concurrency.ts +30 -0
- package/src/agent/diff.ts +141 -0
- package/src/agent/generate.ts +448 -0
- package/src/agent/hooks.ts +204 -0
- package/src/agent/index.ts +114 -0
- package/src/agent/native-prompt.ts +51 -0
- package/src/agent/native-workflow.ts +33 -0
- package/src/agent/providers.ts +529 -0
- package/src/agent/run.ts +356 -0
- package/src/agent/skill-resources.ts +198 -0
- package/src/agent/split-tool-result-images.ts +80 -0
- package/src/agent/stream-start.ts +61 -0
- package/src/agent/tools.ts +113 -0
- package/src/agent/view-render-timeout.ts +110 -0
- package/src/animation-cli.ts +251 -0
- package/src/animation-cubic.ts +57 -0
- package/src/animation-spline.ts +183 -0
- package/src/architecture.ts +871 -0
- package/src/arena/adaptive.ts +119 -0
- package/src/arena/bradley-terry.ts +221 -0
- package/src/arena/index.ts +21 -0
- package/src/assembly-transform.ts +34 -0
- package/src/assembly.ts +762 -0
- package/src/asset-catalog.ts +30 -0
- package/src/asset-cli.ts +505 -0
- package/src/asset-export.ts +141 -0
- package/src/asset-materials-node.ts +78 -0
- package/src/asset-viewer.ts +160 -0
- package/src/asset-widget-uri.ts +9 -0
- package/src/asset-widget.ts +38 -0
- package/src/assets-node.ts +412 -0
- package/src/assets-resources.ts +137 -0
- package/src/assets.ts +252 -0
- package/src/atomic-directory.ts +45 -0
- package/src/authoring-style.ts +49 -0
- package/src/breadth-prompt.ts +79 -0
- package/src/build-cache-node.ts +99 -0
- package/src/build-cache.ts +253 -0
- package/src/character.ts +776 -0
- package/src/cli-json.ts +29 -0
- package/src/cli-output.ts +135 -0
- package/src/cli-render-mode.ts +270 -0
- package/src/cli.ts +809 -0
- package/src/community-exporter.ts +268 -0
- package/src/composer/agent/compaction.ts +146 -0
- package/src/composer/agent/index.ts +41 -0
- package/src/composer/agent/prompt.ts +126 -0
- package/src/composer/agent/run.ts +317 -0
- package/src/composer/agent/tools.ts +847 -0
- package/src/composer/agent/world-run.ts +421 -0
- package/src/composer/agent/world-tools.ts +411 -0
- package/src/composer/collision.ts +448 -0
- package/src/composer/contract-utils.ts +52 -0
- package/src/composer/dsl.ts +196 -0
- package/src/composer/ground.ts +27 -0
- package/src/composer/index.ts +19 -0
- package/src/composer/layout.ts +357 -0
- package/src/composer/model.ts +688 -0
- package/src/composer/overlap.ts +220 -0
- package/src/composer/presentation.ts +309 -0
- package/src/composer/reachability.ts +407 -0
- package/src/composer/render-port.ts +516 -0
- package/src/composer/terrain-runtime.ts +415 -0
- package/src/composer/terrain.ts +53 -0
- package/src/composer/world-document.ts +1019 -0
- package/src/composer/world-integration.ts +589 -0
- package/src/composer/world-package.ts +255 -0
- package/src/contracts/asset.ts +2030 -0
- package/src/contracts/breadth.ts +888 -0
- package/src/contracts/environment.ts +81 -0
- package/src/contracts/index.ts +5 -0
- package/src/contracts/integration.ts +100 -0
- package/src/contracts/requirements-migration.ts +536 -0
- package/src/contracts/requirements.ts +357 -0
- package/src/contracts/semantic.ts +544 -0
- package/src/deform.ts +215 -0
- package/src/deformation-normals.ts +84 -0
- package/src/direct-entry.ts +28 -0
- package/src/discovery/articulation-recipes.ts +190 -0
- package/src/discovery/catalog-schema.ts +125 -0
- package/src/discovery/catalog.ts +88 -0
- package/src/discovery/construction-recipes.ts +243 -0
- package/src/discovery/helper-contracts.ts +2388 -0
- package/src/discovery/helper-specs.ts +1046 -0
- package/src/discovery/index.ts +36 -0
- package/src/discovery/intents.ts +120 -0
- package/src/discovery/lexical-index.ts +72 -0
- package/src/discovery/query-schema.ts +71 -0
- package/src/discovery/recipes.ts +215 -0
- package/src/discovery/service.ts +329 -0
- package/src/discovery/shapes.ts +120 -0
- package/src/discovery/structural-recipes.ts +199 -0
- package/src/discovery/surface-recipes.ts +130 -0
- package/src/discovery-cli.ts +106 -0
- package/src/draw-diagnostics.ts +313 -0
- package/src/edit-buffer.ts +134 -0
- package/src/edit-cli.ts +125 -0
- package/src/engine-identity.ts +50 -0
- package/src/evaluator/authoring-diagnostic.ts +168 -0
- package/src/evaluator/handler.ts +114 -0
- package/src/evaluator/index.ts +50 -0
- package/src/evaluator/isolation.ts +454 -0
- package/src/evaluator/probe-invariants.ts +9 -0
- package/src/evaluator/probe-worker.ts +158 -0
- package/src/evaluator/protocol.ts +701 -0
- package/src/evaluator/source-check.ts +64 -0
- package/src/evaluator/subprocess.ts +294 -0
- package/src/evaluator/transport-worker.mjs +8 -0
- package/src/evaluator/worker-urls.ts +16 -0
- package/src/evaluator/worker.ts +26 -0
- package/src/experiments/geometry-acceptance.ts +278 -0
- package/src/experiments/geometry-frontier.ts +181 -0
- package/src/experiments/program-aliases.ts +96 -0
- package/src/experiments/run-w6-material-vegetation.ts +7 -0
- package/src/experiments/run-w7-vegetation-lod.ts +6 -0
- package/src/experiments/w6-material-vegetation.ts +772 -0
- package/src/experiments/w7-vegetation-lod.ts +335 -0
- package/src/exporter-node.ts +68 -0
- package/src/gears.ts +334 -0
- package/src/generated/mcp-manifest.json +2050 -0
- package/src/geometry-budget.ts +50 -0
- package/src/geometry-catalog.ts +215 -0
- package/src/geometry-export.ts +193 -0
- package/src/geometry.ts +379 -0
- package/src/gltf-io.ts +129 -0
- package/src/gltf-validator-shims.d.ts +12 -0
- package/src/implicit.ts +106 -0
- package/src/index-policy.ts +52 -0
- package/src/index.ts +5 -0
- package/src/inspect-cli.ts +198 -0
- package/src/inspect.ts +290 -0
- package/src/kit.ts +547 -0
- package/src/live-review-node.ts +1011 -0
- package/src/live-review.ts +55 -0
- package/src/local-runtime.ts +336 -0
- package/src/lod-export.ts +120 -0
- package/src/lod.ts +192 -0
- package/src/loopback.ts +6 -0
- package/src/material-library-node.ts +488 -0
- package/src/material-library.ts +481 -0
- package/src/material-metrics.ts +392 -0
- package/src/material-presets.ts +207 -0
- package/src/material-recipe-prompt.ts +99 -0
- package/src/material-recipe-runtime.ts +162 -0
- package/src/material-recipes.ts +748 -0
- package/src/material-resources.ts +640 -0
- package/src/material-texture-library.generated.ts +11408 -0
- package/src/mcp-core.ts +437 -0
- package/src/mcp-engine.ts +383 -0
- package/src/mcp-manifest.ts +104 -0
- package/src/mcp-server.ts +118 -0
- package/src/metrics.ts +277 -0
- package/src/migration-cli.ts +105 -0
- package/src/migration-rebuild.ts +265 -0
- package/src/node-visibility.ts +116 -0
- package/src/open-shell.ts +104 -0
- package/src/ops.ts +751 -0
- package/src/palette-snap.ts +209 -0
- package/src/palette.ts +307 -0
- package/src/portable-material-runtime.ts +109 -0
- package/src/primitives.ts +2299 -0
- package/src/procedural-material-v2.ts +720 -0
- package/src/procedural-texture.ts +427 -0
- package/src/profile.ts +485 -0
- package/src/program-store-node.ts +138 -0
- package/src/program-store.ts +116 -0
- package/src/project-bundle-node.ts +220 -0
- package/src/project-bundle.ts +392 -0
- package/src/project-cli.ts +248 -0
- package/src/projects-node.ts +270 -0
- package/src/projects.ts +274 -0
- package/src/prompt-api.ts +231 -0
- package/src/qa/architecture-corpus.ts +828 -0
- package/src/qa/architecture-repairs.ts +92 -0
- package/src/qa/architecture.ts +1358 -0
- package/src/qa/benchmark-fixtures.ts +441 -0
- package/src/qa/breadth-corpus.ts +168 -0
- package/src/qa/breadth-evidence.ts +595 -0
- package/src/qa/breadth-final.ts +453 -0
- package/src/qa/breadth.ts +690 -0
- package/src/qa/character-advisory.ts +596 -0
- package/src/qa/character-repairs.ts +185 -0
- package/src/qa/character-vehicle-corpus.ts +802 -0
- package/src/qa/character.ts +998 -0
- package/src/qa/corpus.ts +499 -0
- package/src/qa/environment.ts +903 -0
- package/src/qa/geometry-relations.ts +843 -0
- package/src/qa/gltf.ts +103 -0
- package/src/qa/index.ts +34 -0
- package/src/qa/lod.ts +28 -0
- package/src/qa/material.ts +302 -0
- package/src/qa/part-connectivity.ts +252 -0
- package/src/qa/prop-environment-prompt.ts +58 -0
- package/src/qa/prop-helper-policy.ts +118 -0
- package/src/qa/prop.ts +828 -0
- package/src/qa/reference-comparison.ts +495 -0
- package/src/qa/registry.ts +604 -0
- package/src/qa/requirements-applicability.ts +241 -0
- package/src/qa/requirements-report.ts +280 -0
- package/src/qa/requirements-run.ts +470 -0
- package/src/qa/run.ts +329 -0
- package/src/qa/self-intersection.ts +741 -0
- package/src/qa/sweep.ts +68 -0
- package/src/qa/types.ts +187 -0
- package/src/qa/universal.ts +506 -0
- package/src/qa/vegetation-corpus.ts +404 -0
- package/src/qa/vegetation.ts +1174 -0
- package/src/qa/vehicle-advisory.ts +468 -0
- package/src/qa/vehicle.ts +756 -0
- package/src/rebuild-options.ts +16 -0
- package/src/render-capabilities.ts +140 -0
- package/src/render-service-client.ts +297 -0
- package/src/render-service-host.ts +278 -0
- package/src/render-service-windows.ts +80 -0
- package/src/render.ts +2748 -0
- package/src/requirements-assets.ts +53 -0
- package/src/requirements-context.ts +170 -0
- package/src/requirements-file.ts +10 -0
- package/src/requirements-identity.ts +43 -0
- package/src/requirements-json.ts +65 -0
- package/src/requirements-store.ts +150 -0
- package/src/requirements.ts +4 -0
- package/src/review-cli.ts +81 -0
- package/src/revision-comparison.ts +425 -0
- package/src/rig-export.ts +29 -0
- package/src/rigid-merge.ts +691 -0
- package/src/runtime-identity.ts +207 -0
- package/src/runtime-support.mjs +20 -0
- package/src/service-cli.ts +210 -0
- package/src/solids.ts +650 -0
- package/src/source-bindings.ts +90 -0
- package/src/source-runtime-checks.ts +189 -0
- package/src/sweep-analysis.ts +168 -0
- package/src/sweep.ts +482 -0
- package/src/texture-bake.ts +526 -0
- package/src/texture-contract.ts +12 -0
- package/src/texture-resolver.ts +61 -0
- package/src/textures.ts +345 -0
- package/src/tools/actions.ts +124 -0
- package/src/tools/capture-input.ts +233 -0
- package/src/tools/discovery.ts +194 -0
- package/src/tools/materials.ts +206 -0
- package/src/tools/preview-fidelity.ts +31 -0
- package/src/tools/program-artifacts.ts +107 -0
- package/src/tools/programs.ts +190 -0
- package/src/tools/projects.ts +141 -0
- package/src/tools/registry.ts +3111 -0
- package/src/tools/review-detail.ts +788 -0
- package/src/tools/review.ts +269 -0
- package/src/tools/skill-resource.ts +9 -0
- package/src/tools/workspace.ts +112 -0
- package/src/user-data-extras.ts +181 -0
- package/src/user-data-validation.ts +211 -0
- package/src/uv-project.ts +185 -0
- package/src/uv-shapes.ts +63 -0
- package/src/uv.ts +301 -0
- package/src/validation.ts +1257 -0
- package/src/vegetation-prompt.ts +109 -0
- package/src/vehicle.ts +742 -0
- package/src/viewer/app.ts +666 -0
- package/src/viewer/attribution.ts +17 -0
- package/src/viewer/camera-state.ts +45 -0
- package/src/viewer/chat-app.ts +221 -0
- package/src/viewer/chat-download.ts +53 -0
- package/src/viewer/dashboard.ts +59 -0
- package/src/viewer/deep-link.ts +34 -0
- package/src/viewer/dom.ts +63 -0
- package/src/viewer/framing.ts +55 -0
- package/src/viewer/library-state.ts +34 -0
- package/src/viewer/live-panel.ts +742 -0
- package/src/viewer/live-state.ts +99 -0
- package/src/viewer/load-guard.ts +10 -0
- package/src/viewer/lod-control.ts +98 -0
- package/src/viewer/lod.ts +172 -0
- package/src/viewer/material-preset-form.ts +34 -0
- package/src/viewer/materials-panel.ts +335 -0
- package/src/viewer/membership-panel.ts +122 -0
- package/src/viewer/navigation.ts +9 -0
- package/src/viewer/performance-control.ts +75 -0
- package/src/viewer/performance.ts +61 -0
- package/src/viewer/project-editor.ts +37 -0
- package/src/viewer/project-membership.ts +20 -0
- package/src/viewer/projects-panel.ts +374 -0
- package/src/viewer/scene.ts +426 -0
- package/src/viewer/visibility.ts +73 -0
- package/src/views/annotate.ts +138 -0
- package/src/views/architecture.ts +77 -0
- package/src/views/background.ts +87 -0
- package/src/views/camera-capture.ts +143 -0
- package/src/views/camera.ts +622 -0
- package/src/views/capture-cache.ts +272 -0
- package/src/views/capture-limits.ts +73 -0
- package/src/views/capture.ts +300 -0
- package/src/views/character-capture.ts +279 -0
- package/src/views/character.ts +267 -0
- package/src/views/diagnostic.ts +853 -0
- package/src/views/evidence-history.ts +166 -0
- package/src/views/glb.ts +747 -0
- package/src/views/grid.ts +118 -0
- package/src/views/index.ts +1071 -0
- package/src/views/inspect.ts +296 -0
- package/src/views/lod.ts +117 -0
- package/src/views/measurement.ts +69 -0
- package/src/views/part-placement.ts +50 -0
- package/src/views/png.ts +175 -0
- package/src/views/port.ts +335 -0
- package/src/views/pose.ts +541 -0
- package/src/views/raster.ts +627 -0
- package/src/views/renderer-id.ts +31 -0
- package/src/views/scene-raster.ts +139 -0
- package/src/views/surface-distance.ts +403 -0
- package/src/views/vehicle.ts +431 -0
- package/src/wall-panels.ts +127 -0
- package/src/widget-transfer.ts +115 -0
- package/src/workspace-cli.ts +41 -0
- package/src/workspace-http.ts +219 -0
- package/src/workspace-location.ts +20 -0
- package/src/workspace-node.ts +91 -0
- package/src/workspace.ts +43 -0
- package/src/written-nodes.ts +39 -0
- package/src/xatlasjs-shims.d.ts +16 -0
package/CONTRIBUTING.md
ADDED
|
@@ -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
|
-
#
|
|
1
|
+
# Kiln
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml)
|
|
4
|
+
[](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
|
+
| [](https://kilnstudio.tools/scenes/farm/) | [](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
|
+
| [](https://kilnstudio.tools/scenes/foundry-floor/) | [](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
|
+
| [](https://kilnstudio.tools/gallery/hatchback/) | [](https://kilnstudio.tools/gallery/sedan/) | [](https://kilnstudio.tools/gallery/suv/) |
|
|
49
|
+
| Pickup · red | Box truck · silver | Transit bus · blue |
|
|
50
|
+
| [](https://kilnstudio.tools/gallery/pickup/) | [](https://kilnstudio.tools/gallery/box-truck/) | [](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.
|