@vcad/mcp 0.9.4-main.42 → 0.9.4-main.44

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
@@ -6,4 +6,4 @@ vcad's MCP server as a self-contained bundle (server + BRep kernel WASM).
6
6
  { "mcpServers": { "vcad": { "command": "npx", "args": ["-y", "@vcad/mcp"] } } }
7
7
  ```
8
8
 
9
- Built from 5288a75b111969d99b834a3df1c88e017376b921 at 2026-07-26T14:46:06.764Z. Source: https://github.com/ecto/vcad
9
+ Built from efd602e1a47295ebf6cb9eceb252bd6e63962be5 at 2026-07-26T15:31:54.644Z. Source: https://github.com/ecto/vcad
package/index.mjs CHANGED
@@ -111,6 +111,7 @@ __export(vcad_kernel_wasm_exports, {
111
111
  documentParameterGradient: () => documentParameterGradient,
112
112
  documentToLoon: () => documentToLoon,
113
113
  documentToLoonChecked: () => documentToLoonChecked,
114
+ documentToStepBuffer: () => documentToStepBuffer,
114
115
  drawingSheetToPdf: () => drawingSheetToPdf,
115
116
  ecadAirgapFluxDensity: () => ecadAirgapFluxDensity,
116
117
  ecadAirgapSolve: () => ecadAirgapSolve,
@@ -179,6 +180,7 @@ __export(vcad_kernel_wasm_exports, {
179
180
  exprParse: () => exprParse,
180
181
  feaAnalyzeMesh: () => feaAnalyzeMesh,
181
182
  feaCheckBeam: () => feaCheckBeam,
183
+ flattenSolidToSheetMetal: () => flattenSolidToSheetMetal,
182
184
  generate3mf: () => generate3mf,
183
185
  generate3mfWithGcode: () => generate3mfWithGcode,
184
186
  generateGcode: () => generateGcode,
@@ -1126,6 +1128,17 @@ function documentToLoonChecked(doc_json) {
1126
1128
  }
1127
1129
  return takeFromExternrefTable0(ret[0]);
1128
1130
  }
1131
+ function documentToStepBuffer(doc_json) {
1132
+ const ptr0 = passStringToWasm0(doc_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1133
+ const len0 = WASM_VECTOR_LEN;
1134
+ const ret = wasm.documentToStepBuffer(ptr0, len0);
1135
+ if (ret[3]) {
1136
+ throw takeFromExternrefTable0(ret[2]);
1137
+ }
1138
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
1139
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1140
+ return v2;
1141
+ }
1129
1142
  function drawingSheetToPdf(spec_json) {
1130
1143
  const ptr0 = passStringToWasm0(spec_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1131
1144
  const len0 = WASM_VECTOR_LEN;
@@ -1947,6 +1960,20 @@ function feaCheckBeam(case_json) {
1947
1960
  }
1948
1961
  return takeFromExternrefTable0(ret[0]);
1949
1962
  }
1963
+ function flattenSolidToSheetMetal(request_json) {
1964
+ let deferred2_0;
1965
+ let deferred2_1;
1966
+ try {
1967
+ const ptr0 = passStringToWasm0(request_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1968
+ const len0 = WASM_VECTOR_LEN;
1969
+ const ret = wasm.flattenSolidToSheetMetal(ptr0, len0);
1970
+ deferred2_0 = ret[0];
1971
+ deferred2_1 = ret[1];
1972
+ return getStringFromWasm0(ret[0], ret[1]);
1973
+ } finally {
1974
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1975
+ }
1976
+ }
1950
1977
  function generate3mf(name, vertices, indices, settings_json) {
1951
1978
  const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1952
1979
  const len0 = WASM_VECTOR_LEN;
@@ -8996,7 +9023,7 @@ function costSheetMetalChain(chain, kernel2, rates, quantity2 = 1) {
8996
9023
  }
8997
9024
  return { breakdown: parsed.breakdown, rates: parsed.rates };
8998
9025
  }
8999
- function flattenSolidToSheetMetal(mesh, kernel2, options = {}) {
9026
+ function flattenSolidToSheetMetal2(mesh, kernel2, options = {}) {
9000
9027
  if (!kernel2.flattenSolidToSheetMetal) {
9001
9028
  throw new Error("kernel.flattenSolidToSheetMetal not available \u2014 rebuild @vcad/kernel-wasm");
9002
9029
  }
@@ -12177,7 +12204,7 @@ var init_dist = __esm({
12177
12204
  * the mechanical counterpart of `board_from_solid`. Throws when the solid
12178
12205
  * is not constant-thickness sheet. */
12179
12206
  flattenSolidToSheetMetal(mesh, options) {
12180
- return flattenSolidToSheetMetal(mesh, this.kernel, options);
12207
+ return flattenSolidToSheetMetal2(mesh, this.kernel, options);
12181
12208
  }
12182
12209
  /** Compute a feasible bend sequence (outermost-first) for the
12183
12210
  * sheet-metal part in `doc`. Returns `null` if there is none. */
@@ -41072,6 +41099,19 @@ var init_CHANGELOG = __esm({
41072
41099
  "rendering"
41073
41100
  ]
41074
41101
  },
41102
+ {
41103
+ id: "2026-07-26-raytrace-mesh-parts",
41104
+ version: "0.9.4",
41105
+ date: "2026-07-26",
41106
+ category: "fix",
41107
+ title: "Ray-traced renders no longer drop mesh parts",
41108
+ summary: "Mesh-backed parts (frozen topology-optimization results, imported STL/GLB) now ray trace as smooth-shaded triangles instead of being silently omitted from the image.",
41109
+ features: [
41110
+ "rendering",
41111
+ "raytrace",
41112
+ "mesh"
41113
+ ]
41114
+ },
41075
41115
  {
41076
41116
  id: "2026-07-26-photoreal-path-tracer",
41077
41117
  version: "0.9.4",
@@ -41159,6 +41199,19 @@ var init_CHANGELOG = __esm({
41159
41199
  "render_view"
41160
41200
  ]
41161
41201
  },
41202
+ {
41203
+ id: "2026-07-26-hdri-environment-lighting",
41204
+ version: "0.9.4",
41205
+ date: "2026-07-26",
41206
+ category: "feat",
41207
+ title: "HDRI environment lighting for photoreal renders",
41208
+ summary: "vcad-render --photoreal gains --env (three built-in studio HDRIs or any lat-long .hdr file) and --env-rotation, importance-sampled as a third MIS strategy.",
41209
+ features: [
41210
+ "render",
41211
+ "photoreal",
41212
+ "lighting"
41213
+ ]
41214
+ },
41162
41215
  {
41163
41216
  id: "2026-07-26-flat-pattern-from-solid",
41164
41217
  version: "0.9.4",
@@ -41177,6 +41230,19 @@ var init_CHANGELOG = __esm({
41177
41230
  "sheet_metal_cost"
41178
41231
  ]
41179
41232
  },
41233
+ {
41234
+ id: "2026-07-26-fillet-corner-raytrace-hole",
41235
+ version: "0.9.4",
41236
+ date: "2026-07-26",
41237
+ category: "fix",
41238
+ title: "Fix holes at fillet corners in ray-traced renders",
41239
+ summary: "Ray-traced filleted parts showed a crescent-shaped hole at every rounded corner; the spherical corner blend's trim boundary collapsed at the sphere's pole and cut away half the patch.",
41240
+ features: [
41241
+ "fillet",
41242
+ "rendering",
41243
+ "raytrace"
41244
+ ]
41245
+ },
41180
41246
  {
41181
41247
  id: "2026-07-26-fastener-forms",
41182
41248
  version: "0.9.4",
@@ -41266,6 +41332,19 @@ var init_CHANGELOG = __esm({
41266
41332
  "create_cad_loon"
41267
41333
  ]
41268
41334
  },
41335
+ {
41336
+ id: "2026-07-26-anisotropic-roughness",
41337
+ version: "0.9.4",
41338
+ date: "2026-07-26",
41339
+ category: "feat",
41340
+ title: "Brushed and turned finishes render correctly",
41341
+ summary: "Materials gain an anisotropy value, and the photoreal path tracer orients the stretched highlight by the BRep's own surface parameterisation, so turned shafts and bored holes get the circumferential grain they have in life.",
41342
+ features: [
41343
+ "rendering",
41344
+ "raytracing",
41345
+ "materials"
41346
+ ]
41347
+ },
41269
41348
  {
41270
41349
  id: "2026-07-25-via-layer-spans-in-fab-export",
41271
41350
  version: "0.9.4",
@@ -80674,8 +80753,8 @@ var init_server3 = __esm({
80674
80753
  init_order_feed();
80675
80754
  init_animate();
80676
80755
  PKG_VERSION = (() => {
80677
- if ("0.9.4-main.42") {
80678
- return "0.9.4-main.42";
80756
+ if ("0.9.4-main.44") {
80757
+ return "0.9.4-main.44";
80679
80758
  }
80680
80759
  try {
80681
80760
  const req = createRequire2(import.meta.url);
@@ -80684,8 +80763,8 @@ var init_server3 = __esm({
80684
80763
  return "0.0.0";
80685
80764
  }
80686
80765
  })();
80687
- BUILD_SHA = "5288a75b111969d99b834a3df1c88e017376b921";
80688
- BUILD_TIME = "2026-07-26T14:46:06.764Z";
80766
+ BUILD_SHA = "efd602e1a47295ebf6cb9eceb252bd6e63962be5";
80767
+ BUILD_TIME = "2026-07-26T15:31:54.644Z";
80689
80768
  SHORT_SHA = BUILD_SHA === "unknown" ? "unknown" : BUILD_SHA.slice(0, 7);
80690
80769
  VERSION_WITH_BUILD = SHORT_SHA === "unknown" ? PKG_VERSION : `${PKG_VERSION}+${SHORT_SHA}`;
80691
80770
  INSTANCE_ID = randomUUID6().slice(0, 8);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcad/mcp",
3
- "version": "0.9.4-main.42",
3
+ "version": "0.9.4-main.44",
4
4
  "description": "vcad MCP server — parametric CAD + PCB design tools for AI agents (self-contained: bundled server + kernel WASM)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "homepage": "https://vcad.io",
21
21
  "vcadBuild": {
22
- "sha": "5288a75b111969d99b834a3df1c88e017376b921",
23
- "builtAt": "2026-07-26T14:46:06.764Z"
22
+ "sha": "efd602e1a47295ebf6cb9eceb252bd6e63962be5",
23
+ "builtAt": "2026-07-26T15:31:54.644Z"
24
24
  }
25
25
  }
Binary file