threenative-asset-mcp 0.14.0 → 0.15.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/README.md CHANGED
@@ -135,6 +135,10 @@ changing its configuration.
135
135
  | itch.io bundles | `itch_list_downloads`, `asset_list_bundle_entries`, `asset_download_bundle_animation` |
136
136
  | Unreal | `asset_import_unreal` |
137
137
  | Unity | `unity_list_packages`, `asset_import_unity` |
138
+ | Mesh optimization | `mesh_optimize` |
139
+
140
+ `mesh_optimize` shrinks a heavy static GLB behind a rendered before/after gate; it never overwrites its
141
+ input and keeps the original when the gate fails. See [docs/tools.md](docs/tools.md#mesh-optimization).
138
142
 
139
143
  Recommended flow: `asset_search_sources` → the returned search tool → the returned files tool → the returned
140
144
  download tool with `acceptLicense: true`. All discovery tools are read-only. Download tools write only inside
@@ -0,0 +1,82 @@
1
+ import { type PreviewResult } from "../rig/preview.js";
2
+ export type MeshOptimizeErrorCode = "MESH_OPTIMIZE_INVALID_INPUT" | "MESH_OPTIMIZE_UNSAFE_PATH" | "MESH_OPTIMIZE_INPUT_TOO_LARGE" | "MESH_OPTIMIZE_INVALID_GLTF" | "MESH_OPTIMIZE_UNSUPPORTED" | "MESH_OPTIMIZE_PREVIEW_UNAVAILABLE" | "MESH_OPTIMIZE_PREVIEW_FAILED" | "MESH_OPTIMIZE_FAILED";
3
+ export declare class MeshOptimizeError extends Error {
4
+ readonly code: MeshOptimizeErrorCode;
5
+ readonly retryable: boolean;
6
+ constructor(code: MeshOptimizeErrorCode, message: string, retryable?: boolean);
7
+ }
8
+ /** Thresholds from the PRD; Phase 3 calibrates them against real scans. */
9
+ export declare const MESH_OPTIMIZE_GATE: Readonly<{
10
+ /** Minimum silhouette intersection-over-union for every rendered angle. */
11
+ iouThreshold: 0.98;
12
+ /** Maximum mean grayscale difference, as a fraction of full scale (0.02 = 2%). */
13
+ grayThreshold: 0.02;
14
+ }>;
15
+ export interface MeshGateView {
16
+ angle: number;
17
+ iou: number;
18
+ grayDifference: number;
19
+ passed: boolean;
20
+ }
21
+ export interface MeshGateResult {
22
+ passed: boolean;
23
+ /** Worst IoU across the rendered angles. */
24
+ iou: number;
25
+ /** Worst mean grayscale difference across the rendered angles, as a fraction of full scale. */
26
+ grayDifference: number;
27
+ views: MeshGateView[];
28
+ }
29
+ export interface GateOptions {
30
+ iouThreshold?: number;
31
+ grayThreshold?: number;
32
+ }
33
+ export interface MeshAttempt {
34
+ error: number;
35
+ triangles: number;
36
+ bytes: number;
37
+ gate: MeshGateResult;
38
+ }
39
+ export interface MeshOptimizeResult {
40
+ kept: "optimized" | "original";
41
+ input: {
42
+ path: string;
43
+ bytes: number;
44
+ sha256: string;
45
+ triangles: number;
46
+ };
47
+ output: {
48
+ path: string;
49
+ bytes: number;
50
+ sha256: string;
51
+ triangles: number;
52
+ } | null;
53
+ attempts: MeshAttempt[];
54
+ gate: MeshGateResult | null;
55
+ previews: {
56
+ before: string;
57
+ after: string;
58
+ } | null;
59
+ maxTextureSize: number;
60
+ }
61
+ export interface OptimizeMeshOptions {
62
+ outputPath?: string;
63
+ maxTextureSize?: number;
64
+ /** Error ladder, as a fraction of mesh radius. */
65
+ errorLadder?: number[];
66
+ angles?: number;
67
+ width?: number;
68
+ height?: number;
69
+ }
70
+ /**
71
+ * Compare two previews of the same asset, angle by angle. A candidate passes only when every
72
+ * view keeps the silhouette and the shaded surface: a triangle count could drop while a carving
73
+ * or a hole silently disappears, and this is the check that refuses that result.
74
+ */
75
+ export declare function comparePreviews(before: PreviewResult, after: PreviewResult, options?: GateOptions): Promise<MeshGateResult>;
76
+ /**
77
+ * Simplify a static GLB while a rendered gate caps the visible change, not the triangle count.
78
+ * The error ladder lets flat areas collapse and detailed areas keep their triangles, so each
79
+ * asset finds its own count. When no candidate passes the gate, nothing is written.
80
+ */
81
+ export declare function optimizeMesh(inputPath: string, options?: OptimizeMeshOptions): Promise<MeshOptimizeResult>;
82
+ //# sourceMappingURL=mesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/optimize/mesh.ts"],"names":[],"mappings":"AAUA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,qBAAqB,GAC7B,6BAA6B,GAC7B,2BAA2B,GAC3B,+BAA+B,GAC/B,4BAA4B,GAC5B,2BAA2B,GAC3B,mCAAmC,GACnC,8BAA8B,GAC9B,sBAAsB,CAAC;AAE3B,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,qBAAqB;aAE3B,SAAS;IAH3B,YACkB,IAAI,EAAE,qBAAqB,EAC3C,OAAO,EAAE,MAAM,EACC,SAAS,UAAQ,EAIlC;CACF;AAED,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB;IAC7B,2EAA2E;;IAE3E,kFAAkF;;EAElF,CAAC;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,+FAA+F;IAC/F,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClF,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAqFD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAuG7B"}
@@ -0,0 +1,287 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { readFile, realpath, rename, unlink, mkdir, writeFile } from "node:fs/promises";
3
+ import { basename, dirname, join, resolve } from "node:path";
4
+ import { Document, ImageUtils, NodeIO } from "@gltf-transform/core";
5
+ import { compressTexture, dedup, prune, simplify, weld } from "@gltf-transform/functions";
6
+ import { MeshoptSimplifier } from "meshoptimizer";
7
+ import sharp from "sharp";
8
+ import { RIG_LIMITS, RigAssetError } from "../rig/inspect.js";
9
+ import { renderPreview } from "../rig/preview.js";
10
+ export class MeshOptimizeError extends Error {
11
+ code;
12
+ retryable;
13
+ constructor(code, message, retryable = false) {
14
+ super(message);
15
+ this.code = code;
16
+ this.retryable = retryable;
17
+ this.name = "MeshOptimizeError";
18
+ }
19
+ }
20
+ /** Thresholds from the PRD; Phase 3 calibrates them against real scans. */
21
+ export const MESH_OPTIMIZE_GATE = Object.freeze({
22
+ /** Minimum silhouette intersection-over-union for every rendered angle. */
23
+ iouThreshold: 0.98,
24
+ /** Maximum mean grayscale difference, as a fraction of full scale (0.02 = 2%). */
25
+ grayThreshold: 0.02,
26
+ });
27
+ const DEFAULT_ERROR_LADDER = Object.freeze([0.005, 0.002, 0.0005]);
28
+ const DEFAULT_MAX_TEXTURE_SIZE = 2_048;
29
+ /** Camera distance, in largest-model-dimension units, that keeps a wide static mesh inside the frame. */
30
+ const PREVIEW_FIT_MARGIN = 2.2;
31
+ const PREVIEW_TIMEOUT_MS = 180_000;
32
+ const PREVIEW_SIZE = 384;
33
+ /** glTF primitive mode 4: TRIANGLES. */
34
+ const TRIANGLES = 4;
35
+ /** Scene background hardcoded in `src/rig/preview.ts`. */
36
+ const PREVIEW_BACKGROUND = [32, 40, 48];
37
+ /** Sum of absolute RGB differences above which a pixel belongs to the model, not the background. */
38
+ const MASK_DISTANCE = 24;
39
+ const io = new NodeIO();
40
+ let simplifierReady;
41
+ async function ensureSimplifierReady() {
42
+ simplifierReady ??= MeshoptSimplifier.ready;
43
+ await simplifierReady;
44
+ if (!MeshoptSimplifier.supported) {
45
+ throw new MeshOptimizeError("MESH_OPTIMIZE_FAILED", "The meshopt simplifier is not supported by this runtime.");
46
+ }
47
+ }
48
+ async function rawImage(png) {
49
+ const { data, info } = await sharp(Buffer.from(png))
50
+ .ensureAlpha()
51
+ .raw()
52
+ .toBuffer({ resolveWithObject: true });
53
+ return { data, width: info.width, height: info.height, channels: info.channels };
54
+ }
55
+ function foreground(raw, pixel) {
56
+ const offset = pixel * raw.channels;
57
+ const red = raw.data[offset] ?? 0;
58
+ const green = raw.data[offset + 1] ?? 0;
59
+ const blue = raw.data[offset + 2] ?? 0;
60
+ return (Math.abs(red - PREVIEW_BACKGROUND[0]) +
61
+ Math.abs(green - PREVIEW_BACKGROUND[1]) +
62
+ Math.abs(blue - PREVIEW_BACKGROUND[2]) >
63
+ MASK_DISTANCE);
64
+ }
65
+ function luminance(raw, pixel) {
66
+ const offset = pixel * raw.channels;
67
+ return (0.2126 * (raw.data[offset] ?? 0) +
68
+ 0.7152 * (raw.data[offset + 1] ?? 0) +
69
+ 0.0722 * (raw.data[offset + 2] ?? 0));
70
+ }
71
+ /**
72
+ * Compare two previews of the same asset, angle by angle. A candidate passes only when every
73
+ * view keeps the silhouette and the shaded surface: a triangle count could drop while a carving
74
+ * or a hole silently disappears, and this is the check that refuses that result.
75
+ */
76
+ export async function comparePreviews(before, after, options = {}) {
77
+ if (before.images.length !== after.images.length) {
78
+ throw new MeshOptimizeError("MESH_OPTIMIZE_FAILED", "The before and after previews rendered a different number of views.");
79
+ }
80
+ const iouThreshold = options.iouThreshold ?? MESH_OPTIMIZE_GATE.iouThreshold;
81
+ const grayThreshold = options.grayThreshold ?? MESH_OPTIMIZE_GATE.grayThreshold;
82
+ const views = [];
83
+ for (let index = 0; index < before.images.length; index += 1) {
84
+ const beforeImage = await rawImage(before.images[index].png);
85
+ const afterImage = await rawImage(after.images[index].png);
86
+ if (beforeImage.width !== afterImage.width || beforeImage.height !== afterImage.height) {
87
+ throw new MeshOptimizeError("MESH_OPTIMIZE_FAILED", "The before and after previews rendered at different sizes.");
88
+ }
89
+ const pixels = beforeImage.width * beforeImage.height;
90
+ let intersection = 0;
91
+ let union = 0;
92
+ let grayTotal = 0;
93
+ let grayCount = 0;
94
+ for (let pixel = 0; pixel < pixels; pixel += 1) {
95
+ const inBefore = foreground(beforeImage, pixel);
96
+ const inAfter = foreground(afterImage, pixel);
97
+ if (inBefore && inAfter)
98
+ intersection += 1;
99
+ if (inBefore || inAfter) {
100
+ union += 1;
101
+ grayTotal += Math.abs(luminance(beforeImage, pixel) - luminance(afterImage, pixel));
102
+ grayCount += 1;
103
+ }
104
+ }
105
+ const iou = union === 0 ? 1 : intersection / union;
106
+ const grayDifference = grayCount === 0 ? 0 : grayTotal / grayCount / 255;
107
+ views.push({
108
+ angle: before.images[index].angle,
109
+ iou,
110
+ grayDifference,
111
+ passed: iou >= iouThreshold && grayDifference <= grayThreshold,
112
+ });
113
+ }
114
+ return {
115
+ passed: views.every((view) => view.passed),
116
+ iou: Math.min(...views.map((view) => view.iou)),
117
+ grayDifference: Math.max(...views.map((view) => view.grayDifference)),
118
+ views,
119
+ };
120
+ }
121
+ function countTriangles(document) {
122
+ let triangles = 0;
123
+ for (const mesh of document.getRoot().listMeshes()) {
124
+ for (const primitive of mesh.listPrimitives()) {
125
+ if (primitive.getMode() !== TRIANGLES)
126
+ continue;
127
+ const count = primitive.getIndices()?.getCount() ?? primitive.getAttribute("POSITION")?.getCount() ?? 0;
128
+ triangles += Math.floor(count / 3);
129
+ }
130
+ }
131
+ return triangles;
132
+ }
133
+ function assertSupported(document) {
134
+ if (document.getRoot().listSkins().length > 0) {
135
+ throw new MeshOptimizeError("MESH_OPTIMIZE_UNSUPPORTED", "The mesh has a skin; skinned meshes are out of scope for mesh_optimize.");
136
+ }
137
+ if (document
138
+ .getRoot()
139
+ .listMeshes()
140
+ .some((mesh) => mesh.listPrimitives().some((primitive) => primitive.listTargets().length > 0))) {
141
+ throw new MeshOptimizeError("MESH_OPTIMIZE_UNSUPPORTED", "The mesh has morph targets; morph-target meshes are out of scope for mesh_optimize.");
142
+ }
143
+ }
144
+ async function shrinkTextures(document, maxTextureSize) {
145
+ for (const texture of document.getRoot().listTextures()) {
146
+ const image = texture.getImage();
147
+ if (!image)
148
+ continue;
149
+ const size = ImageUtils.getSize(image, texture.getMimeType());
150
+ if (!size || (size[0] <= maxTextureSize && size[1] <= maxTextureSize))
151
+ continue;
152
+ await compressTexture(texture, { encoder: sharp, resize: [maxTextureSize, maxTextureSize] });
153
+ }
154
+ }
155
+ async function preview(modelBytes, angles, width, height) {
156
+ try {
157
+ return await renderPreview(modelBytes, {
158
+ times: [0],
159
+ angles,
160
+ width,
161
+ height,
162
+ fitMargin: PREVIEW_FIT_MARGIN,
163
+ timeoutMs: PREVIEW_TIMEOUT_MS,
164
+ });
165
+ }
166
+ catch (error) {
167
+ if (error instanceof RigAssetError) {
168
+ const code = error.code === "RIG_PREVIEW_UNAVAILABLE"
169
+ ? "MESH_OPTIMIZE_PREVIEW_UNAVAILABLE"
170
+ : "MESH_OPTIMIZE_PREVIEW_FAILED";
171
+ throw new MeshOptimizeError(code, error.message);
172
+ }
173
+ throw error;
174
+ }
175
+ }
176
+ async function canonicalPath(path) {
177
+ const existing = await realpath(path).catch(() => null);
178
+ if (existing)
179
+ return existing;
180
+ const parent = await realpath(dirname(path)).catch(() => dirname(path));
181
+ return join(parent, basename(path));
182
+ }
183
+ async function writeAtomically(path, bytes) {
184
+ await mkdir(dirname(path), { recursive: true });
185
+ const temporary = `${path}.part-${process.pid}-${randomUUID()}`;
186
+ try {
187
+ await writeFile(temporary, bytes);
188
+ await rename(temporary, path);
189
+ }
190
+ finally {
191
+ await unlink(temporary).catch(() => undefined);
192
+ }
193
+ }
194
+ /**
195
+ * Simplify a static GLB while a rendered gate caps the visible change, not the triangle count.
196
+ * The error ladder lets flat areas collapse and detailed areas keep their triangles, so each
197
+ * asset finds its own count. When no candidate passes the gate, nothing is written.
198
+ */
199
+ export async function optimizeMesh(inputPath, options = {}) {
200
+ const resolved = await realpath(inputPath).catch(() => null);
201
+ if (!resolved) {
202
+ throw new MeshOptimizeError("MESH_OPTIMIZE_INVALID_INPUT", `No readable file at ${inputPath}.`);
203
+ }
204
+ if (!resolved.toLowerCase().endsWith(".glb")) {
205
+ throw new MeshOptimizeError("MESH_OPTIMIZE_INVALID_INPUT", "The input must be a .glb file.");
206
+ }
207
+ const maxTextureSize = options.maxTextureSize ?? DEFAULT_MAX_TEXTURE_SIZE;
208
+ const errorLadder = options.errorLadder ?? [...DEFAULT_ERROR_LADDER];
209
+ const angles = options.angles ?? 6;
210
+ const width = options.width ?? PREVIEW_SIZE;
211
+ const height = options.height ?? PREVIEW_SIZE;
212
+ const outputPath = resolve(options.outputPath ?? `${resolved.slice(0, -4)}.optimized.glb`);
213
+ if (!outputPath.toLowerCase().endsWith(".glb")) {
214
+ throw new MeshOptimizeError("MESH_OPTIMIZE_INVALID_INPUT", "The output must be a .glb path.");
215
+ }
216
+ if ((await canonicalPath(outputPath)) === resolved) {
217
+ throw new MeshOptimizeError("MESH_OPTIMIZE_UNSAFE_PATH", "The output path is the input file; mesh_optimize never overwrites its input.");
218
+ }
219
+ const inputBytes = new Uint8Array(await readFile(resolved));
220
+ if (inputBytes.byteLength > RIG_LIMITS.maxGlbBytes) {
221
+ throw new MeshOptimizeError("MESH_OPTIMIZE_INPUT_TOO_LARGE", `${inputPath} is over the GLB byte limit.`);
222
+ }
223
+ const inputSha256 = createHash("sha256").update(inputBytes).digest("hex");
224
+ let source;
225
+ try {
226
+ source = await io.readBinary(inputBytes);
227
+ }
228
+ catch {
229
+ throw new MeshOptimizeError("MESH_OPTIMIZE_INVALID_GLTF", `${inputPath} is not a readable GLB asset.`);
230
+ }
231
+ assertSupported(source);
232
+ const inputTriangles = countTriangles(source);
233
+ const input = {
234
+ path: resolved,
235
+ bytes: inputBytes.byteLength,
236
+ sha256: inputSha256,
237
+ triangles: inputTriangles,
238
+ };
239
+ await ensureSimplifierReady();
240
+ const before = await preview(inputBytes, angles, width, height);
241
+ const attempts = [];
242
+ for (const error of errorLadder) {
243
+ const document = await io.readBinary(inputBytes);
244
+ await document.transform(dedup(), weld({}), simplify({ simplifier: MeshoptSimplifier, ratio: 0, error }), prune());
245
+ await shrinkTextures(document, maxTextureSize);
246
+ const bytes = await io.writeBinary(document);
247
+ const after = await preview(bytes, angles, width, height);
248
+ const gate = await comparePreviews(before, after);
249
+ attempts.push({
250
+ error,
251
+ triangles: countTriangles(document),
252
+ bytes: bytes.byteLength,
253
+ gate,
254
+ });
255
+ if (!gate.passed)
256
+ continue;
257
+ await writeAtomically(outputPath, bytes);
258
+ const beforePath = `${outputPath.slice(0, -4)}.before.png`;
259
+ const afterPath = `${outputPath.slice(0, -4)}.after.png`;
260
+ await writeAtomically(beforePath, before.contactSheet);
261
+ await writeAtomically(afterPath, after.contactSheet);
262
+ return {
263
+ kept: "optimized",
264
+ input,
265
+ output: {
266
+ path: outputPath,
267
+ bytes: bytes.byteLength,
268
+ sha256: createHash("sha256").update(bytes).digest("hex"),
269
+ triangles: countTriangles(document),
270
+ },
271
+ attempts,
272
+ gate,
273
+ previews: { before: beforePath, after: afterPath },
274
+ maxTextureSize,
275
+ };
276
+ }
277
+ return {
278
+ kept: "original",
279
+ input,
280
+ output: null,
281
+ attempts,
282
+ gate: null,
283
+ previews: null,
284
+ maxTextureSize,
285
+ };
286
+ }
287
+ //# sourceMappingURL=mesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/optimize/mesh.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface PreviewOptions {
22
22
  angles?: number;
23
23
  width?: number;
24
24
  height?: number;
25
+ /** Camera distance as a multiple of the model's largest dimension. Default: 1.7. */
26
+ fitMargin?: number;
25
27
  timeoutMs?: number;
26
28
  }
27
29
  export interface PreviewImage {
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/rig/preview.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yFAAyF;IACzF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAChF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAuKD,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA2JxB"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/rig/preview.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yFAAyF;IACzF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAChF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AA6KD,wBAAgB,gBAAgB,IAAI,OAAO,CAM1C;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA2JxB"}
@@ -21,6 +21,7 @@ function pageHtml(options) {
21
21
  angles: options.angles ?? 3,
22
22
  width: options.width ?? 384,
23
23
  height: options.height ?? 384,
24
+ fitMargin: options.fitMargin ?? 1.7,
24
25
  }).replace(/</g, "\\u003c");
25
26
  return `<!doctype html><html><body>
26
27
  <script type="importmap">{"imports":{"three":"/three.module.js","three/addons/":"/jsm/"}}</script>
@@ -46,6 +47,11 @@ try {
46
47
  const box = new THREE.Box3().setFromObject(model);
47
48
  const size = box.getSize(new THREE.Vector3()); const center = box.getCenter(new THREE.Vector3());
48
49
  const radius = Math.max(size.x,size.y,size.z) || 1;
50
+ // Scans arrive in millimetres, props in metres. A fixed near/far of 0.01/1000 clipped a chair
51
+ // whose framed camera distance was ~2100 units, so derive the depth range from the bounds.
52
+ camera.near = Math.max(radius * 0.001, 1e-6);
53
+ camera.far = radius * 100;
54
+ camera.updateProjectionMatrix();
49
55
  const mixer = new THREE.AnimationMixer(model);
50
56
  const clips = gltf.animations ?? [];
51
57
  const clip = options.clipName !== null ? clips.find(c => c.name === options.clipName) : clips[0];
@@ -128,7 +134,7 @@ try {
128
134
  camera.position.set(focusCenter.x + Math.sin(azimuth)*focusDistance, focusCenter.y + focusDistance*0.2, focusCenter.z + Math.cos(azimuth)*focusDistance);
129
135
  camera.lookAt(focusCenter);
130
136
  } else {
131
- const distance = radius * 1.7;
137
+ const distance = radius * options.fitMargin;
132
138
  camera.position.set(center.x + Math.sin(azimuth)*distance, center.y + size.y*0.12, center.z + Math.cos(azimuth)*distance);
133
139
  camera.lookAt(center);
134
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/rig/preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/rig/preview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAoB1E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgG5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyFrD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,6FAA6F;IAC7F,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAUR,GACA,SAAS,CAs6BX;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,GAAE,SAA2B,GAAG,SAAS,CAY9E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAoB1E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgG5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA8FrD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,6FAA6F;IAC7F,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAUR,GACA,SAAS,CAw7BX;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,GAAE,SAA2B,GAAG,SAAS,CAY9E"}
package/dist/server.js CHANGED
@@ -37,6 +37,7 @@ import { UnityListPackagesInputSchema, UnityListPackagesOutputSchema, createUnit
37
37
  import { AssetImportUnrealInputSchema, createAssetImportUnrealHandler, createFabImportAssetHandler, createFabListOwnedHandler, FabImportAssetInputSchema, FabListOwnedInputSchema, FabListOwnedOutputSchema, FabImportOutputSchema, ImportUnrealOutputSchema, } from "./tools/import-unreal.js";
38
38
  import { CreatureGuideInputSchema, CreatureGuideOutputSchema, CreatureStatusInputSchema, CreatureStatusOutputSchema, createCreatureGuideHandler, createCreatureStatusHandler, } from "./tools/creature.js";
39
39
  import { AssetAutoRigInputSchema, AssetAutoRigOutputSchema, AssetInspectRigInputSchema, AssetInspectRigOutputSchema, AssetPreviewAnimationInputSchema, AssetPreviewAnimationOutputSchema, AssetRetargetAnimationsInputSchema, AssetRetargetAnimationsOutputSchema, createAssetAutoRigHandler, createAssetInspectRigHandler, createAssetPreviewAnimationHandler, createAssetRetargetAnimationsHandler, } from "./tools/rig.js";
40
+ import { createMeshOptimizeHandler, MeshOptimizeInputSchema, MeshOptimizeOutputSchema, } from "./tools/mesh-optimize.js";
40
41
  function packageVersion() {
41
42
  const manifest = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
42
43
  if (typeof manifest.version !== "string") {
@@ -192,6 +193,18 @@ export function createAssetServer(clients = {
192
193
  openWorldHint: true,
193
194
  },
194
195
  }, createAssetRetargetAnimationsHandler());
196
+ server.registerTool("mesh_optimize", {
197
+ title: "Shrink a static mesh without a visible change",
198
+ description: "Simplify a heavy static GLB with meshoptimizer under a rendered before/after gate: each error-ladder candidate must keep its silhouette (IoU >= 0.98) and mean grayscale difference (<= 2%) from six angles, or the original is kept and nothing is written. Resizes textures above maxTextureSize, never compresses the output, never overwrites the input, and refuses skinned or morph-target meshes.",
199
+ inputSchema: MeshOptimizeInputSchema,
200
+ outputSchema: MeshOptimizeOutputSchema,
201
+ annotations: {
202
+ readOnlyHint: false,
203
+ destructiveHint: false,
204
+ idempotentHint: true,
205
+ openWorldHint: false,
206
+ },
207
+ }, createMeshOptimizeHandler());
195
208
  server.registerTool("fab_search_assets", {
196
209
  title: "Search Fab assets",
197
210
  description: "Search public Fab marketplace listings. Free assets are returned by default. Results carry no file formats and there is no format filter: call fab_get_asset for a listing's formats.",
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { z } from "zod";
2
+ export declare const MeshOptimizeInputSchema: z.ZodObject<{
3
+ path: z.ZodString;
4
+ outputPath: z.ZodOptional<z.ZodString>;
5
+ maxTextureSize: z.ZodDefault<z.ZodNumber>;
6
+ }, z.core.$strip>;
7
+ export declare const MeshOptimizeOutputSchema: z.ZodObject<{
8
+ kept: z.ZodEnum<{
9
+ optimized: "optimized";
10
+ original: "original";
11
+ }>;
12
+ input: z.ZodObject<{
13
+ path: z.ZodString;
14
+ bytes: z.ZodNumber;
15
+ sha256: z.ZodString;
16
+ triangles: z.ZodNumber;
17
+ }, z.core.$strip>;
18
+ output: z.ZodNullable<z.ZodObject<{
19
+ path: z.ZodString;
20
+ bytes: z.ZodNumber;
21
+ sha256: z.ZodString;
22
+ triangles: z.ZodNumber;
23
+ }, z.core.$strip>>;
24
+ attempts: z.ZodArray<z.ZodObject<{
25
+ error: z.ZodNumber;
26
+ triangles: z.ZodNumber;
27
+ bytes: z.ZodNumber;
28
+ gate: z.ZodObject<{
29
+ passed: z.ZodBoolean;
30
+ iou: z.ZodNumber;
31
+ grayDifference: z.ZodNumber;
32
+ views: z.ZodArray<z.ZodObject<{
33
+ angle: z.ZodNumber;
34
+ iou: z.ZodNumber;
35
+ grayDifference: z.ZodNumber;
36
+ passed: z.ZodBoolean;
37
+ }, z.core.$strip>>;
38
+ }, z.core.$strip>;
39
+ }, z.core.$strip>>;
40
+ gate: z.ZodNullable<z.ZodObject<{
41
+ passed: z.ZodBoolean;
42
+ iou: z.ZodNumber;
43
+ grayDifference: z.ZodNumber;
44
+ views: z.ZodArray<z.ZodObject<{
45
+ angle: z.ZodNumber;
46
+ iou: z.ZodNumber;
47
+ grayDifference: z.ZodNumber;
48
+ passed: z.ZodBoolean;
49
+ }, z.core.$strip>>;
50
+ }, z.core.$strip>>;
51
+ previews: z.ZodNullable<z.ZodObject<{
52
+ before: z.ZodString;
53
+ after: z.ZodString;
54
+ }, z.core.$strip>>;
55
+ maxTextureSize: z.ZodNumber;
56
+ }, z.core.$strip>;
57
+ export declare function createMeshOptimizeHandler(): (raw: z.input<typeof MeshOptimizeInputSchema>) => Promise<{
58
+ isError?: never;
59
+ content: {
60
+ type: "text";
61
+ text: string;
62
+ }[];
63
+ structuredContent: {
64
+ kept: "optimized" | "original";
65
+ input: {
66
+ path: string;
67
+ bytes: number;
68
+ sha256: string;
69
+ triangles: number;
70
+ };
71
+ output: {
72
+ path: string;
73
+ bytes: number;
74
+ sha256: string;
75
+ triangles: number;
76
+ } | null;
77
+ attempts: {
78
+ error: number;
79
+ triangles: number;
80
+ bytes: number;
81
+ gate: {
82
+ passed: boolean;
83
+ iou: number;
84
+ grayDifference: number;
85
+ views: {
86
+ angle: number;
87
+ iou: number;
88
+ grayDifference: number;
89
+ passed: boolean;
90
+ }[];
91
+ };
92
+ }[];
93
+ gate: {
94
+ passed: boolean;
95
+ iou: number;
96
+ grayDifference: number;
97
+ views: {
98
+ angle: number;
99
+ iou: number;
100
+ grayDifference: number;
101
+ passed: boolean;
102
+ }[];
103
+ } | null;
104
+ previews: {
105
+ before: string;
106
+ after: string;
107
+ } | null;
108
+ maxTextureSize: number;
109
+ };
110
+ } | {
111
+ structuredContent?: never;
112
+ isError: true;
113
+ content: {
114
+ type: "text";
115
+ text: string;
116
+ }[];
117
+ }>;
118
+ //# sourceMappingURL=mesh-optimize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-optimize.d.ts","sourceRoot":"","sources":["../../src/tools/mesh-optimize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,eAAO,MAAM,uBAAuB;;;;iBAYlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBnC,CAAC;AAEH,wBAAgB,yBAAyB,UACpB,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC;;;cAUlC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBN,MAAM;;;GAI/B"}
@@ -0,0 +1,83 @@
1
+ import { z } from "zod";
2
+ import { optimizeMesh, MeshOptimizeError } from "../optimize/mesh.js";
3
+ const PathSchema = z.string().min(1).max(4_096);
4
+ const GateViewSchema = z.object({
5
+ angle: z.number().int().nonnegative(),
6
+ iou: z.number().min(0).max(1),
7
+ grayDifference: z.number().min(0).max(1),
8
+ passed: z.boolean(),
9
+ });
10
+ const GateSchema = z.object({
11
+ passed: z.boolean(),
12
+ iou: z.number().min(0).max(1),
13
+ grayDifference: z.number().min(0).max(1),
14
+ views: z.array(GateViewSchema).min(1).max(12),
15
+ });
16
+ const MeshFileSchema = z.object({
17
+ path: z.string().max(4_096),
18
+ bytes: z.number().int().nonnegative(),
19
+ sha256: z.string().regex(/^[0-9a-f]{64}$/),
20
+ triangles: z.number().int().nonnegative(),
21
+ });
22
+ export const MeshOptimizeInputSchema = z.object({
23
+ path: PathSchema.describe("Absolute path to a static GLB (no skin or morph targets)."),
24
+ outputPath: PathSchema.optional().describe("Output .glb path. Defaults to <name>.optimized.glb next to the input; never the input itself."),
25
+ maxTextureSize: z
26
+ .number()
27
+ .int()
28
+ .min(64)
29
+ .max(8_192)
30
+ .default(2_048)
31
+ .describe("Longest texture side kept; larger textures are downscaled in their own format."),
32
+ });
33
+ export const MeshOptimizeOutputSchema = z.object({
34
+ kept: z.enum(["optimized", "original"]),
35
+ input: MeshFileSchema,
36
+ output: MeshFileSchema.nullable(),
37
+ attempts: z
38
+ .array(z.object({
39
+ error: z.number().positive(),
40
+ triangles: z.number().int().nonnegative(),
41
+ bytes: z.number().int().nonnegative(),
42
+ gate: GateSchema,
43
+ }))
44
+ .max(8),
45
+ gate: GateSchema.nullable(),
46
+ previews: z.object({ before: z.string().max(4_096), after: z.string().max(4_096) }).nullable(),
47
+ maxTextureSize: z.number().int().positive(),
48
+ });
49
+ export function createMeshOptimizeHandler() {
50
+ return async (raw) => {
51
+ try {
52
+ const input = MeshOptimizeInputSchema.parse(raw);
53
+ const output = MeshOptimizeOutputSchema.parse(await optimizeMesh(input.path, {
54
+ ...(input.outputPath ? { outputPath: input.outputPath } : {}),
55
+ maxTextureSize: input.maxTextureSize,
56
+ }));
57
+ return {
58
+ content: [{ type: "text", text: JSON.stringify(output) }],
59
+ structuredContent: output,
60
+ };
61
+ }
62
+ catch (error) {
63
+ const safe = error instanceof MeshOptimizeError
64
+ ? { code: error.code, message: error.message, retryable: error.retryable }
65
+ : error instanceof z.ZodError
66
+ ? {
67
+ code: "MESH_OPTIMIZE_INVALID_INPUT",
68
+ message: "The mesh optimization request is invalid.",
69
+ retryable: false,
70
+ }
71
+ : {
72
+ code: "MESH_OPTIMIZE_INTERNAL",
73
+ message: "The asset MCP could not optimize the mesh.",
74
+ retryable: false,
75
+ };
76
+ return {
77
+ isError: true,
78
+ content: [{ type: "text", text: JSON.stringify(safe) }],
79
+ };
80
+ }
81
+ };
82
+ }
83
+ //# sourceMappingURL=mesh-optimize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-optimize.js","sourceRoot":"","sources":["../../src/tools/mesh-optimize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "threenative-asset-mcp",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "MCP server for discovering and safely downloading 3D and game-audio assets from curated public sources.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -77,6 +77,7 @@
77
77
  "@threenative/playtest": "0.3.2",
78
78
  "@zip.js/zip.js": "2.8.34",
79
79
  "ag-psd": "31.0.3",
80
+ "meshoptimizer": "1.1.1",
80
81
  "playwright": "1.62.0",
81
82
  "sharp": "0.35.4",
82
83
  "three": "0.185.1",