@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,62 @@
|
|
|
1
|
+
# Goblin bust — original stylised design
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
A sly, scrawny goblin tinker, read from the 3/4 view by: **huge leaf-shaped ears** wider than its
|
|
5
|
+
shoulders, a **long humped nose**, a **wide toothy grin**, **big amber eyes** under a light brow,
|
|
6
|
+
a few **wiry hair tufts** and warts on a bald dome, and a **draped hood** on narrow shoulders.
|
|
7
|
+
|
|
8
|
+
## Design spec (head units: 1 = chin to crown = 0.19 m, ≈ 0.8 × human)
|
|
9
|
+
| Feature | Value (units) | Metres | Note |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| chin → crown | 1.00 | 0.190 | the `height` param |
|
|
12
|
+
| overall bust L × W × H | — | 0.236 × 0.322 × 0.366 | `real`, ±5 %; width is the ears |
|
|
13
|
+
| cranium width / depth / above eye line | 0.66 / 0.84 / 0.50 | 0.125 / 0.160 / 0.095 | |
|
|
14
|
+
| eyeball radius / spacing | 0.072 / 0.15 | 0.014 / pupils 0.057 apart | eyes 1.4 × human relative size |
|
|
15
|
+
| ears length / width / sweep / lift | 0.62 / 0.30 / 22° / 18° | 0.118 long | two tapered blades + hollow |
|
|
16
|
+
| nose length / bridge / hook | 0.20 / 0.12 / 0.07 | tip ≈ 0.05 past the face | cone from between the eyes |
|
|
17
|
+
| mouth half-width / grin | 0.20 / 0.75 | | corners lifted, teeth rows |
|
|
18
|
+
| neck radius / shoulders | 0.20 / 0.75 | 0.038 / 0.143 | |
|
|
19
|
+
|
|
20
|
+
## Palette (sRGB)
|
|
21
|
+
| Role | Hex |
|
|
22
|
+
|---|---|
|
|
23
|
+
| skin / shade / lips | `#9cb84a` / `#6a8a2c` / `#7a8e36` |
|
|
24
|
+
| eyes: sclera / iris | `#f0e6a0` / `#e0a020` |
|
|
25
|
+
| teeth / mouth | `#e8dcae` / `#3a1010` |
|
|
26
|
+
| hair tufts | `#3a3024` |
|
|
27
|
+
| hood cloth / patch + cord leather | `#6a4a7a` / `#5a3a22` |
|
|
28
|
+
|
|
29
|
+
## Parts the engine needs
|
|
30
|
+
| Part | Pivot | Motion |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `bust` | origin, base on z = 0 | static |
|
|
33
|
+
| `head` | origin | static (skull, neck, ears, hair) |
|
|
34
|
+
| `jaw` | jaw hinge (in front of the ear), opens about +Y | static by default; `head(ctx, { jawSway: 4 })` bakes a sway with `clearOf: ['head']` |
|
|
35
|
+
| `eye_l`, `eye_r` | eyeball centres, gaze +X | static; rotate them to aim |
|
|
36
|
+
|
|
37
|
+
The jaw region is the chin + lower lip (an ellipsoid cut flat at the mouth line), so its seam runs
|
|
38
|
+
along the lips, the marionette lines and under the chin. Its cut faces are painted mouth-dark for
|
|
39
|
+
when it opens; it laps 0.75 cells over the head so no gap shows.
|
|
40
|
+
|
|
41
|
+
## LODs
|
|
42
|
+
Sculpt cell = 2 % / 4.5 % / 14 % of head height. LOD0/1 bake vertex AO across all parts (16/10 rays); LOD2 drops
|
|
43
|
+
warts, wiry tufts and the AO bake, and floors ear thickness at 0.7 cells so ears stay attached.
|
|
44
|
+
|
|
45
|
+
## References (stylised anatomy, not likeness)
|
|
46
|
+
| Topic | Link | Used for |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| Loomis head: eye line at half height, brow/nose/chin thirds | https://finearttutorials.com/guide/loomis-method/ | human eye line 0.5, nose base 0.32, mouth 0.22 |
|
|
49
|
+
| Proportions of the head (ears between brow and nose base, head ≈ 5 eyes wide) | https://artyfactory.com/portraits/pencil-portraits/proportions-of-a-head.html | ear placement, eye size vs head width |
|
|
50
|
+
| Primary → secondary → tertiary forms (block brow/cheek/jaw first, then cut lids and folds) | https://www.creativebloq.com/how-to/how-to-sculpt-and-pose-a-cartoon-head-in-zbrush | the edit order in `head-face.ts` |
|
|
51
|
+
| Orc: widen head and jawline to break human proportion | https://www.creativebloq.com/3d/how-create-orc-zbrush-61411834 | orc jaw width 0.37 vs human 0.22 |
|
|
52
|
+
| Stylised orc head study (silhouette, form language) | https://blenderartists.org/t/orc-head-study-stylized-characters/1655542 | massing check |
|
|
53
|
+
| Stylised hair: large clumps first, hairline → crown, one primary flow direction | https://gamesartist.co.uk/curly-hair-ls/ · https://www.cgchannel.com/2023/03/tutorial-creating-stylized-hairstyles-using-zbrush | `swept` locks in head-hair.ts |
|
|
54
|
+
| Dreams (Media Molecule, Evans, SIGGRAPH 2015): sculptures as ordered SDF edits + smooth-min | https://www.mediamolecule.com/blog/article/siggraph_2015 · slides https://advances.realtimerendering.com/s2015/AlexEvans_SIGGRAPH-2015-sml.pdf | the whole approach |
|
|
55
|
+
|
|
56
|
+
Design is original: no character, logo, name or likeness from any game is copied. "Chunky
|
|
57
|
+
hand-painted stylised fantasy" is the idiom (exaggerated primary forms, generous fillets, flat
|
|
58
|
+
vertex colour with baked AO), not a specific source.
|
|
59
|
+
|
|
60
|
+
## Known gaps
|
|
61
|
+
Teeth sit deep in the grin and read only up close; no earrings or wrinkles; hood is a smooth roll
|
|
62
|
+
with one patch.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Stylised goblin bust — an original design in the chunky hand-painted fantasy idiom: huge leaf
|
|
2
|
+
// ears, long humped nose, wide toothy grin, big amber eyes, a few wiry hair tufts, warts, and a
|
|
3
|
+
// draped hood on narrow shoulders. The `head` kind sculpts it (race preset `goblin`, chin to crown
|
|
4
|
+
// 0.19 m); this file is the spec. Design dossier: recipes/goblin_head/README.md.
|
|
5
|
+
|
|
6
|
+
import { defineAsset, head } from '@developerz.ai/ts23d';
|
|
7
|
+
|
|
8
|
+
export const goblin_head = defineAsset({
|
|
9
|
+
name: 'goblin_head',
|
|
10
|
+
kind: 'character',
|
|
11
|
+
description:
|
|
12
|
+
'Stylised goblin bust: huge pointed ears, long humped nose, toothy grin, amber eyes, hood',
|
|
13
|
+
tags: ['character', 'fantasy', 'goblin', 'bust', 'sculpt'],
|
|
14
|
+
license: 'CC0-1.0',
|
|
15
|
+
sources: ['recipes/goblin_head/README.md (design dossier: proportions, palette, references)'],
|
|
16
|
+
// Design spec, not a real-world one: overall bust size and eye spacing from the dossier.
|
|
17
|
+
real: {
|
|
18
|
+
length: 0.236,
|
|
19
|
+
width: 0.322,
|
|
20
|
+
height: 0.366,
|
|
21
|
+
measures: [
|
|
22
|
+
{
|
|
23
|
+
label: 'eye spacing (pupil to pupil)',
|
|
24
|
+
value: 0.057,
|
|
25
|
+
axis: 'y',
|
|
26
|
+
between: ['eye_l', 'eye_r'],
|
|
27
|
+
source: '0.15 × 2 × 0.19 m',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
// Measured: sculpt cells 2 % / 4.5 % / 14 % of head height (LOD0/1 also bake vertex AO).
|
|
32
|
+
budget: { triangles: [55800, 10900, 1560] },
|
|
33
|
+
build(ctx) {
|
|
34
|
+
head(ctx, { race: 'goblin' });
|
|
35
|
+
},
|
|
36
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Human hero bust — original stylised design
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
A young adventurer, read from the 3/4 view by: **classical proportions pushed slightly heroic**
|
|
5
|
+
(square jaw, strong brow, thick neck), **defined arched eyebrows**, **swept-back hair** in chunky
|
|
6
|
+
tapered two-tone locks over a rounded hairline, a **clipped beard with chin volume and a drooping
|
|
7
|
+
moustache**, clear blue eyes, a **blue tunic** with a standing leather collar, placket and brass
|
|
8
|
+
buttons, and a **red mantle** over the shoulders pinned with a brass brooch.
|
|
9
|
+
|
|
10
|
+
## Design spec (head units: 1 = chin to crown = 0.23 m, adult human)
|
|
11
|
+
| Feature | Value (units) | Metres | Note |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| chin → crown | 1.00 | 0.230 | adult menton–vertex ≈ 0.22–0.24 m |
|
|
14
|
+
| overall bust L × W × H | — | 0.247 × 0.464 × 0.439 | `real`, ±5 % |
|
|
15
|
+
| cranium width / depth | 0.66 / 0.86 | 0.152 / 0.198 | adult head breadth ≈ 0.15 m, length ≈ 0.19–0.20 m |
|
|
16
|
+
| eye line | 0.50 | — | Loomis: half height |
|
|
17
|
+
| eyeball radius / spacing | 0.052 / 0.135 | 0.012 / pupils 0.062 apart | human eyeball ≈ 24 mm; IPD ≈ 62 mm |
|
|
18
|
+
| eye line → nose base | 0.18 | 0.041 | thirds: brow / nose / chin |
|
|
19
|
+
| jaw half-width | 0.22 | 0.051 | bigonial ≈ 0.10 m |
|
|
20
|
+
| ears | round, 0.27 long | 0.062 | between brow and nose base |
|
|
21
|
+
| neck radius | 0.27 | 0.062 | heroic: thicker than average |
|
|
22
|
+
|
|
23
|
+
## Palette (sRGB)
|
|
24
|
+
| Role | Hex |
|
|
25
|
+
|---|---|
|
|
26
|
+
| skin / shade / lips | `#d9a07a` / `#a8644a` / `#b86b5c` |
|
|
27
|
+
| eyes: sclera / iris | `#ece6dc` / `#3d6e9e` |
|
|
28
|
+
| hair + beard (two-tone locks ×1.5) | `#5a3a22` |
|
|
29
|
+
| tunic / mantle / collar, placket / brooch, buttons | `#2e4f8a` / `#7a2420` / `#6b4428` / `#c9a24a` |
|
|
30
|
+
|
|
31
|
+
## Parts the engine needs
|
|
32
|
+
| Part | Pivot | Motion |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `bust` | origin, base on z = 0 | static |
|
|
35
|
+
| `head` | origin | static (skull, neck, ears, hair) |
|
|
36
|
+
| `jaw` | jaw hinge (in front of the ear), opens about +Y | static by default; `head(ctx, { jawSway: 4 })` bakes a sway with `clearOf: ['head']` |
|
|
37
|
+
| `eye_l`, `eye_r` | eyeball centres, gaze +X | static; rotate them to aim |
|
|
38
|
+
|
|
39
|
+
The jaw region is the chin + lower lip (an ellipsoid cut flat at the mouth line), so its seam runs
|
|
40
|
+
along the lips, the marionette lines and under the chin. Its cut faces are painted mouth-dark for
|
|
41
|
+
when it opens; it laps 0.75 cells over the head so no gap shows.
|
|
42
|
+
|
|
43
|
+
## LODs
|
|
44
|
+
Sculpt cell = 2 % / 4.5 % / 14 % of head height. LOD0/1 bake vertex AO across all parts (16/10 rays); LOD2 drops
|
|
45
|
+
warts, wiry tufts and the AO bake, and floors ear thickness at 0.7 cells so ears stay attached.
|
|
46
|
+
|
|
47
|
+
## References (stylised anatomy, not likeness)
|
|
48
|
+
| Topic | Link | Used for |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| Loomis head: eye line at half height, brow/nose/chin thirds | https://finearttutorials.com/guide/loomis-method/ | human eye line 0.5, nose base 0.32, mouth 0.22 |
|
|
51
|
+
| Proportions of the head (ears between brow and nose base, head ≈ 5 eyes wide) | https://artyfactory.com/portraits/pencil-portraits/proportions-of-a-head.html | ear placement, eye size vs head width |
|
|
52
|
+
| Primary → secondary → tertiary forms (block brow/cheek/jaw first, then cut lids and folds) | https://www.creativebloq.com/how-to/how-to-sculpt-and-pose-a-cartoon-head-in-zbrush | the edit order in `head-face.ts` |
|
|
53
|
+
| Orc: widen head and jawline to break human proportion | https://www.creativebloq.com/3d/how-create-orc-zbrush-61411834 | orc jaw width 0.37 vs human 0.22 |
|
|
54
|
+
| Stylised orc head study (silhouette, form language) | https://blenderartists.org/t/orc-head-study-stylized-characters/1655542 | massing check |
|
|
55
|
+
| Stylised hair: large clumps first, hairline → crown, one primary flow direction | https://gamesartist.co.uk/curly-hair-ls/ · https://www.cgchannel.com/2023/03/tutorial-creating-stylized-hairstyles-using-zbrush | `swept` locks in head-hair.ts |
|
|
56
|
+
| Dreams (Media Molecule, Evans, SIGGRAPH 2015): sculptures as ordered SDF edits + smooth-min | https://www.mediamolecule.com/blog/article/siggraph_2015 · slides https://advances.realtimerendering.com/s2015/AlexEvans_SIGGRAPH-2015-sml.pdf | the whole approach |
|
|
57
|
+
|
|
58
|
+
Design is original: no character, logo, name or likeness from any game is copied. "Chunky
|
|
59
|
+
hand-painted stylised fantasy" is the idiom (exaggerated primary forms, generous fillets, flat
|
|
60
|
+
vertex colour with baked AO), not a specific source.
|
|
61
|
+
|
|
62
|
+
## Known gaps
|
|
63
|
+
Hair locks are tapered cone pairs (no strand grooves inside a lock); the beard's clump grooves are
|
|
64
|
+
two shallow cuts; mantle colour edges are soft (vertex colour at 5 mm cells); no ear detail.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Stylised human hero bust — an original design in the chunky hand-painted fantasy idiom:
|
|
2
|
+
// classical proportions (eye line at half height, brow/nose/chin thirds) pushed slightly heroic —
|
|
3
|
+
// square jaw, strong brow — with short swept hair, a short beard and moustache, a blue tunic,
|
|
4
|
+
// leather collar and cloak roll. The `head` kind sculpts it (race preset `human`, chin to crown
|
|
5
|
+
// 0.23 m); this file is the spec. Design dossier: recipes/human_head/README.md.
|
|
6
|
+
|
|
7
|
+
import { defineAsset, head } from '@developerz.ai/ts23d';
|
|
8
|
+
|
|
9
|
+
export const human_head = defineAsset({
|
|
10
|
+
name: 'human_head',
|
|
11
|
+
kind: 'character',
|
|
12
|
+
description:
|
|
13
|
+
'Stylised human hero bust: square jaw, swept hair, short beard, blue tunic and leather cloak roll',
|
|
14
|
+
tags: ['character', 'fantasy', 'human', 'bust', 'sculpt'],
|
|
15
|
+
license: 'CC0-1.0',
|
|
16
|
+
sources: ['recipes/human_head/README.md (design dossier: proportions, palette, references)'],
|
|
17
|
+
// Design spec, not a real-world one: overall bust size and eye spacing from the dossier.
|
|
18
|
+
real: {
|
|
19
|
+
length: 0.247,
|
|
20
|
+
width: 0.464,
|
|
21
|
+
height: 0.439,
|
|
22
|
+
measures: [
|
|
23
|
+
{
|
|
24
|
+
label: 'eye spacing (pupil to pupil)',
|
|
25
|
+
value: 0.0621,
|
|
26
|
+
axis: 'y',
|
|
27
|
+
between: ['eye_l', 'eye_r'],
|
|
28
|
+
source: '0.135 × 2 × 0.23 m — adult interpupillary ≈ 62 mm',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
// Measured: sculpt cells 2 % / 4.5 % / 14 % of head height (LOD0/1 also bake vertex AO).
|
|
33
|
+
budget: { triangles: [64000, 12700, 1720] },
|
|
34
|
+
build(ctx) {
|
|
35
|
+
head(ctx, { race: 'human' });
|
|
36
|
+
},
|
|
37
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Jupiter — Central Pacific No. 60, 4-4-0 "American" (Schenectady 1868)
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
The 1979 operating replica at Golden Spike National Historical Park, in its blue / red / gold
|
|
5
|
+
Golden Spike livery. Signature features: balloon stack, oil headlamp on a bracket, brass bell and
|
|
6
|
+
dome, cowcatcher pilot, wooden cab with arched windows, 4-wheel lead truck, two coupled drivers
|
|
7
|
+
with side rods, an 8-wheel tender with JUPITER lettering. The recipe is a family over the Whyte
|
|
8
|
+
arrangement: frame, boiler and rods are laid out from `'4-4-0'`.
|
|
9
|
+
|
|
10
|
+
## Specs
|
|
11
|
+
| Dimension | Value (m) | Source |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| driver diameter (5 ft 4 in) | 1.626 | https://en.wikipedia.org/wiki/Jupiter_(locomotive) |
|
|
14
|
+
| cylinders | 16 × 24 in | https://en.wikipedia.org/wiki/Jupiter_(locomotive) |
|
|
15
|
+
| track gauge | 1.435 | https://en.wikipedia.org/wiki/Standard-gauge_railway |
|
|
16
|
+
| lead truck wheel diameter | 0.762 | typical for the type; not in the Jupiter infobox |
|
|
17
|
+
| engine + tender length | ≈ 17.4 | estimated from the photo, drivers as ruler |
|
|
18
|
+
| width / height | ≈ 2.8 / 4.6 | estimated from the photo, drivers as ruler |
|
|
19
|
+
|
|
20
|
+
## Photos (by view)
|
|
21
|
+
| View | URL | Notes |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| side, 3/4 | https://en.wikipedia.org/wiki/Jupiter_(locomotive) | replica at Promontory Summit |
|
|
24
|
+
| type overview | https://en.wikipedia.org/wiki/4-4-0 | American type layout |
|
|
25
|
+
| photo match | `docs/reference/loco-photo-match.png` | photo · model · overlay |
|
|
26
|
+
|
|
27
|
+
## Parts the engine needs
|
|
28
|
+
`axle_lead_*`, `axle_driver_*`, `axle_tender_*` (spin), side rods (orbit with the drivers),
|
|
29
|
+
`emitter` smoke at the stack mouth.
|
|
30
|
+
|
|
31
|
+
## Open questions
|
|
32
|
+
Overall length, width and height are photo estimates (±5% gate), not published figures.
|