{
  "name": "three-blocks",
  "description": "Three Blocks WebGPU building blocks and devtools runtime for three.js; commands run through npx three-blocks",
  "keywords": [
    "three",
    "threejs",
    "webgpu",
    "graphics",
    "gpu",
    "tsl"
  ],
  "homepage": "https://threejs-blocks.com/docs",
  "bugs": {
    "url": "https://github.com/RenaudRohlinger/three-blocks-monorepo/issues"
  },
  "private": false,
  "license": "PolyForm-Noncommercial-1.0.0",
  "publishConfig": {
    "access": "public"
  },
  "version": "0.14.0",
  "engines": {
    "node": ">=22.12.0"
  },
  "type": "module",
  "main": "./dist/index.cjs",
  "module": "./dist/index.mjs",
  "types": "./dist/index.d.ts",
  "bin": {
    "three-blocks": "./dist/cli/three-blocks.mjs"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/RenaudRohlinger/three-blocks-monorepo.git",
    "directory": "packages/three-blocks"
  },
  "exports": {
    ".": {
      "import": {
        "types": "./dist/index.d.ts",
        "default": "./dist/index.mjs"
      },
      "require": {
        "types": "./dist/index.d.cts",
        "default": "./dist/index.cjs"
      }
    },
    "./msdf-text": {
      "import": {
        "types": "./dist/msdf-text.d.ts",
        "default": "./dist/msdf-text.mjs"
      },
      "require": {
        "types": "./dist/msdf-text.d.cts",
        "default": "./dist/msdf-text.cjs"
      }
    },
    "./surface-sampling": {
      "import": {
        "types": "./dist/surface-sampling.d.ts",
        "default": "./dist/surface-sampling.mjs"
      },
      "require": {
        "types": "./dist/surface-sampling.d.cts",
        "default": "./dist/surface-sampling.cjs"
      }
    },
    "./instance-culling": {
      "import": {
        "types": "./dist/instance-culling.d.ts",
        "default": "./dist/instance-culling.mjs"
      },
      "require": {
        "types": "./dist/instance-culling.d.cts",
        "default": "./dist/instance-culling.cjs"
      }
    },
    "./boids": {
      "import": {
        "types": "./dist/boids.d.ts",
        "default": "./dist/boids.mjs"
      },
      "require": {
        "types": "./dist/boids.d.cts",
        "default": "./dist/boids.cjs"
      }
    },
    "./pbf": {
      "import": {
        "types": "./dist/pbf.d.ts",
        "default": "./dist/pbf.mjs"
      },
      "require": {
        "types": "./dist/pbf.d.cts",
        "default": "./dist/pbf.cjs"
      }
    },
    "./sph": {
      "import": {
        "types": "./dist/sph.d.ts",
        "default": "./dist/sph.mjs"
      },
      "require": {
        "types": "./dist/sph.d.cts",
        "default": "./dist/sph.cjs"
      }
    },
    "./mpm": {
      "import": {
        "types": "./dist/mpm.d.ts",
        "default": "./dist/mpm.mjs"
      },
      "require": {
        "types": "./dist/mpm.d.cts",
        "default": "./dist/mpm.cjs"
      }
    },
    "./sphere-impostors": {
      "import": {
        "types": "./dist/sphere-impostors.d.ts",
        "default": "./dist/sphere-impostors.mjs"
      },
      "require": {
        "types": "./dist/sphere-impostors.d.cts",
        "default": "./dist/sphere-impostors.cjs"
      }
    },
    "./grid-pristine": {
      "import": {
        "types": "./dist/grid-pristine.d.ts",
        "default": "./dist/grid-pristine.mjs"
      },
      "require": {
        "types": "./dist/grid-pristine.d.cts",
        "default": "./dist/grid-pristine.cjs"
      }
    },
    "./core-tsl-effects": {
      "import": {
        "types": "./dist/core-tsl-effects.d.ts",
        "default": "./dist/core-tsl-effects.mjs"
      },
      "require": {
        "types": "./dist/core-tsl-effects.d.cts",
        "default": "./dist/core-tsl-effects.cjs"
      }
    },
    "./transmission": {
      "import": {
        "types": "./dist/transmission.d.ts",
        "default": "./dist/transmission.mjs"
      },
      "require": {
        "types": "./dist/transmission.d.cts",
        "default": "./dist/transmission.cjs"
      }
    },
    "./baked-motion": {
      "import": {
        "types": "./dist/baked-motion.d.ts",
        "default": "./dist/baked-motion.mjs"
      },
      "require": {
        "types": "./dist/baked-motion.d.cts",
        "default": "./dist/baked-motion.cjs"
      }
    },
    "./experimental/object-animation-video": {
      "import": {
        "types": "./dist/experimental/object-animation-video.d.ts",
        "default": "./dist/experimental/object-animation-video.mjs"
      },
      "require": {
        "types": "./dist/experimental/object-animation-video.d.cts",
        "default": "./dist/experimental/object-animation-video.cjs"
      }
    },
    "./experimental/vertex-animation-video": {
      "import": {
        "types": "./dist/experimental/vertex-animation-video.d.ts",
        "default": "./dist/experimental/vertex-animation-video.mjs"
      },
      "require": {
        "types": "./dist/experimental/vertex-animation-video.d.cts",
        "default": "./dist/experimental/vertex-animation-video.cjs"
      }
    },
    "./experimental/active-frame-video": {
      "import": {
        "types": "./dist/experimental/active-frame-video.d.ts",
        "default": "./dist/experimental/active-frame-video.mjs"
      },
      "require": {
        "types": "./dist/experimental/active-frame-video.d.cts",
        "default": "./dist/experimental/active-frame-video.cjs"
      }
    },
    "./gaussian-splats": {
      "import": {
        "types": "./dist/gaussian-splats.d.ts",
        "default": "./dist/gaussian-splats.mjs"
      },
      "require": {
        "types": "./dist/gaussian-splats.d.cts",
        "default": "./dist/gaussian-splats.cjs"
      }
    },
    "./experimental/gpu-interaction": {
      "import": {
        "types": "./dist/experimental/gpu-interaction.d.ts",
        "default": "./dist/experimental/gpu-interaction.mjs"
      },
      "require": {
        "types": "./dist/experimental/gpu-interaction.d.cts",
        "default": "./dist/experimental/gpu-interaction.cjs"
      }
    },
    "./smoke": {
      "import": {
        "types": "./dist/smoke.d.ts",
        "default": "./dist/smoke.mjs"
      },
      "require": {
        "types": "./dist/smoke.d.cts",
        "default": "./dist/smoke.cjs"
      }
    },
    "./water": {
      "import": {
        "types": "./dist/water.d.ts",
        "default": "./dist/water.mjs"
      },
      "require": {
        "types": "./dist/water.d.cts",
        "default": "./dist/water.cjs"
      }
    },
    "./sdf-raymarching": {
      "import": {
        "types": "./dist/sdf-raymarching.d.ts",
        "default": "./dist/sdf-raymarching.mjs"
      },
      "require": {
        "types": "./dist/sdf-raymarching.d.cts",
        "default": "./dist/sdf-raymarching.cjs"
      }
    },
    "./experimental/compute-foundations": {
      "import": {
        "types": "./dist/experimental/compute-foundations.d.ts",
        "default": "./dist/experimental/compute-foundations.mjs"
      },
      "require": {
        "types": "./dist/experimental/compute-foundations.d.cts",
        "default": "./dist/experimental/compute-foundations.cjs"
      }
    },
    "./experimental/runtime-sdf-text": {
      "import": {
        "types": "./dist/experimental/runtime-sdf-text.d.ts",
        "default": "./dist/experimental/runtime-sdf-text.mjs"
      },
      "require": {
        "types": "./dist/experimental/runtime-sdf-text.d.cts",
        "default": "./dist/experimental/runtime-sdf-text.cjs"
      }
    },
    "./experimental/core-tsl-effects": {
      "import": {
        "types": "./dist/experimental/core-tsl-effects.d.ts",
        "default": "./dist/experimental/core-tsl-effects.mjs"
      },
      "require": {
        "types": "./dist/experimental/core-tsl-effects.d.cts",
        "default": "./dist/experimental/core-tsl-effects.cjs"
      }
    },
    "./assets": {
      "import": {
        "types": "./dist/assets/index.d.ts",
        "default": "./dist/assets/index.mjs"
      },
      "require": {
        "types": "./dist/assets/index.d.cts",
        "default": "./dist/assets/index.cjs"
      }
    },
    "./app": {
      "import": {
        "types": "./dist/app/index.d.ts",
        "default": "./dist/app/index.mjs"
      },
      "require": {
        "types": "./dist/app/index.d.cts",
        "default": "./dist/app/index.cjs"
      }
    },
    "./devtools": {
      "import": {
        "types": "./dist/devtools/index.d.ts",
        "development": "./dist/devtools/index.mjs",
        "production": "./dist/devtools/production.mjs",
        "default": "./dist/devtools/index.mjs"
      },
      "require": {
        "types": "./dist/devtools/index.d.cts",
        "development": "./dist/devtools/index.cjs",
        "production": "./dist/devtools/production.cjs",
        "default": "./dist/devtools/index.cjs"
      }
    },
    "./hmr": {
      "import": {
        "types": "./dist/hmr/index.d.ts",
        "default": "./dist/hmr/index.mjs"
      },
      "require": {
        "types": "./dist/hmr/index.d.cts",
        "default": "./dist/hmr/index.cjs"
      }
    },
    "./runtime": {
      "import": {
        "types": "./dist/runtime/index.d.ts",
        "default": "./dist/runtime/index.mjs"
      },
      "require": {
        "types": "./dist/runtime/index.d.cts",
        "default": "./dist/runtime/index.cjs"
      }
    },
    "./shaders": {
      "import": {
        "types": "./dist/shaders/index.d.ts",
        "default": "./dist/shaders/index.mjs"
      },
      "require": {
        "types": "./dist/shaders/index.d.cts",
        "default": "./dist/shaders/index.cjs"
      }
    },
    "./stats": {
      "import": {
        "types": "./dist/stats/index.d.ts",
        "default": "./dist/stats/index.mjs"
      },
      "require": {
        "types": "./dist/stats/index.d.cts",
        "default": "./dist/stats/index.cjs"
      }
    },
    "./text": {
      "import": {
        "types": "./dist/text-runtime/index.d.ts",
        "default": "./dist/text-runtime/index.mjs"
      },
      "require": {
        "types": "./dist/text-runtime/index.d.cts",
        "default": "./dist/text-runtime/index.cjs"
      }
    },
    "./text/main": {
      "import": {
        "types": "./dist/text-main/index.d.ts",
        "default": "./dist/text-main/index.mjs"
      },
      "require": {
        "types": "./dist/text-main/index.d.cts",
        "default": "./dist/text-main/index.cjs"
      }
    },
    "./text/worker": {
      "import": {
        "types": "./dist/text-worker/index.d.ts",
        "default": "./dist/text-worker/index.mjs"
      },
      "require": {
        "types": "./dist/text-worker/index.d.cts",
        "default": "./dist/text-worker/index.cjs"
      }
    },
    "./vite": {
      "import": {
        "types": "./dist/vite/index.d.ts",
        "default": "./dist/vite/index.mjs"
      },
      "require": {
        "types": "./dist/vite/index.d.cts",
        "default": "./dist/vite/index.cjs"
      }
    },
    "./vite/config": {
      "types": "./dist/vite/config.d.ts"
    },
    "./worker": {
      "import": {
        "types": "./dist/worker/index.d.ts",
        "default": "./dist/worker/index.mjs"
      },
      "require": {
        "types": "./dist/worker/index.d.cts",
        "default": "./dist/worker/index.cjs"
      }
    }
  },
  "files": [
    "dist",
    "!dist/**/*.map",
    "api-surface.json",
    "api-surface.schema.json",
    "CHANGELOG.md",
    "LICENSE",
    "NOTICE",
    "THIRD_PARTY_NOTICES.md"
  ],
  "sideEffects": false,
  "scripts": {
    "build": "node scripts/generate-font-factory-sources.mjs --check && node --eval \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsup --config tsup.config.js && node scripts/annotate-dynamic-imports.mjs && node scripts/check-font-factory-payloads.mjs && tsc && tsc -p tsconfig.runtime.json && tsc -p tsconfig.text-entrypoints.json && tsc -p tsconfig.vite.declarations.json && node scripts/stage-package-assets.mjs && node scripts/stage-blender-hub.mjs && node scripts/stage-c4d-hub.mjs && node scripts/generate-cjs-declarations.mjs",
    "dev": "node --eval \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsup --config tsup.config.js --watch",
    "typecheck": "tsc -p tsconfig.lib.json && tsc -p tsconfig.worker.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.runtime.typecheck.json && tsc -p tsconfig.text-entrypoints.typecheck.json && tsc -p tsconfig.vite.json",
    "typecheck:declarations": "node --eval \"require('node:fs').rmSync('.typescript-declarations',{recursive:true,force:true})\" && tsc -p tsconfig.declarations.json --declarationDir .typescript-declarations --outDir .typescript-declarations && node --eval \"require('node:fs').rmSync('.typescript-declarations',{recursive:true,force:true})\"",
    "lint": "eslint \"src/**/*.ts\"",
    "check:tsl-control-flow": "eslint src examples tests scripts --config eslint.tsl-control-flow.config.js",
    "test:types": "tsc -p tsconfig.type-tests.json && tsc -p tsconfig.runtime.typecheck.json && tsc -p tsconfig.vite.json",
    "test:exports": "node scripts/check-export-parity.mjs",
    "test:product-entrypoints": "node scripts/check-product-entrypoints.mjs",
    "check:api-surface": "bun scripts/check-api-surface.mjs",
    "report:api-surface": "bun scripts/check-api-surface.mjs --write-report",
    "check:api-baseline": "node scripts/capture-stable-api-baseline.mjs",
    "check:api-release-baseline": "node scripts/capture-api-release-baseline.mjs",
    "check:api-release-policy": "node scripts/check-api-release-policy.mjs",
    "check:api-consumers": "node scripts/check-api-consumers.mjs",
    "check:api-documentation-imports": "node scripts/check-api-documentation-imports.mjs",
    "check:build-contract": "node scripts/check-build-contract.mjs",
    "baseline:api-surface": "node scripts/capture-stable-api-baseline.mjs --write",
    "baseline:api-release": "node scripts/capture-api-release-baseline.mjs --write",
    "baseline:api-contract": "bun run baseline:api-surface && bun run baseline:api-release",
    "test:api-release-policy": "vitest run tests/api-surface/api-release-policy.test.mjs",
    "test:api-documentation-imports": "vitest run tests/api-surface/api-documentation-imports.test.mjs",
    "test:build-contract": "bun run build && node scripts/check-build-contract.mjs",
    "test:declaration-docs": "bun run build && node scripts/check-declaration-docs.mjs",
    "check:declaration-docs": "node scripts/check-declaration-docs.mjs",
    "generate:font-factory-sources": "node scripts/generate-font-factory-sources.mjs",
    "test:font-factory-sources": "node scripts/generate-font-factory-sources.mjs --check",
    "test:font-factory-payloads": "node scripts/check-font-factory-payloads.mjs",
    "migration:baseline": "node scripts/audit-typescript-migration.mjs --write-baseline",
    "migration:check": "node scripts/audit-typescript-migration.mjs",
    "migration:diagnostics": "node scripts/audit-typescript-migration.mjs --diagnostics",
    "examples:build": "node examples/build-examples.mjs",
    "examples:optimize": "bun run --cwd ../.. examples:optimize",
    "examples:dev": "node examples/build-examples.mjs --watch",
    "examples:verify-runtime": "node examples/verify-gallery-runtime.mjs",
    "af:encode": "node tools/af-encode.mjs",
    "msdf:atlas": "node tools/msdf-atlas.mjs",
    "splat:stream": "bun tools/splat-stream-export.mjs",
    "splat:video": "bun tools/splat-video-export.mjs",
    "splat:video:delivery": "bun tools/splat-video-delivery-experiment.mjs",
    "demo:4dgs-video": "bun tools/demo-4dgs-video.mjs",
    "vav:export": "bun tools/vav-export.mjs",
    "test": "bun run check:tsl-control-flow && vitest run --passWithNoTests",
    "test:text-entrypoints": "bun run build && vitest run tests/text && node scripts/test-text-entrypoints-pack.mjs",
    "test:package-consumers": "bun run build && node scripts/check-build-contract.mjs && node scripts/test-package-consumers.mjs && npx --yes publint@0.3.21 --strict --level warning --pack npm && npx --yes @arethetypeswrong/cli@0.18.5 --pack . --profile node16 --exclude-entrypoints ./vite/config",
    "test:three-version-matrix": "bun run build && node scripts/test-three-version-matrix.mjs",
    "probe:4dgs": "bun scripts/run-4dgs-probe-harness.mjs",
    "probe:4dgs:blender": "python3 tests/GaussianSplatting/probe4d/audit_blender_pipeline.py",
    "probe:4dgs:roundtrip": "bun scripts/run-4dgs-roundtrip.mjs",
    "probe:4dgs:parity": "bun scripts/run-4dgs-parity.mjs",
    "probe:4dgs:view": "bun scripts/run-4dgs-viewer.mjs",
    "test:gaussian-browser": "node scripts/run-gaussian-splatting-browser-harness.mjs",
    "test:gaussian-browser:update": "node scripts/run-gaussian-splatting-browser-harness.mjs --update",
    "test:interaction-browser": "node scripts/run-interaction-browser-harness.mjs",
    "test:fluid-browser": "node scripts/run-fluid-browser-harness.mjs",
    "test:smoke-browser": "node scripts/run-smoke-browser-harness.mjs",
    "test:sphere-impostor-browser": "node scripts/run-sphere-impostor-browser-harness.mjs",
    "test:sphere-impostor-bench": "node scripts/run-sphere-impostor-browser-harness.mjs --case=benchmark --bench",
    "test:compute-rasterizer-wgsl": "bun scripts/validate-compute-sphere-rasterizer-wgsl.mjs",
    "test:compute-rasterizer-browser": "node scripts/run-compute-rasterizer-browser-harness.mjs",
    "test:compute-rasterizer-bench": "node scripts/run-compute-rasterizer-browser-harness.mjs --case=benchmark --bench",
    "test:smoke-profile-matrix": "node scripts/validate-smoke-profile-matrix.mjs",
    "test:interaction-wgsl": "bun scripts/validate-interaction-wgsl.mjs",
    "test:smoke-wgsl": "bun scripts/validate-smoke-material-wgsl.mjs",
    "test:transmission-wgsl": "bun scripts/validate-transmission-wgsl.mjs",
    "test:transmission-browser": "node scripts/run-transmission-browser-harness.mjs",
    "test:transmission-bench": "node scripts/run-transmission-browser-harness.mjs --bench",
    "test:utsbv-wgsl": "bun scripts/validate-baked-motion-wgsl.mjs",
    "test:utsbv-browser-contracts": "vitest run tests/BakedMotion/UTSBVBrowserCertificationUtils.test.js tests/BakedMotion/UTSBVBrowserReportUtils.test.js tests/BakedMotion/UTSBVBrowserRunnerOptions.test.js tests/BakedMotion/DecoderProbe.test.js",
    "test:utsbv-browser": "node scripts/run-baked-motion-browser-harness.mjs",
    "test:utsbv-codec-ladder": "node scripts/run-baked-motion-codec-ladder.mjs",
    "test:utsbv-codec-feasibility": "bun scripts/run-baked-motion-codec-alpha-feasibility.mjs",
    "test:utsbv-tilt-gates": "node scripts/run-baked-motion-tilt-stage-debug.mjs --gate --artifacts-dir=tests/BakedMotion/browser/artifacts/tilt-gates-2k && node scripts/run-baked-motion-tilt-stage-debug.mjs --gate --asset=../../apps/web/public/files/utsbv/tilt.utsbv --artifacts-dir=tests/BakedMotion/browser/artifacts/tilt-gates-768",
    "test:utsbv-tilt-stages": "node scripts/run-baked-motion-tilt-stage-debug.mjs",
    "test:utsbv-gpu-cost": "node scripts/run-baked-motion-gpu-cost.mjs",
    "test:utsbv-jump-latency": "node scripts/run-baked-motion-jump-latency.mjs",
    "test:utsbv-flick": "node scripts/run-baked-motion-flick.mjs",
    "test:utsbv-browser-parity": "node scripts/run-baked-motion-browser-parity.mjs",
    "test:media-decoder-products-browser": "node scripts/run-media-decoder-products-browser-harness.mjs",
    "test:mpm-wgsl": "bun scripts/validate-mpm-wgsl.mjs",
    "test:mpm-browser": "node scripts/run-mpm-browser-harness.mjs",
    "test:mpm-bench": "node scripts/run-mpm-browser-harness.mjs --bench",
    "test:water-wgsl": "bun scripts/validate-water-wgsl.mjs",
    "test:water-browser": "node scripts/run-water-browser-harness.mjs",
    "test:water-surface-v2": "node scripts/run-water-surface-v2-harness.mjs",
    "test:water-sota": "node scripts/run-water-sota-browser-harness.mjs",
    "test:water-sota:update": "node scripts/run-water-sota-browser-harness.mjs --update",
    "test:smoke-sim-wgsl": "bun scripts/validate-smoke-sim-wgsl.mjs",
    "test:sdf-ballpit-browser": "node scripts/run-sdf-ballpit-browser-harness.mjs",
    "test:sdf-ballpit-wgsl": "node scripts/validate-sdf-ballpit-wgsl.mjs",
    "test:sphere-impostor-wgsl": "bun scripts/validate-sphere-impostor-wgsl.mjs",
    "prepublishOnly": "bun run build"
  },
  "devDependencies": {
    "@types/node": "24.13.2",
    "@types/three": "0.186.0",
    "@webgpu/types": "^0.1.51",
    "eslint": "^10.6.0",
    "ffmpeg-static": "^5.2.0",
    "ktx-parse": "^1.1.0",
    "meshoptimizer": "1.2.0",
    "mp4box": "^2.4.1",
    "msdf-bmfont-xml": "npm:@pixi/msdf-bmfont-xml@3.0.0",
    "opentype.js": "^1.3.4",
    "pngjs": "^7.0.0",
    "recast": "^0.23.12",
    "stats-gl": "4.2.3",
    "subset-font": "^2.5.0",
    "three": "0.186.0",
    "three-r185": "npm:three@0.185.1",
    "tsup": "^8.0.0",
    "typescript": "^5.9.3",
    "typescript-eslint": "^8.62.1",
    "vite": "^7.2.2",
    "vitest": "^4.1.8"
  },
  "dependencies": {
    "bidi-js": "^1.0.3",
    "fflate": "^0.8.2",
    "three-mesh-bvh": "^0.9.11",
    "troika-worker-utils": "^0.52.0",
    "webgl-sdf-generator": "^1.1.1"
  },
  "peerDependencies": {
    "stats-gl": ">=4.2.3 <5.0.0",
    "three": ">=0.185.0",
    "vite": ">=5.4.0 <9.0.0"
  },
  "peerDependenciesMeta": {
    "stats-gl": {
      "optional": true
    },
    "vite": {
      "optional": true
    }
  }
}
