@developerz.ai/ts23d 0.0.0-stage → 0.1.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/.claude/agents/bug-hunter.md +21 -0
- package/.claude/agents/docs-author.md +13 -0
- package/.claude/agents/dx-auditor.md +14 -0
- package/.claude/agents/primitive-author.md +22 -0
- package/.claude/agents/recipe-author.md +36 -0
- package/.claude/agents/visual-reviewer.md +23 -0
- package/.claude/commands/feature.md +28 -0
- package/.claude/commands/new-recipe.md +19 -0
- package/.claude/commands/release.md +14 -0
- package/.claude/commands/verify.md +9 -0
- package/.claude/skills/author-recipe/SKILL.md +93 -0
- package/CHANGELOG.md +79 -0
- package/CLAUDE.md +85 -0
- package/LICENSE +21 -0
- package/README.md +380 -2
- package/dist/chunk-11v28977.js +1575 -0
- package/dist/chunk-11v28977.js.map +30 -0
- package/dist/chunk-1ypfs7ga.js +3571 -0
- package/dist/chunk-1ypfs7ga.js.map +42 -0
- package/dist/chunk-4ddzsqtc.js +464 -0
- package/dist/chunk-4ddzsqtc.js.map +19 -0
- package/dist/chunk-a8fxakcj.js +19 -0
- package/dist/chunk-a8fxakcj.js.map +11 -0
- package/dist/chunk-gcyp9b4d.js +755 -0
- package/dist/chunk-gcyp9b4d.js.map +22 -0
- package/dist/chunk-kgvbpqqw.js +44 -0
- package/dist/chunk-kgvbpqqw.js.map +10 -0
- package/dist/chunk-kvcep7ft.js +1919 -0
- package/dist/chunk-kvcep7ft.js.map +43 -0
- package/dist/chunk-ravbb06q.js +89 -0
- package/dist/chunk-ravbb06q.js.map +11 -0
- package/dist/chunk-w1zyhj40.js +1031 -0
- package/dist/chunk-w1zyhj40.js.map +21 -0
- package/dist/chunk-wtqhq529.js +2532 -0
- package/dist/chunk-wtqhq529.js.map +43 -0
- package/dist/chunk-xnt2sdhf.js +836 -0
- package/dist/chunk-xnt2sdhf.js.map +17 -0
- package/dist/cli/args.d.ts +24 -0
- package/dist/cli/bin.d.ts +2 -0
- package/dist/cli/bin.js +307 -0
- package/dist/cli/bin.js.map +14 -0
- package/dist/cli/load.d.ts +2 -0
- package/dist/cli/manifest.d.ts +49 -0
- package/dist/cli/render-cmds.d.ts +12 -0
- package/dist/cli/run.d.ts +1 -0
- package/dist/core/asset.d.ts +10 -0
- package/dist/core/definition.d.ts +148 -0
- package/dist/core/errors.d.ts +17 -0
- package/dist/core/family.d.ts +23 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.js +69 -0
- package/dist/core/index.js.map +9 -0
- package/dist/core/mesh.d.ts +35 -0
- package/dist/core/part.d.ts +114 -0
- package/dist/core/png.d.ts +1 -0
- package/dist/core/rng.d.ts +12 -0
- package/dist/core/transform.d.ts +20 -0
- package/dist/core/vec.d.ts +11 -0
- package/dist/core/world.d.ts +16 -0
- package/dist/export/bin-writer.d.ts +16 -0
- package/dist/export/container.d.ts +3 -0
- package/dist/export/glb.d.ts +38 -0
- package/dist/export/index.d.ts +4 -0
- package/dist/export/index.js +26 -0
- package/dist/export/index.js.map +9 -0
- package/dist/export/lights.d.ts +8 -0
- package/dist/export/materials.d.ts +23 -0
- package/dist/export/merge-pivots.d.ts +6 -0
- package/dist/export/metadata.d.ts +19 -0
- package/dist/export/motion.d.ts +9 -0
- package/dist/export/optimize-parts.d.ts +26 -0
- package/dist/export/primitive.d.ts +3 -0
- package/dist/export/tangents.d.ts +2 -0
- package/dist/export/textures.d.ts +22 -0
- package/dist/export/version.d.ts +2 -0
- package/dist/grammar/index.d.ts +2 -0
- package/dist/grammar/index.js +16 -0
- package/dist/grammar/index.js.map +9 -0
- package/dist/grammar/split.d.ts +21 -0
- package/dist/grammar/whyte.d.ts +5 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +411 -0
- package/dist/index.js.map +9 -0
- package/dist/kinds/building.d.ts +44 -0
- package/dist/kinds/faces.d.ts +27 -0
- package/dist/kinds/head-armour.d.ts +9 -0
- package/dist/kinds/head-beard.d.ts +6 -0
- package/dist/kinds/head-bust.d.ts +4 -0
- package/dist/kinds/head-extras.d.ts +15 -0
- package/dist/kinds/head-face.d.ts +6 -0
- package/dist/kinds/head-geom.d.ts +7 -0
- package/dist/kinds/head-hair.d.ts +4 -0
- package/dist/kinds/head-layout.d.ts +29 -0
- package/dist/kinds/head-mesh.d.ts +27 -0
- package/dist/kinds/head-params.d.ts +108 -0
- package/dist/kinds/head-presets.d.ts +19 -0
- package/dist/kinds/head-rim.d.ts +10 -0
- package/dist/kinds/head.d.ts +39 -0
- package/dist/kinds/hull-lines.d.ts +65 -0
- package/dist/kinds/hull-skin.d.ts +6 -0
- package/dist/kinds/hull.d.ts +14 -0
- package/dist/kinds/index.d.ts +16 -0
- package/dist/kinds/index.js +78 -0
- package/dist/kinds/index.js.map +9 -0
- package/dist/kinds/mass.d.ts +15 -0
- package/dist/kinds/openings.d.ts +30 -0
- package/dist/kinds/planned.d.ts +6 -0
- package/dist/kinds/roof-chimney.d.ts +16 -0
- package/dist/kinds/roof-shape.d.ts +64 -0
- package/dist/kinds/roof.d.ts +31 -0
- package/dist/kinds/vegetation-fronds.d.ts +15 -0
- package/dist/kinds/vegetation-impostor.d.ts +9 -0
- package/dist/kinds/vegetation-leaves.d.ts +15 -0
- package/dist/kinds/vegetation-mesh.d.ts +21 -0
- package/dist/kinds/vegetation-params.d.ts +90 -0
- package/dist/kinds/vegetation-presets.d.ts +20 -0
- package/dist/kinds/vegetation-skeleton.d.ts +20 -0
- package/dist/kinds/vegetation.d.ts +42 -0
- package/dist/kinds/vehicle.d.ts +42 -0
- package/dist/material/generator.d.ts +4 -0
- package/dist/material/index.d.ts +4 -0
- package/dist/material/index.js +38 -0
- package/dist/material/index.js.map +9 -0
- package/dist/material/paint/bond.d.ts +3 -0
- package/dist/material/paint/canvas.d.ts +32 -0
- package/dist/material/paint/cell.d.ts +4 -0
- package/dist/material/paint/cells-round.d.ts +5 -0
- package/dist/material/paint/cells.d.ts +7 -0
- package/dist/material/paint/compose.d.ts +5 -0
- package/dist/material/paint/concrete.d.ts +3 -0
- package/dist/material/paint/courses.d.ts +31 -0
- package/dist/material/paint/decode-png.d.ts +6 -0
- package/dist/material/paint/default-sheet.d.ts +2 -0
- package/dist/material/paint/foliage-broad.d.ts +5 -0
- package/dist/material/paint/foliage-common.d.ts +35 -0
- package/dist/material/paint/foliage-compound.d.ts +4 -0
- package/dist/material/paint/foliage-conifer.d.ts +5 -0
- package/dist/material/paint/foliage-raster.d.ts +26 -0
- package/dist/material/paint/foliage.d.ts +3 -0
- package/dist/material/paint/masks.d.ts +3 -0
- package/dist/material/paint/noise.d.ts +9 -0
- package/dist/material/paint/normal.d.ts +8 -0
- package/dist/material/paint/orm.d.ts +8 -0
- package/dist/material/paint/planks.d.ts +3 -0
- package/dist/material/paint/plates.d.ts +3 -0
- package/dist/material/paint/shapes.d.ts +8 -0
- package/dist/material/paint/slate.d.ts +3 -0
- package/dist/material/paint/stamp.d.ts +3 -0
- package/dist/material/paint/strip.d.ts +3 -0
- package/dist/material/paint/surface.d.ts +5 -0
- package/dist/material/paint/types.d.ts +35 -0
- package/dist/material/paint/validate.d.ts +3 -0
- package/dist/material/palette.d.ts +12 -0
- package/dist/material/shader-godot.d.ts +2 -0
- package/dist/material/shader-three.d.ts +2 -0
- package/dist/material/shader.d.ts +46 -0
- package/dist/material/trim-sheet.d.ts +22 -0
- package/dist/neural/generator.d.ts +25 -0
- package/dist/neural/images.d.ts +17 -0
- package/dist/neural/index.d.ts +2 -0
- package/dist/neural/index.js +14 -0
- package/dist/neural/index.js.map +9 -0
- package/dist/passes/bake-ao.d.ts +17 -0
- package/dist/passes/grime.d.ts +15 -0
- package/dist/passes/index.d.ts +6 -0
- package/dist/passes/index.js +22 -0
- package/dist/passes/index.js.map +9 -0
- package/dist/passes/livery.d.ts +19 -0
- package/dist/passes/optimize-cache.d.ts +15 -0
- package/dist/passes/optimize-weld.d.ts +15 -0
- package/dist/passes/optimize.d.ts +28 -0
- package/dist/passes/ray-grid.d.ts +23 -0
- package/dist/passes/weighted-normals.d.ts +8 -0
- package/dist/primitives/beam.d.ts +17 -0
- package/dist/primitives/bevel-box.d.ts +13 -0
- package/dist/primitives/box.d.ts +16 -0
- package/dist/primitives/cell.d.ts +20 -0
- package/dist/primitives/check.d.ts +12 -0
- package/dist/primitives/closed.d.ts +11 -0
- package/dist/primitives/erosion.d.ts +22 -0
- package/dist/primitives/font-5x7.d.ts +3 -0
- package/dist/primitives/heightfield.d.ts +16 -0
- package/dist/primitives/index.d.ts +23 -0
- package/dist/primitives/index.js +81 -0
- package/dist/primitives/index.js.map +9 -0
- package/dist/primitives/lathe-facets.d.ts +8 -0
- package/dist/primitives/lathe.d.ts +26 -0
- package/dist/primitives/lattice.d.ts +30 -0
- package/dist/primitives/loft.d.ts +15 -0
- package/dist/primitives/mc-table.d.ts +2 -0
- package/dist/primitives/member.d.ts +19 -0
- package/dist/primitives/noise.d.ts +34 -0
- package/dist/primitives/planar.d.ts +10 -0
- package/dist/primitives/prism.d.ts +13 -0
- package/dist/primitives/sculpt-edit.d.ts +56 -0
- package/dist/primitives/sculpt-tree.d.ts +23 -0
- package/dist/primitives/sculpt.d.ts +27 -0
- package/dist/primitives/sdf-grid.d.ts +17 -0
- package/dist/primitives/sdf-ops.d.ts +37 -0
- package/dist/primitives/sdf.d.ts +21 -0
- package/dist/primitives/strip-uv.d.ts +11 -0
- package/dist/primitives/surface-nets.d.ts +7 -0
- package/dist/primitives/sweep.d.ts +19 -0
- package/dist/primitives/terrain-color.d.ts +30 -0
- package/dist/primitives/terrain-grid.d.ts +36 -0
- package/dist/primitives/text-layout.d.ts +22 -0
- package/dist/primitives/text.d.ts +27 -0
- package/dist/primitives/tiled.d.ts +22 -0
- package/dist/primitives/transport.d.ts +17 -0
- package/dist/primitives/triangulate.d.ts +2 -0
- package/dist/primitives/value-noise.d.ts +10 -0
- package/dist/qa/checks.d.ts +11 -0
- package/dist/qa/clash.d.ts +2 -0
- package/dist/qa/floating.d.ts +5 -0
- package/dist/qa/gates.d.ts +12 -0
- package/dist/qa/geometry.d.ts +21 -0
- package/dist/qa/index.d.ts +12 -0
- package/dist/qa/index.js +78 -0
- package/dist/qa/index.js.map +9 -0
- package/dist/qa/inside.d.ts +12 -0
- package/dist/qa/inspect.d.ts +18 -0
- package/dist/qa/lods.d.ts +12 -0
- package/dist/qa/measures.d.ts +4 -0
- package/dist/qa/occlusion.d.ts +3 -0
- package/dist/qa/sanity.d.ts +7 -0
- package/dist/qa/types.d.ts +12 -0
- package/dist/render/beauty.d.ts +40 -0
- package/dist/render/camera.d.ts +33 -0
- package/dist/render/depth-map.d.ts +38 -0
- package/dist/render/font.d.ts +1 -0
- package/dist/render/ground.d.ts +13 -0
- package/dist/render/index.d.ts +10 -0
- package/dist/render/index.js +47 -0
- package/dist/render/index.js.map +9 -0
- package/dist/render/lighting.d.ts +20 -0
- package/dist/render/lod-strip.d.ts +5 -0
- package/dist/render/metrics.d.ts +37 -0
- package/dist/render/options.d.ts +28 -0
- package/dist/render/photo-match.d.ts +19 -0
- package/dist/render/raster.d.ts +25 -0
- package/dist/render/resolve.d.ts +11 -0
- package/dist/render/review-prompt.d.ts +2 -0
- package/dist/render/review-warnings.d.ts +34 -0
- package/dist/render/review.d.ts +24 -0
- package/dist/render/scene.d.ts +18 -0
- package/dist/render/shade.d.ts +22 -0
- package/dist/render/sheet.d.ts +15 -0
- package/dist/render/texture.d.ts +15 -0
- package/dist/render/thumbnail.d.ts +8 -0
- package/dist/render/vis-buffer.d.ts +18 -0
- package/dist/testing/assert.d.ts +21 -0
- package/dist/testing/compiled.d.ts +15 -0
- package/dist/testing/hash.d.ts +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.js +134 -0
- package/dist/testing/index.js.map +13 -0
- package/dist/testing/snapshot.d.ts +13 -0
- package/docs/README.md +52 -0
- package/docs/architecture/README.md +68 -0
- package/docs/architecture/adding-a-kind.md +44 -0
- package/docs/architecture/adding-a-primitive.md +49 -0
- package/docs/architecture/errors.md +47 -0
- package/docs/architecture/glb-production.md +214 -0
- package/docs/architecture/gltf-capabilities.md +80 -0
- package/docs/decisions/001-recipe-compiler-over-ai-meshes.md +27 -0
- package/docs/decisions/002-typescript-not-json.md +22 -0
- package/docs/decisions/003-shared-trim-sheet.md +21 -0
- package/docs/decisions/004-z-up-metres.md +21 -0
- package/docs/decisions/005-zero-runtime-deps.md +21 -0
- package/docs/decisions/006-single-package-subpath-exports.md +20 -0
- package/docs/decisions/007-cpu-contact-sheets.md +21 -0
- package/docs/decisions/008-surface-materials.md +21 -0
- package/docs/decisions/009-gltf-front-axis.md +21 -0
- package/docs/decisions/README.md +15 -0
- package/docs/idea/01-vision.md +117 -0
- package/docs/idea/02-dsl.md +343 -0
- package/docs/idea/03-ir.md +97 -0
- package/docs/idea/04-materials.md +114 -0
- package/docs/idea/05-agent-loop.md +141 -0
- package/docs/idea/06-qa.md +101 -0
- package/docs/idea/07-what-fits.md +45 -0
- package/docs/idea/08-neural-adapters.md +78 -0
- package/docs/idea/09-kinds.md +105 -0
- package/docs/landscape.md +49 -0
- package/docs/plans/roadmap.md +127 -0
- package/examples/build-with-bun.ts +41 -0
- package/llms.txt +47 -0
- package/package.json +99 -4
- package/recipes/README.md +38 -0
- package/recipes/asteroid/README.md +46 -0
- package/recipes/asteroid/asteroid.ts +336 -0
- package/recipes/boulders/README.md +28 -0
- package/recipes/boulders/boulders.ts +117 -0
- package/recipes/boxcar/README.md +46 -0
- package/recipes/boxcar/boxcar.ts +916 -0
- package/recipes/cargo_container_scifi/README.md +52 -0
- package/recipes/cargo_container_scifi/cargo_container_scifi.ts +461 -0
- package/recipes/dropship/README.md +84 -0
- package/recipes/dropship/dropship.ts +1144 -0
- package/recipes/eiffel_tower/README.md +110 -0
- package/recipes/eiffel_tower/eiffel_tower.ts +781 -0
- package/recipes/goblin_head/README.md +62 -0
- package/recipes/goblin_head/goblin_head.ts +36 -0
- package/recipes/human_head/README.md +64 -0
- package/recipes/human_head/human_head.ts +37 -0
- package/recipes/loco_440/README.md +32 -0
- package/recipes/loco_440/loco_440.ts +1404 -0
- package/recipes/material_swatches/README.md +21 -0
- package/recipes/material_swatches/material_swatches.ts +183 -0
- package/recipes/mountain_range/README.md +45 -0
- package/recipes/mountain_range/mountain_range.ts +128 -0
- package/recipes/oak/README.md +30 -0
- package/recipes/oak/oak.ts +19 -0
- package/recipes/orc_head/README.md +66 -0
- package/recipes/orc_head/orc_head.ts +39 -0
- package/recipes/palm/README.md +30 -0
- package/recipes/palm/palm.ts +19 -0
- package/recipes/pine/README.md +29 -0
- package/recipes/pine/pine.ts +19 -0
- package/recipes/signal_gantry/README.md +36 -0
- package/recipes/signal_gantry/signal_gantry.ts +522 -0
- package/recipes/station_halt/README.md +39 -0
- package/recipes/station_halt/station_halt.ts +722 -0
- package/recipes/t34/README.md +44 -0
- package/recipes/t34/t34.ts +1068 -0
- package/recipes/tiger_1/README.md +75 -0
- package/recipes/tiger_1/tiger_1.ts +1370 -0
- package/recipes/water_tower/README.md +40 -0
- package/recipes/water_tower/water_tower.ts +542 -0
- package/src/cli/args.ts +112 -0
- package/src/cli/bin.ts +7 -0
- package/src/cli/load.ts +17 -0
- package/src/cli/manifest.ts +89 -0
- package/src/cli/render-cmds.ts +66 -0
- package/src/cli/run.ts +168 -0
- package/src/core/asset.ts +128 -0
- package/src/core/definition.ts +149 -0
- package/src/core/errors.ts +45 -0
- package/src/core/family.ts +50 -0
- package/src/core/index.ts +66 -0
- package/src/core/mesh.ts +114 -0
- package/src/core/part.ts +130 -0
- package/src/core/png.ts +49 -0
- package/src/core/rng.ts +49 -0
- package/src/core/transform.ts +90 -0
- package/src/core/vec.ts +26 -0
- package/src/core/world.ts +80 -0
- package/src/export/bin-writer.ts +79 -0
- package/src/export/container.ts +35 -0
- package/src/export/glb.ts +200 -0
- package/src/export/index.ts +18 -0
- package/src/export/lights.ts +49 -0
- package/src/export/materials.ts +126 -0
- package/src/export/merge-pivots.ts +146 -0
- package/src/export/metadata.ts +59 -0
- package/src/export/motion.ts +70 -0
- package/src/export/optimize-parts.ts +80 -0
- package/src/export/primitive.ts +35 -0
- package/src/export/tangents.ts +75 -0
- package/src/export/textures.ts +88 -0
- package/src/export/version.ts +6 -0
- package/src/grammar/index.ts +4 -0
- package/src/grammar/split.ts +87 -0
- package/src/grammar/whyte.ts +20 -0
- package/src/index.ts +14 -0
- package/src/kinds/building.ts +153 -0
- package/src/kinds/faces.ts +138 -0
- package/src/kinds/head-armour.ts +151 -0
- package/src/kinds/head-beard.ts +133 -0
- package/src/kinds/head-bust.ts +221 -0
- package/src/kinds/head-extras.ts +150 -0
- package/src/kinds/head-face.ts +222 -0
- package/src/kinds/head-geom.ts +31 -0
- package/src/kinds/head-hair.ts +152 -0
- package/src/kinds/head-layout.ts +63 -0
- package/src/kinds/head-mesh.ts +157 -0
- package/src/kinds/head-params.ts +153 -0
- package/src/kinds/head-presets.ts +152 -0
- package/src/kinds/head-rim.ts +128 -0
- package/src/kinds/head.ts +171 -0
- package/src/kinds/hull-lines.ts +160 -0
- package/src/kinds/hull-skin.ts +83 -0
- package/src/kinds/hull.ts +209 -0
- package/src/kinds/index.ts +63 -0
- package/src/kinds/mass.ts +110 -0
- package/src/kinds/openings.ts +141 -0
- package/src/kinds/planned.ts +12 -0
- package/src/kinds/roof-chimney.ts +100 -0
- package/src/kinds/roof-shape.ts +230 -0
- package/src/kinds/roof.ts +250 -0
- package/src/kinds/vegetation-fronds.ts +126 -0
- package/src/kinds/vegetation-impostor.ts +118 -0
- package/src/kinds/vegetation-leaves.ts +168 -0
- package/src/kinds/vegetation-mesh.ts +174 -0
- package/src/kinds/vegetation-params.ts +147 -0
- package/src/kinds/vegetation-presets.ts +184 -0
- package/src/kinds/vegetation-skeleton.ts +168 -0
- package/src/kinds/vegetation.ts +199 -0
- package/src/kinds/vehicle.ts +144 -0
- package/src/material/generator.ts +56 -0
- package/src/material/index.ts +29 -0
- package/src/material/paint/bond.ts +60 -0
- package/src/material/paint/canvas.ts +91 -0
- package/src/material/paint/cell.ts +39 -0
- package/src/material/paint/cells-round.ts +119 -0
- package/src/material/paint/cells.ts +111 -0
- package/src/material/paint/compose.ts +53 -0
- package/src/material/paint/concrete.ts +62 -0
- package/src/material/paint/courses.ts +85 -0
- package/src/material/paint/decode-png.ts +100 -0
- package/src/material/paint/default-sheet.ts +61 -0
- package/src/material/paint/foliage-broad.ts +126 -0
- package/src/material/paint/foliage-common.ts +93 -0
- package/src/material/paint/foliage-compound.ts +135 -0
- package/src/material/paint/foliage-conifer.ts +143 -0
- package/src/material/paint/foliage-raster.ts +196 -0
- package/src/material/paint/foliage.ts +23 -0
- package/src/material/paint/masks.ts +44 -0
- package/src/material/paint/noise.ts +52 -0
- package/src/material/paint/normal.ts +52 -0
- package/src/material/paint/orm.ts +95 -0
- package/src/material/paint/planks.ts +56 -0
- package/src/material/paint/plates.ts +72 -0
- package/src/material/paint/shapes.ts +28 -0
- package/src/material/paint/slate.ts +52 -0
- package/src/material/paint/stamp.ts +40 -0
- package/src/material/paint/strip.ts +42 -0
- package/src/material/paint/surface.ts +60 -0
- package/src/material/paint/types.ts +51 -0
- package/src/material/paint/validate.ts +58 -0
- package/src/material/palette.ts +43 -0
- package/src/material/shader-godot.ts +77 -0
- package/src/material/shader-three.ts +103 -0
- package/src/material/shader.ts +100 -0
- package/src/material/trim-sheet.ts +100 -0
- package/src/neural/generator.ts +37 -0
- package/src/neural/images.ts +27 -0
- package/src/neural/index.ts +10 -0
- package/src/passes/bake-ao.ts +183 -0
- package/src/passes/grime.ts +37 -0
- package/src/passes/index.ts +8 -0
- package/src/passes/livery.ts +66 -0
- package/src/passes/optimize-cache.ts +175 -0
- package/src/passes/optimize-weld.ts +147 -0
- package/src/passes/optimize.ts +85 -0
- package/src/passes/ray-grid.ts +237 -0
- package/src/passes/weighted-normals.ts +125 -0
- package/src/primitives/beam.ts +60 -0
- package/src/primitives/bevel-box.ts +140 -0
- package/src/primitives/box.ts +90 -0
- package/src/primitives/cell.ts +115 -0
- package/src/primitives/check.ts +49 -0
- package/src/primitives/closed.ts +74 -0
- package/src/primitives/erosion.ts +183 -0
- package/src/primitives/font-5x7.ts +117 -0
- package/src/primitives/heightfield.ts +101 -0
- package/src/primitives/index.ts +56 -0
- package/src/primitives/lathe-facets.ts +45 -0
- package/src/primitives/lathe.ts +174 -0
- package/src/primitives/lattice.ts +131 -0
- package/src/primitives/loft.ts +174 -0
- package/src/primitives/mc-table.ts +41 -0
- package/src/primitives/member.ts +130 -0
- package/src/primitives/noise.ts +157 -0
- package/src/primitives/planar.ts +55 -0
- package/src/primitives/prism.ts +85 -0
- package/src/primitives/sculpt-edit.ts +212 -0
- package/src/primitives/sculpt-tree.ts +226 -0
- package/src/primitives/sculpt.ts +80 -0
- package/src/primitives/sdf-grid.ts +131 -0
- package/src/primitives/sdf-ops.ts +145 -0
- package/src/primitives/sdf.ts +83 -0
- package/src/primitives/strip-uv.ts +26 -0
- package/src/primitives/surface-nets.ts +161 -0
- package/src/primitives/sweep.ts +162 -0
- package/src/primitives/terrain-color.ts +85 -0
- package/src/primitives/terrain-grid.ts +137 -0
- package/src/primitives/text-layout.ts +85 -0
- package/src/primitives/text.ts +197 -0
- package/src/primitives/tiled.ts +93 -0
- package/src/primitives/transport.ts +85 -0
- package/src/primitives/triangulate.ts +42 -0
- package/src/primitives/value-noise.ts +62 -0
- package/src/qa/checks.ts +110 -0
- package/src/qa/clash.ts +177 -0
- package/src/qa/floating.ts +63 -0
- package/src/qa/gates.ts +126 -0
- package/src/qa/geometry.ts +187 -0
- package/src/qa/index.ts +28 -0
- package/src/qa/inside.ts +114 -0
- package/src/qa/inspect.ts +107 -0
- package/src/qa/lods.ts +97 -0
- package/src/qa/measures.ts +67 -0
- package/src/qa/occlusion.ts +166 -0
- package/src/qa/sanity.ts +137 -0
- package/src/qa/types.ts +17 -0
- package/src/render/beauty.ts +115 -0
- package/src/render/camera.ts +142 -0
- package/src/render/depth-map.ts +191 -0
- package/src/render/font.ts +76 -0
- package/src/render/ground.ts +87 -0
- package/src/render/index.ts +34 -0
- package/src/render/lighting.ts +95 -0
- package/src/render/lod-strip.ts +34 -0
- package/src/render/metrics.ts +147 -0
- package/src/render/options.ts +81 -0
- package/src/render/photo-match.ts +28 -0
- package/src/render/raster.ts +143 -0
- package/src/render/resolve.ts +109 -0
- package/src/render/review-prompt.ts +59 -0
- package/src/render/review-warnings.ts +92 -0
- package/src/render/review.ts +103 -0
- package/src/render/scene.ts +119 -0
- package/src/render/shade.ts +199 -0
- package/src/render/sheet.ts +88 -0
- package/src/render/texture.ts +97 -0
- package/src/render/thumbnail.ts +75 -0
- package/src/render/vis-buffer.ts +119 -0
- package/src/testing/assert.ts +115 -0
- package/src/testing/compiled.ts +31 -0
- package/src/testing/hash.ts +14 -0
- package/src/testing/index.ts +14 -0
- package/src/testing/snapshot.ts +37 -0
- package/src/types/gltf-validator.d.ts +13 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Json } from './bin-writer.js';
|
|
2
|
+
export interface GlbMeta {
|
|
3
|
+
/** Default: the asset name. */
|
|
4
|
+
readonly title?: string;
|
|
5
|
+
readonly description?: string;
|
|
6
|
+
readonly creators?: readonly string[];
|
|
7
|
+
/** Goes to `asset.copyright` and `dc:rights`, e.g. "© 2026 Jane Doe". */
|
|
8
|
+
readonly copyright?: string;
|
|
9
|
+
/** SPDX id or licence URL → `xmpRights:UsageTerms`, e.g. "CC-BY-4.0". */
|
|
10
|
+
readonly license?: string;
|
|
11
|
+
/** Where the numbers came from (the recipe's `sources`) → `dc:relation`. */
|
|
12
|
+
readonly sources?: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
/** `asset` block, plus root `extensions` and the extension name when an XMP packet is written. */
|
|
15
|
+
export declare function metadata(name: string, meta: GlbMeta | undefined): {
|
|
16
|
+
asset: Json;
|
|
17
|
+
extensions?: Json;
|
|
18
|
+
used: string[];
|
|
19
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Motion } from '../core/index.js';
|
|
2
|
+
import type { BinWriter, Json } from './bin-writer.js';
|
|
3
|
+
export declare const LOOP_SECONDS = 4;
|
|
4
|
+
/** Whole cycles of `rate` (Hz or rev/s) over the clip, at least one. */
|
|
5
|
+
export declare const cyclesOf: (rate: number) => number;
|
|
6
|
+
export declare function motionChannel(bin: BinWriter, motion: Motion, node: number, rest: readonly number[]): {
|
|
7
|
+
sampler: Json;
|
|
8
|
+
channel: Json;
|
|
9
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CompiledAsset } from '../core/index.js';
|
|
2
|
+
import { type OptimizeOptions, type OptimizeReport } from '../passes/index.js';
|
|
3
|
+
export interface PartOptimizeReport extends OptimizeReport {
|
|
4
|
+
readonly part: string;
|
|
5
|
+
}
|
|
6
|
+
/** Totals over all parts; ACMR/ATVR are triangle-weighted means. */
|
|
7
|
+
export interface ExportReport {
|
|
8
|
+
readonly optimized: boolean;
|
|
9
|
+
readonly verticesBefore: number;
|
|
10
|
+
readonly verticesAfter: number;
|
|
11
|
+
readonly trianglesBefore: number;
|
|
12
|
+
readonly trianglesAfter: number;
|
|
13
|
+
readonly degenerate: number;
|
|
14
|
+
readonly duplicate: number;
|
|
15
|
+
readonly acmrBefore: number;
|
|
16
|
+
readonly acmr: number;
|
|
17
|
+
readonly atvrBefore: number;
|
|
18
|
+
readonly atvr: number;
|
|
19
|
+
readonly parts: readonly PartOptimizeReport[];
|
|
20
|
+
}
|
|
21
|
+
export declare function summarize(parts: readonly PartOptimizeReport[], optimized: boolean): ExportReport;
|
|
22
|
+
/** Optimise every part mesh. `false` passes meshes through and reports them as-is. */
|
|
23
|
+
export declare function optimizeParts(asset: CompiledAsset, o: OptimizeOptions | false): {
|
|
24
|
+
asset: CompiledAsset;
|
|
25
|
+
report: ExportReport;
|
|
26
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PaintedSheet } from '../material/index.js';
|
|
2
|
+
import type { Json } from './bin-writer.js';
|
|
3
|
+
export type SheetMap = 'albedo' | 'normal' | 'orm';
|
|
4
|
+
export declare const SHEET_MAPS: readonly SheetMap[];
|
|
5
|
+
/** Reference a shared sheet by URI instead of embedding it. */
|
|
6
|
+
export interface ExternalSheet {
|
|
7
|
+
readonly external: true;
|
|
8
|
+
/** URI prefix relative to the .glb, e.g. `../textures/trim_sheet`. Default `trim_sheet`. */
|
|
9
|
+
readonly prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
export type SheetBinding = PaintedSheet | ExternalSheet;
|
|
12
|
+
export declare const sheetFileName: (map: SheetMap, prefix?: string) => string;
|
|
13
|
+
/** PNG bytes of each map, encoded once per sheet (every LOD's GLB reuses them). */
|
|
14
|
+
export declare function sheetPngs(sheet: PaintedSheet): Readonly<Record<SheetMap, Uint8Array>>;
|
|
15
|
+
/**
|
|
16
|
+
* glTF `images` / `textures` / `samplers` for the sheet. Embedded image bytes are returned as
|
|
17
|
+
* `tail`, to append to the BIN chunk at `offset` (4-aligned); their bufferViews go into `views`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sheetGltf(sheet: SheetBinding, views: Json[], offset: number): {
|
|
20
|
+
json: Json;
|
|
21
|
+
tail: Uint8Array;
|
|
22
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseSplit2,
|
|
3
|
+
layoutSplit2,
|
|
4
|
+
split2,
|
|
5
|
+
parseWhyte2
|
|
6
|
+
} from "../chunk-ravbb06q.js";
|
|
7
|
+
import"../chunk-4ddzsqtc.js";
|
|
8
|
+
export {
|
|
9
|
+
layoutSplit2 as layoutSplit,
|
|
10
|
+
parseSplit2 as parseSplit,
|
|
11
|
+
parseWhyte2 as parseWhyte,
|
|
12
|
+
split2 as split
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//# debugId=870B19B6612FF82364756E2164756E21
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type SplitTerm = {
|
|
2
|
+
readonly kind: 'fixed';
|
|
3
|
+
readonly symbol: string;
|
|
4
|
+
readonly size: number;
|
|
5
|
+
} | {
|
|
6
|
+
readonly kind: 'stretch';
|
|
7
|
+
readonly symbol: string;
|
|
8
|
+
readonly weight: number;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'repeat';
|
|
11
|
+
readonly body: readonly SplitTerm[];
|
|
12
|
+
};
|
|
13
|
+
export interface Slot {
|
|
14
|
+
readonly symbol: string;
|
|
15
|
+
readonly start: number;
|
|
16
|
+
readonly size: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function parseSplit(src: string): SplitTerm[];
|
|
19
|
+
/** Lay a parsed split across `length` metres. Repeats take whole copies; stretches share the rest. */
|
|
20
|
+
export declare function layoutSplit(terms: readonly SplitTerm[], length: number): Slot[];
|
|
21
|
+
export declare const split: (src: string, length: number) => Slot[];
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { type AssetManifest, manifestOf } from './cli/manifest.js';
|
|
2
|
+
export * from './core/index.js';
|
|
3
|
+
export * from './export/index.js';
|
|
4
|
+
export * from './grammar/index.js';
|
|
5
|
+
export * from './kinds/index.js';
|
|
6
|
+
export * from './material/index.js';
|
|
7
|
+
export * from './neural/index.js';
|
|
8
|
+
export * from './passes/index.js';
|
|
9
|
+
export * from './primitives/index.js';
|
|
10
|
+
export * from './qa/index.js';
|
|
11
|
+
export * from './render/index.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Ts23dError2,
|
|
3
|
+
notImplemented2,
|
|
4
|
+
createRng2,
|
|
5
|
+
BUDGETS2,
|
|
6
|
+
defineAsset2,
|
|
7
|
+
isAsset2,
|
|
8
|
+
compile2,
|
|
9
|
+
defineFamily2,
|
|
10
|
+
MeshBuilder2,
|
|
11
|
+
triangleCount2,
|
|
12
|
+
boundsOf2,
|
|
13
|
+
translate2,
|
|
14
|
+
merge2,
|
|
15
|
+
encodePng2,
|
|
16
|
+
affine2,
|
|
17
|
+
frame2,
|
|
18
|
+
applyAffine2,
|
|
19
|
+
place2,
|
|
20
|
+
add2,
|
|
21
|
+
sub2,
|
|
22
|
+
scale2,
|
|
23
|
+
dot2,
|
|
24
|
+
cross2,
|
|
25
|
+
length2,
|
|
26
|
+
normalize2,
|
|
27
|
+
quatFromAxisAngle2,
|
|
28
|
+
worldTransforms2,
|
|
29
|
+
toWorld2,
|
|
30
|
+
rotateZ2,
|
|
31
|
+
worldMesh2,
|
|
32
|
+
worldMeshes2
|
|
33
|
+
} from "./chunk-4ddzsqtc.js";
|
|
34
|
+
import {
|
|
35
|
+
TRIM_SHEET_SIZE2,
|
|
36
|
+
stripRect2,
|
|
37
|
+
cellRect2,
|
|
38
|
+
STRIPS2,
|
|
39
|
+
CELLS2,
|
|
40
|
+
DECAL_CELLS2,
|
|
41
|
+
FOLIAGE_CELLS2,
|
|
42
|
+
isFoliage2,
|
|
43
|
+
DEFAULT_SHEET2,
|
|
44
|
+
paintTrimSheet2,
|
|
45
|
+
hex2,
|
|
46
|
+
definePalette2,
|
|
47
|
+
palettes2,
|
|
48
|
+
threeMaterialSource2,
|
|
49
|
+
godotShaderSource2
|
|
50
|
+
} from "./chunk-kvcep7ft.js";
|
|
51
|
+
import {
|
|
52
|
+
RayGrid2,
|
|
53
|
+
bakeAo2,
|
|
54
|
+
bakeAoAsset2,
|
|
55
|
+
grime2,
|
|
56
|
+
livery2,
|
|
57
|
+
optimize2,
|
|
58
|
+
weightedNormals2
|
|
59
|
+
} from "./chunk-xnt2sdhf.js";
|
|
60
|
+
import {
|
|
61
|
+
mergeToPivots2,
|
|
62
|
+
summarize2,
|
|
63
|
+
optimizeParts2,
|
|
64
|
+
SHEET_MAPS2,
|
|
65
|
+
sheetFileName2,
|
|
66
|
+
sheetPngs2,
|
|
67
|
+
toGlb2,
|
|
68
|
+
exportGlb2
|
|
69
|
+
} from "./chunk-gcyp9b4d.js";
|
|
70
|
+
import {
|
|
71
|
+
pointTriangleDistance2,
|
|
72
|
+
TriangleGrid2,
|
|
73
|
+
surfaceSamples2,
|
|
74
|
+
insideSolid2,
|
|
75
|
+
glob2,
|
|
76
|
+
inspect2,
|
|
77
|
+
clear2,
|
|
78
|
+
noOverlap2,
|
|
79
|
+
touches2,
|
|
80
|
+
symmetric2,
|
|
81
|
+
runChecks2,
|
|
82
|
+
CONTACT_EPS2,
|
|
83
|
+
CLASH_EPS2,
|
|
84
|
+
clashes2,
|
|
85
|
+
touching2,
|
|
86
|
+
floatingParts2,
|
|
87
|
+
measure2,
|
|
88
|
+
measures2,
|
|
89
|
+
zFighting2,
|
|
90
|
+
hiddenParts2,
|
|
91
|
+
nonFinite2,
|
|
92
|
+
vertexColors2,
|
|
93
|
+
normalsMatchWinding2,
|
|
94
|
+
degenerateTriangles2,
|
|
95
|
+
triangleBudget2,
|
|
96
|
+
partNames2,
|
|
97
|
+
proportions2,
|
|
98
|
+
silhouetteIoU2,
|
|
99
|
+
DEFAULT_GATES2,
|
|
100
|
+
runQa2,
|
|
101
|
+
lodTriangles2,
|
|
102
|
+
lodSilhouette2,
|
|
103
|
+
lodPivots2,
|
|
104
|
+
DEFAULT_LOD_GATES2,
|
|
105
|
+
runLodQa2
|
|
106
|
+
} from "./chunk-w1zyhj40.js";
|
|
107
|
+
import {
|
|
108
|
+
parseSplit2,
|
|
109
|
+
layoutSplit2,
|
|
110
|
+
split2,
|
|
111
|
+
parseWhyte2
|
|
112
|
+
} from "./chunk-ravbb06q.js";
|
|
113
|
+
import {
|
|
114
|
+
box2,
|
|
115
|
+
lathe2,
|
|
116
|
+
cylinder2,
|
|
117
|
+
beam2,
|
|
118
|
+
cell2,
|
|
119
|
+
hydraulicErosion2,
|
|
120
|
+
heightfield2,
|
|
121
|
+
triangulate2,
|
|
122
|
+
lattice2,
|
|
123
|
+
ringXY2,
|
|
124
|
+
loft2,
|
|
125
|
+
gradientNoise22,
|
|
126
|
+
valueNoise22,
|
|
127
|
+
fbm2,
|
|
128
|
+
billow2,
|
|
129
|
+
ridged2,
|
|
130
|
+
warp2,
|
|
131
|
+
terrace2,
|
|
132
|
+
planar2,
|
|
133
|
+
prism2,
|
|
134
|
+
sd2,
|
|
135
|
+
sdf2,
|
|
136
|
+
sculptField2,
|
|
137
|
+
sculpt2,
|
|
138
|
+
arcLengths2,
|
|
139
|
+
transportFrames2,
|
|
140
|
+
sweep2,
|
|
141
|
+
terrainGrid2,
|
|
142
|
+
sampler2,
|
|
143
|
+
slopeMap2,
|
|
144
|
+
thermalErosion2,
|
|
145
|
+
terrainColor2,
|
|
146
|
+
measureText2,
|
|
147
|
+
text2,
|
|
148
|
+
tiled2,
|
|
149
|
+
valueNoise3
|
|
150
|
+
} from "./chunk-wtqhq529.js";
|
|
151
|
+
import {
|
|
152
|
+
mass2,
|
|
153
|
+
opening2,
|
|
154
|
+
facade2,
|
|
155
|
+
setbacks2,
|
|
156
|
+
checkHead2,
|
|
157
|
+
HEADS2,
|
|
158
|
+
headParams2,
|
|
159
|
+
HEAD_RES2,
|
|
160
|
+
headEdits2,
|
|
161
|
+
head2,
|
|
162
|
+
hullLines2,
|
|
163
|
+
hullMesh2,
|
|
164
|
+
hull2,
|
|
165
|
+
creature2,
|
|
166
|
+
roofHeightAt2,
|
|
167
|
+
ridgeHeight2,
|
|
168
|
+
roofMesh2,
|
|
169
|
+
roof2,
|
|
170
|
+
roofInfo2,
|
|
171
|
+
oak2,
|
|
172
|
+
pine2,
|
|
173
|
+
palm2,
|
|
174
|
+
birch2,
|
|
175
|
+
willow2,
|
|
176
|
+
SPECIES2,
|
|
177
|
+
treeParams2,
|
|
178
|
+
tree2,
|
|
179
|
+
treeReal2,
|
|
180
|
+
trees2,
|
|
181
|
+
axle2,
|
|
182
|
+
whyteAxles2,
|
|
183
|
+
trackRun2,
|
|
184
|
+
propeller2
|
|
185
|
+
} from "./chunk-1ypfs7ga.js";
|
|
186
|
+
import {
|
|
187
|
+
localGenerator2,
|
|
188
|
+
importGlb2,
|
|
189
|
+
kubeezImages2
|
|
190
|
+
} from "./chunk-a8fxakcj.js";
|
|
191
|
+
import {
|
|
192
|
+
checkBeautyOptions2,
|
|
193
|
+
parseSize2,
|
|
194
|
+
cameraFor2,
|
|
195
|
+
renderBeauty2,
|
|
196
|
+
beauty2,
|
|
197
|
+
lodStrip2,
|
|
198
|
+
viewFrame2,
|
|
199
|
+
silhouette2,
|
|
200
|
+
maskIoU2,
|
|
201
|
+
poolMask2,
|
|
202
|
+
maskStats2,
|
|
203
|
+
exposure2,
|
|
204
|
+
photoMatch2,
|
|
205
|
+
REVIEW_THRESHOLDS2,
|
|
206
|
+
VIEWS2,
|
|
207
|
+
contactSheet2,
|
|
208
|
+
detailWindows2,
|
|
209
|
+
reviewPack2,
|
|
210
|
+
thumbnail2
|
|
211
|
+
} from "./chunk-11v28977.js";
|
|
212
|
+
import {
|
|
213
|
+
manifestOf2
|
|
214
|
+
} from "./chunk-kgvbpqqw.js";
|
|
215
|
+
export {
|
|
216
|
+
BUDGETS2 as BUDGETS,
|
|
217
|
+
CELLS2 as CELLS,
|
|
218
|
+
CLASH_EPS2 as CLASH_EPS,
|
|
219
|
+
CONTACT_EPS2 as CONTACT_EPS,
|
|
220
|
+
DECAL_CELLS2 as DECAL_CELLS,
|
|
221
|
+
DEFAULT_GATES2 as DEFAULT_GATES,
|
|
222
|
+
DEFAULT_LOD_GATES2 as DEFAULT_LOD_GATES,
|
|
223
|
+
DEFAULT_SHEET2 as DEFAULT_SHEET,
|
|
224
|
+
FOLIAGE_CELLS2 as FOLIAGE_CELLS,
|
|
225
|
+
HEADS2 as HEADS,
|
|
226
|
+
HEAD_RES2 as HEAD_RES,
|
|
227
|
+
MeshBuilder2 as MeshBuilder,
|
|
228
|
+
REVIEW_THRESHOLDS2 as REVIEW_THRESHOLDS,
|
|
229
|
+
RayGrid2 as RayGrid,
|
|
230
|
+
SHEET_MAPS2 as SHEET_MAPS,
|
|
231
|
+
SPECIES2 as SPECIES,
|
|
232
|
+
STRIPS2 as STRIPS,
|
|
233
|
+
TRIM_SHEET_SIZE2 as TRIM_SHEET_SIZE,
|
|
234
|
+
TriangleGrid2 as TriangleGrid,
|
|
235
|
+
Ts23dError2 as Ts23dError,
|
|
236
|
+
VIEWS2 as VIEWS,
|
|
237
|
+
add2 as add,
|
|
238
|
+
affine2 as affine,
|
|
239
|
+
applyAffine2 as applyAffine,
|
|
240
|
+
arcLengths2 as arcLengths,
|
|
241
|
+
axle2 as axle,
|
|
242
|
+
bakeAo2 as bakeAo,
|
|
243
|
+
bakeAoAsset2 as bakeAoAsset,
|
|
244
|
+
beam2 as beam,
|
|
245
|
+
beauty2 as beauty,
|
|
246
|
+
billow2 as billow,
|
|
247
|
+
birch2 as birch,
|
|
248
|
+
boundsOf2 as boundsOf,
|
|
249
|
+
box2 as box,
|
|
250
|
+
cameraFor2 as cameraFor,
|
|
251
|
+
cell2 as cell,
|
|
252
|
+
cellRect2 as cellRect,
|
|
253
|
+
checkBeautyOptions2 as checkBeautyOptions,
|
|
254
|
+
checkHead2 as checkHead,
|
|
255
|
+
clashes2 as clashes,
|
|
256
|
+
clear2 as clear,
|
|
257
|
+
compile2 as compile,
|
|
258
|
+
contactSheet2 as contactSheet,
|
|
259
|
+
createRng2 as createRng,
|
|
260
|
+
creature2 as creature,
|
|
261
|
+
cross2 as cross,
|
|
262
|
+
cylinder2 as cylinder,
|
|
263
|
+
defineAsset2 as defineAsset,
|
|
264
|
+
defineFamily2 as defineFamily,
|
|
265
|
+
definePalette2 as definePalette,
|
|
266
|
+
degenerateTriangles2 as degenerateTriangles,
|
|
267
|
+
detailWindows2 as detailWindows,
|
|
268
|
+
dot2 as dot,
|
|
269
|
+
encodePng2 as encodePng,
|
|
270
|
+
exportGlb2 as exportGlb,
|
|
271
|
+
exposure2 as exposure,
|
|
272
|
+
facade2 as facade,
|
|
273
|
+
fbm2 as fbm,
|
|
274
|
+
floatingParts2 as floatingParts,
|
|
275
|
+
frame2 as frame,
|
|
276
|
+
glob2 as glob,
|
|
277
|
+
godotShaderSource2 as godotShaderSource,
|
|
278
|
+
gradientNoise22 as gradientNoise2,
|
|
279
|
+
grime2 as grime,
|
|
280
|
+
head2 as head,
|
|
281
|
+
headEdits2 as headEdits,
|
|
282
|
+
headParams2 as headParams,
|
|
283
|
+
heightfield2 as heightfield,
|
|
284
|
+
hex2 as hex,
|
|
285
|
+
hiddenParts2 as hiddenParts,
|
|
286
|
+
hull2 as hull,
|
|
287
|
+
hullLines2 as hullLines,
|
|
288
|
+
hullMesh2 as hullMesh,
|
|
289
|
+
hydraulicErosion2 as hydraulicErosion,
|
|
290
|
+
importGlb2 as importGlb,
|
|
291
|
+
insideSolid2 as insideSolid,
|
|
292
|
+
inspect2 as inspect,
|
|
293
|
+
isAsset2 as isAsset,
|
|
294
|
+
isFoliage2 as isFoliage,
|
|
295
|
+
kubeezImages2 as kubeezImages,
|
|
296
|
+
lathe2 as lathe,
|
|
297
|
+
lattice2 as lattice,
|
|
298
|
+
layoutSplit2 as layoutSplit,
|
|
299
|
+
length2 as length,
|
|
300
|
+
livery2 as livery,
|
|
301
|
+
localGenerator2 as localGenerator,
|
|
302
|
+
lodPivots2 as lodPivots,
|
|
303
|
+
lodSilhouette2 as lodSilhouette,
|
|
304
|
+
lodStrip2 as lodStrip,
|
|
305
|
+
lodTriangles2 as lodTriangles,
|
|
306
|
+
loft2 as loft,
|
|
307
|
+
manifestOf2 as manifestOf,
|
|
308
|
+
maskIoU2 as maskIoU,
|
|
309
|
+
maskStats2 as maskStats,
|
|
310
|
+
mass2 as mass,
|
|
311
|
+
measure2 as measure,
|
|
312
|
+
measureText2 as measureText,
|
|
313
|
+
measures2 as measures,
|
|
314
|
+
merge2 as merge,
|
|
315
|
+
mergeToPivots2 as mergeToPivots,
|
|
316
|
+
noOverlap2 as noOverlap,
|
|
317
|
+
nonFinite2 as nonFinite,
|
|
318
|
+
normalize2 as normalize,
|
|
319
|
+
normalsMatchWinding2 as normalsMatchWinding,
|
|
320
|
+
notImplemented2 as notImplemented,
|
|
321
|
+
oak2 as oak,
|
|
322
|
+
opening2 as opening,
|
|
323
|
+
optimize2 as optimize,
|
|
324
|
+
optimizeParts2 as optimizeParts,
|
|
325
|
+
paintTrimSheet2 as paintTrimSheet,
|
|
326
|
+
palettes2 as palettes,
|
|
327
|
+
palm2 as palm,
|
|
328
|
+
parseSize2 as parseSize,
|
|
329
|
+
parseSplit2 as parseSplit,
|
|
330
|
+
parseWhyte2 as parseWhyte,
|
|
331
|
+
partNames2 as partNames,
|
|
332
|
+
photoMatch2 as photoMatch,
|
|
333
|
+
pine2 as pine,
|
|
334
|
+
place2 as place,
|
|
335
|
+
planar2 as planar,
|
|
336
|
+
pointTriangleDistance2 as pointTriangleDistance,
|
|
337
|
+
poolMask2 as poolMask,
|
|
338
|
+
prism2 as prism,
|
|
339
|
+
propeller2 as propeller,
|
|
340
|
+
proportions2 as proportions,
|
|
341
|
+
quatFromAxisAngle2 as quatFromAxisAngle,
|
|
342
|
+
renderBeauty2 as renderBeauty,
|
|
343
|
+
reviewPack2 as reviewPack,
|
|
344
|
+
ridgeHeight2 as ridgeHeight,
|
|
345
|
+
ridged2 as ridged,
|
|
346
|
+
ringXY2 as ringXY,
|
|
347
|
+
roof2 as roof,
|
|
348
|
+
roofHeightAt2 as roofHeightAt,
|
|
349
|
+
roofInfo2 as roofInfo,
|
|
350
|
+
roofMesh2 as roofMesh,
|
|
351
|
+
rotateZ2 as rotateZ,
|
|
352
|
+
runChecks2 as runChecks,
|
|
353
|
+
runLodQa2 as runLodQa,
|
|
354
|
+
runQa2 as runQa,
|
|
355
|
+
sampler2 as sampler,
|
|
356
|
+
scale2 as scale,
|
|
357
|
+
sculpt2 as sculpt,
|
|
358
|
+
sculptField2 as sculptField,
|
|
359
|
+
sd2 as sd,
|
|
360
|
+
sdf2 as sdf,
|
|
361
|
+
setbacks2 as setbacks,
|
|
362
|
+
sheetFileName2 as sheetFileName,
|
|
363
|
+
sheetPngs2 as sheetPngs,
|
|
364
|
+
silhouette2 as silhouette,
|
|
365
|
+
silhouetteIoU2 as silhouetteIoU,
|
|
366
|
+
slopeMap2 as slopeMap,
|
|
367
|
+
split2 as split,
|
|
368
|
+
stripRect2 as stripRect,
|
|
369
|
+
sub2 as sub,
|
|
370
|
+
summarize2 as summarize,
|
|
371
|
+
surfaceSamples2 as surfaceSamples,
|
|
372
|
+
sweep2 as sweep,
|
|
373
|
+
symmetric2 as symmetric,
|
|
374
|
+
terrace2 as terrace,
|
|
375
|
+
terrainColor2 as terrainColor,
|
|
376
|
+
terrainGrid2 as terrainGrid,
|
|
377
|
+
text2 as text,
|
|
378
|
+
thermalErosion2 as thermalErosion,
|
|
379
|
+
threeMaterialSource2 as threeMaterialSource,
|
|
380
|
+
thumbnail2 as thumbnail,
|
|
381
|
+
tiled2 as tiled,
|
|
382
|
+
toGlb2 as toGlb,
|
|
383
|
+
toWorld2 as toWorld,
|
|
384
|
+
touches2 as touches,
|
|
385
|
+
touching2 as touching,
|
|
386
|
+
trackRun2 as trackRun,
|
|
387
|
+
translate2 as translate,
|
|
388
|
+
transportFrames2 as transportFrames,
|
|
389
|
+
tree2 as tree,
|
|
390
|
+
treeParams2 as treeParams,
|
|
391
|
+
treeReal2 as treeReal,
|
|
392
|
+
trees2 as trees,
|
|
393
|
+
triangleBudget2 as triangleBudget,
|
|
394
|
+
triangleCount2 as triangleCount,
|
|
395
|
+
triangulate2 as triangulate,
|
|
396
|
+
valueNoise3 as valueNoise,
|
|
397
|
+
valueNoise22 as valueNoise2,
|
|
398
|
+
vertexColors2 as vertexColors,
|
|
399
|
+
viewFrame2 as viewFrame,
|
|
400
|
+
warp2 as warp,
|
|
401
|
+
weightedNormals2 as weightedNormals,
|
|
402
|
+
whyteAxles2 as whyteAxles,
|
|
403
|
+
willow2 as willow,
|
|
404
|
+
worldMesh2 as worldMesh,
|
|
405
|
+
worldMeshes2 as worldMeshes,
|
|
406
|
+
worldTransforms2 as worldTransforms,
|
|
407
|
+
zFighting2 as zFighting
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
//# debugId=72A146AAD343702B64756E2164756E21
|
|
411
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BuildContext, Vec3 } from '../core/index.js';
|
|
2
|
+
import type { StripId } from '../material/index.js';
|
|
3
|
+
export type Side = 'front' | 'back' | 'left' | 'right';
|
|
4
|
+
export interface FacadeOptions {
|
|
5
|
+
readonly prefix: string;
|
|
6
|
+
/** Centre of the mass's base. */
|
|
7
|
+
readonly at: Vec3;
|
|
8
|
+
/** Footprint width (X) and depth (Y) of the mass this facade wraps. */
|
|
9
|
+
readonly footprint: readonly [number, number];
|
|
10
|
+
readonly floors: number;
|
|
11
|
+
readonly floorHeight: number;
|
|
12
|
+
/** Grammar per floor; the same line for every floor unless `ground` overrides floor 0. */
|
|
13
|
+
readonly grammar: string;
|
|
14
|
+
readonly ground?: string;
|
|
15
|
+
readonly sides: readonly Side[];
|
|
16
|
+
readonly glass: Vec3;
|
|
17
|
+
readonly frame?: Vec3;
|
|
18
|
+
/** Window height as a fraction of the floor. */
|
|
19
|
+
readonly windowRatio?: number;
|
|
20
|
+
/** Detailed openings (see `opening`): reveal in the wall colour, stone sill/lintel, sash bars. */
|
|
21
|
+
readonly kit?: {
|
|
22
|
+
readonly wall: Vec3;
|
|
23
|
+
readonly trim?: Vec3;
|
|
24
|
+
readonly depth?: number;
|
|
25
|
+
readonly panes?: readonly [number, number];
|
|
26
|
+
/** The wall's strip, so reveals continue its courses. Default 'plain'. */
|
|
27
|
+
readonly strip?: StripId;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function facade(ctx: BuildContext, o: FacadeOptions): void;
|
|
31
|
+
export interface SetbackTier {
|
|
32
|
+
readonly footprint: readonly [number, number];
|
|
33
|
+
readonly floors: number;
|
|
34
|
+
}
|
|
35
|
+
/** Stack of shrinking masses (Empire State, Chrysler-style towers). Returns the top z. */
|
|
36
|
+
export declare function setbacks(ctx: BuildContext, o: {
|
|
37
|
+
prefix: string;
|
|
38
|
+
tiers: readonly SetbackTier[];
|
|
39
|
+
floorHeight: number;
|
|
40
|
+
color: Vec3;
|
|
41
|
+
grammar: string;
|
|
42
|
+
glass: Vec3;
|
|
43
|
+
detail: boolean;
|
|
44
|
+
}): number;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type MeshBuilder, type Vec2, type Vec3 } from '../core/index.js';
|
|
2
|
+
import { type StripId } from '../material/index.js';
|
|
3
|
+
/** Keep the part of a convex polygon where the linear function `f` is ≤ 0. */
|
|
4
|
+
export declare function clipPoly<P extends Vec2 | Vec3>(poly: readonly P[], f: (p: P) => number): P[];
|
|
5
|
+
/** Drop consecutive duplicate points (clipping through a vertex emits it twice). */
|
|
6
|
+
export declare function dedupe<P extends Vec2 | Vec3>(poly: readonly P[]): P[];
|
|
7
|
+
/** Signed area of a 2D polygon (CCW positive). */
|
|
8
|
+
export declare const area2: (poly: readonly Vec2[]) => number;
|
|
9
|
+
/** Vertical extent of one band (one full V of the strip) in metres, from the house sheet. */
|
|
10
|
+
export declare const stripScale: (strip: StripId) => number;
|
|
11
|
+
export interface FaceOptions {
|
|
12
|
+
/** Convex and planar; either winding (it is turned to face `normal`). */
|
|
13
|
+
readonly points: readonly Vec3[];
|
|
14
|
+
readonly normal: Vec3;
|
|
15
|
+
/** Direction V grows along (up a slope, up a wall); projected into the face plane. */
|
|
16
|
+
readonly up: Vec3;
|
|
17
|
+
/** A point on the line where courses start (eave, wall foot). */
|
|
18
|
+
readonly vOrigin: Vec3;
|
|
19
|
+
readonly color: Vec3 | ((p: Vec3) => Vec3);
|
|
20
|
+
readonly strip: StripId;
|
|
21
|
+
/** false: one polygon, V squeezed over the whole face (far LODs). Default true. */
|
|
22
|
+
readonly banded?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Emit a convex face into `b`, banded at the strip's true scale. Returns triangles added. */
|
|
25
|
+
export declare function emitFace(b: MeshBuilder, o: FaceOptions): number;
|
|
26
|
+
/** Newell's polygon normal (unnormalised): robust for any planar polygon. */
|
|
27
|
+
export declare function newell(poly: readonly Vec3[]): Vec3;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Vec3 } from '../core/index.js';
|
|
2
|
+
import type { SculptEdit } from '../primitives/index.js';
|
|
3
|
+
import type { HeadParams } from './head-params.js';
|
|
4
|
+
/** Chest ellipsoid of the bust (shared with head-bust.ts so the strap hugs it). */
|
|
5
|
+
export declare const chestOf: (cx: number, s: number, b: number) => {
|
|
6
|
+
at: Vec3;
|
|
7
|
+
r: Vec3;
|
|
8
|
+
};
|
|
9
|
+
export declare function armour(p: HeadParams, cx: number, s: number, b: number, nz: number): SculptEdit[];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SculptEdit } from '../primitives/index.js';
|
|
2
|
+
import type { HeadLayout } from './head-layout.js';
|
|
3
|
+
import type { HeadParams } from './head-params.js';
|
|
4
|
+
/** Eyebrows: two capsule segments (inner thick → outer thin) offset off the brow ridge. */
|
|
5
|
+
export declare function browEdits(p: HeadParams, l: HeadLayout): SculptEdit[];
|
|
6
|
+
export declare function beardEdits(p: HeadParams, l: HeadLayout): SculptEdit[];
|