forgecad 0.9.15 → 0.10.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/dist/assets/{AdminPage-CDyGUinA.js → AdminPage-DwYHz72L.js} +1 -1
- package/dist/assets/{BenchmarkPage-DfPMY_-d.js → BenchmarkPage-a9_f-1US.js} +1 -1
- package/dist/assets/{BlogPage-kF0fkdJT.js → BlogPage-DodHpvmf.js} +1 -1
- package/dist/assets/{DocsPage-B954L3YN.js → DocsPage-B5LePEuj.js} +8 -858
- package/dist/assets/{EditorApp-CuDLxKqL.css → EditorApp-BpjZgzk0.css} +148 -0
- package/dist/assets/EditorApp-QXsAISLR.js +16307 -0
- package/dist/assets/{EmbedViewer-C77B-TrF.js → EmbedViewer-DdEHGUMU.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-Cr6fXMDj.js → LandingPageProofDriven-yhhOodbf.js} +2 -2
- package/dist/assets/{LegalPage-Dzklqmmg.js → LegalPage-5RbKRGYK.js} +1 -1
- package/dist/assets/{PricingPage-zWXkvlwl.js → PricingPage-E3Rma7aV.js} +1 -1
- package/dist/assets/{SettingsPage-Bz0of4KQ.js → SettingsPage-BJZcM97j.js} +1 -1
- package/dist/assets/{app-D3kDkggg.js → app-DSYrDg0V.js} +1846 -352
- package/dist/assets/cli/{render-DSY3mMQa.js → render-ZMHR9HkV.js} +161 -70
- package/dist/assets/{constructionHistoryWorker-gpDo-uH2.js → constructionHistoryWorker-AwMMWSxg.js} +1104 -349
- package/dist/assets/{evalWorker-CU0Ke6DP.js → evalWorker-DbNs7Dkp.js} +5155 -3772
- package/dist/assets/{inspectWorker-COyp8XXA.js → inspectWorker-CZsCFtQT.js} +1415 -439
- package/dist/assets/{targets-B9sGB5nB.js → jointPose-DO6mnXn_.js} +71 -3
- package/dist/assets/{manifold-DNkrUWpA.js → manifold-BGlQBBH9.js} +1 -1
- package/dist/assets/{manifold-BRI5prcH.js → manifold-BU-tJwQh.js} +1 -1
- package/dist/assets/{manifold-C-3h2M7p.js → manifold-fy2MV7K1.js} +2 -2
- package/dist/assets/{reportWorker-CdBz5bNg.js → reportWorker-DO6hcQbh.js} +8474 -4549
- package/dist/assets/{scalar-sampling-budget-wJF98aY9.js → scalar-sampling-budget-o90NSNmF.js} +5347 -3906
- package/dist/assets/{scanProxyWorker-B-9VbLIs.js → scanProxyWorker-2GtDLk-R.js} +19 -6
- package/dist/assets/{javascript-1kQXfVaz.js → typescript-DBQ6RN5l.js} +874 -22
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +3 -3
- package/dist/docs-raw/AI/usage.md +3 -1
- package/dist/docs-raw/CLI.md +65 -239
- package/dist/docs-raw/README.md +6 -0
- package/dist/docs-raw/component-model.md +17 -150
- package/dist/docs-raw/generated/assembly.md +159 -520
- package/dist/docs-raw/generated/concepts.md +245 -3491
- package/dist/docs-raw/generated/core.md +277 -1251
- package/dist/docs-raw/generated/curves.md +387 -1608
- package/dist/docs-raw/generated/legacy.md +162 -0
- package/dist/docs-raw/generated/lib.md +238 -112
- package/dist/docs-raw/generated/output.md +51 -76
- package/dist/docs-raw/generated/runtime-names.md +30 -22
- package/dist/docs-raw/generated/sdf.md +68 -284
- package/dist/docs-raw/generated/sheet-metal.md +68 -335
- package/dist/docs-raw/generated/sketch.md +240 -1161
- package/dist/docs-raw/generated/viewport.md +75 -316
- package/dist/docs-raw/generated/wood.md +21 -49
- package/dist/docs-raw/guides/coordinate-system.md +4 -42
- package/dist/docs-raw/guides/inspection-bundles.md +44 -442
- package/dist/docs-raw/guides/joint-design.md +18 -79
- package/dist/docs-raw/guides/positioning.md +21 -143
- package/dist/docs-raw/guides/scene-presentation.md +89 -0
- package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +25 -111
- package/dist/docs-raw/skills/forgecad-blockout-model.md +20 -117
- package/dist/docs-raw/skills/forgecad-component-model.md +23 -107
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +47 -155
- package/dist/docs-raw/skills/forgecad-image-replicator.md +26 -143
- package/dist/docs-raw/skills/forgecad-lld.md +19 -113
- package/dist/docs-raw/skills/forgecad-make-a-model.md +113 -532
- package/dist/docs-raw/skills/forgecad-model-grader.md +38 -108
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +24 -211
- package/dist/docs-raw/skills/forgecad-project.md +13 -129
- package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +42 -134
- package/dist/docs-raw/skills/forgecad-render-inspect.md +27 -174
- package/dist/docs-raw/skills/forgecad-visual-spec.md +32 -112
- package/dist/docs-raw/skills/forgecad.md +19 -18
- package/dist/docs-raw/skills/index.md +2 -0
- package/dist/docs-raw/welcome.md +4 -2
- package/dist/index.html +1 -1
- package/dist/llms.txt +1 -2
- package/dist/sitemap.xml +13 -13
- package/dist-cli/{check-compiler-SDX5QIXI.js → check-compiler-JTVBITCR.js} +1 -1
- package/dist-cli/{check-query-propagation-EAYEFT77.js → check-query-propagation-3FFLSMVN.js} +1 -1
- package/dist-cli/{chunk-N4O47JLF.js → chunk-OAN5T4XD.js} +5722 -4287
- package/dist-cli/forgecad.js +2195 -656
- package/dist-skill/CONTEXT.md +1778 -7912
- package/dist-skill/SKILL.md +15 -15
- package/dist-skill/docs/API/core/concepts.md +27 -157
- package/dist-skill/docs/CLI.md +65 -239
- package/dist-skill/docs/generated/assembly.md +160 -493
- package/dist-skill/docs/generated/core.md +277 -1251
- package/dist-skill/docs/generated/curves.md +387 -1609
- package/dist-skill/docs/generated/lib.md +238 -112
- package/dist-skill/docs/generated/output.md +51 -76
- package/dist-skill/docs/generated/runtime-names.md +16 -22
- package/dist-skill/docs/generated/sdf.md +68 -284
- package/dist-skill/docs/generated/sheet-metal.md +68 -335
- package/dist-skill/docs/generated/sketch.md +240 -1160
- package/dist-skill/docs/generated/viewport.md +75 -223
- package/dist-skill/docs/generated/wood.md +21 -49
- package/dist-skill/docs/guides/coordinate-system.md +4 -42
- package/dist-skill/docs/guides/inspection-bundles.md +44 -442
- package/dist-skill/docs/guides/joint-design.md +18 -79
- package/dist-skill/docs/guides/positioning.md +21 -143
- package/dist-skill/docs/guides/scene-presentation.md +89 -0
- package/dist-skill/docs/guides/surface-members.md +26 -0
- package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +23 -111
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +18 -117
- package/dist-skill/library/forgecad-component-model/SKILL.md +21 -107
- package/dist-skill/library/forgecad-high-level-spec/SKILL.md +45 -155
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +24 -143
- package/dist-skill/library/forgecad-lld/SKILL.md +17 -113
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +111 -532
- package/dist-skill/library/forgecad-model-grader/SKILL.md +36 -108
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +35 -224
- package/dist-skill/library/forgecad-prepare-prompt/references/default-profiles.md +43 -271
- package/dist-skill/library/forgecad-prepare-prompt/references/master-prompt.md +30 -99
- package/dist-skill/library/forgecad-project/SKILL.md +13 -131
- package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +29 -123
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +25 -174
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +30 -111
- package/dist-skill/website/skills/forgecad-3d-reconstruction.md +58 -0
- package/dist-skill/website/skills/forgecad-blockout-model.md +49 -0
- package/dist-skill/website/skills/forgecad-component-model.md +53 -0
- package/dist-skill/website/skills/forgecad-high-level-spec.md +101 -0
- package/dist-skill/website/skills/forgecad-image-replicator.md +63 -0
- package/dist-skill/website/skills/forgecad-lld.md +41 -0
- package/dist-skill/website/skills/forgecad-make-a-model.md +186 -0
- package/dist-skill/website/skills/forgecad-model-grader.md +82 -0
- package/dist-skill/website/skills/forgecad-prepare-prompt.md +63 -0
- package/dist-skill/website/skills/forgecad-project.md +26 -0
- package/dist-skill/website/skills/forgecad-reconstruction-benchmark.md +60 -0
- package/dist-skill/website/skills/forgecad-render-inspect.md +80 -0
- package/dist-skill/website/skills/forgecad-visual-spec.md +71 -0
- package/dist-skill/website/skills/forgecad.md +122 -0
- package/dist-skill/website/skills/index.md +26 -0
- package/examples/api/comparison-imported-sphere-candidate.forge.js +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +1 -1
- package/examples/api/exact-sheet-shell-assembly.forge.js +1 -1
- package/examples/api/extrude-options.forge.js +4 -2
- package/examples/api/field-loft-drive-tip.forge.js +40 -0
- package/examples/api/guided-loft-olive-oil-bottle.forge.js +1 -1
- package/examples/api/helix-basics.forge.js +2 -2
- package/examples/api/highlight-debug.forge.js +10 -10
- package/examples/api/mesh-import-slats.forge.js +1 -1
- package/examples/api/real-product-curves.forge.js +1 -1
- package/examples/api/route3d-elbow.forge.js +3 -0
- package/examples/api/sculpt-box-circle-booleans.forge.js +1 -1
- package/examples/api/sdf-shapes.forge.js +2 -5
- package/examples/api/sketch-rounding-strategies.forge.js +6 -6
- package/examples/api/surface-member-bottle-cage.forge.js +3 -3
- package/examples/api/surface-member-conformal-product-ribbon.forge.js +3 -3
- package/examples/api/surface-member-razor-inlay.forge.js +1 -1
- package/examples/api/variable-sweep-test.forge.js +4 -2
- package/examples/mechanical/airplane-propeller.forge.js +74 -39
- package/examples/nurbs-surface.forge.js +1 -1
- package/examples/products/iphone.forge.js +1 -1
- package/package.json +4 -1
- package/dist/assets/EditorApp-Beb-IZ0y.js +0 -14014
- package/dist/docs-raw/guides/geometry-conventions.md +0 -52
- package/dist/docs-raw/guides/modeling-recipes.md +0 -78
- package/dist-skill/docs/guides/geometry-conventions.md +0 -52
- package/dist-skill/docs/guides/modeling-recipes.md +0 -78
- package/dist-skill/library/forgecad-visual-spec/references/prompt-template.md +0 -79
- package/examples/api/bolted-service-cover.forge.js +0 -17
- package/examples/api/cable-gland-anchor.forge.js +0 -14
- package/examples/api/captured-cartridge-guide.forge.js +0 -14
- package/examples/api/captured-linear-slide.forge.js +0 -13
- package/examples/api/clevis-pin-joint.forge.js +0 -13
- package/examples/api/datum-enclosure.forge.js +0 -16
- package/examples/api/hose-barb-port.forge.js +0 -14
- package/examples/api/knuckled-hinge-assembly.forge.js +0 -15
- package/examples/api/living-hinge-cover.forge.js +0 -14
- package/examples/api/pcb-terminal-block.forge.js +0 -22
- package/examples/api/pinned-lever-pivot-stack.forge.js +0 -14
- package/examples/api/retained-shaft-knob-stack.forge.js +0 -15
- package/examples/api/routed-tube-clip.forge.js +0 -15
- package/examples/api/seated-bearing-stack.forge.js +0 -30
- package/examples/api/snap-latch-cover.forge.js +0 -14
- package/examples/api/thumb-screw-clamp.forge.js +0 -15
|
@@ -7544,7 +7544,7 @@ if (typeof window !== "undefined") {
|
|
|
7544
7544
|
}
|
|
7545
7545
|
const SCAN_PROXY_GRANULARITY_DEFAULT = 32;
|
|
7546
7546
|
const SCAN_PROXY_SCENE_CELLS_ACROSS = SCAN_PROXY_GRANULARITY_DEFAULT;
|
|
7547
|
-
const SCAN_PROXY_CELL_GAP_RATIO = 0.
|
|
7547
|
+
const SCAN_PROXY_CELL_GAP_RATIO = 0.04;
|
|
7548
7548
|
const FACE_DIRS = [
|
|
7549
7549
|
{ normal: [1, 0, 0], u: [0, 1, 0], v: [0, 0, 1] },
|
|
7550
7550
|
{ normal: [-1, 0, 0], u: [0, 0, 1], v: [0, 1, 0] },
|
|
@@ -7589,6 +7589,7 @@ function createScanProxyGeometry(source, options = {}) {
|
|
|
7589
7589
|
},
|
|
7590
7590
|
cellCenters,
|
|
7591
7591
|
cellSize: spec.cellSize,
|
|
7592
|
+
grid: scanProxyGridFromSpec(spec),
|
|
7592
7593
|
cells: {
|
|
7593
7594
|
shell: shell.size,
|
|
7594
7595
|
core: 0,
|
|
@@ -7630,7 +7631,7 @@ function scanProxyPayloadTransferables(payload) {
|
|
|
7630
7631
|
const transferables = [];
|
|
7631
7632
|
for (const layer of Object.values(payload.geometries)) {
|
|
7632
7633
|
if (!layer) continue;
|
|
7633
|
-
transferables.push(layer.positions.buffer, layer.normals.buffer);
|
|
7634
|
+
transferables.push(layer.positions.buffer, layer.normals.buffer, layer.cells.buffer);
|
|
7634
7635
|
}
|
|
7635
7636
|
if (payload.cellCenters) transferables.push(payload.cellCenters.positions.buffer);
|
|
7636
7637
|
return transferables;
|
|
@@ -7652,6 +7653,7 @@ function scanProxyGeometryToPayload(proxy) {
|
|
|
7652
7653
|
},
|
|
7653
7654
|
cellCenters: pointPayloadFromGeometry(proxy.cellCenters),
|
|
7654
7655
|
cellSize: proxy.cellSize,
|
|
7656
|
+
grid: proxy.grid,
|
|
7655
7657
|
cells: proxy.cells,
|
|
7656
7658
|
faces: proxy.faces,
|
|
7657
7659
|
telemetry: proxy.telemetry
|
|
@@ -7669,10 +7671,12 @@ function layerPayloadFromGeometry(geometry) {
|
|
|
7669
7671
|
if (!geometry) return null;
|
|
7670
7672
|
const positions = geometry.getAttribute("position");
|
|
7671
7673
|
const normals = geometry.getAttribute("normal");
|
|
7672
|
-
|
|
7674
|
+
const cells = geometry.getAttribute("scanCell");
|
|
7675
|
+
if (!positions || !normals || !cells) return null;
|
|
7673
7676
|
return {
|
|
7674
7677
|
positions: positions.array,
|
|
7675
|
-
normals: normals.array
|
|
7678
|
+
normals: normals.array,
|
|
7679
|
+
cells: cells.array
|
|
7676
7680
|
};
|
|
7677
7681
|
}
|
|
7678
7682
|
function buildCellCenterGeometry(cells, spec) {
|
|
@@ -7779,6 +7783,7 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7779
7783
|
if (cells.size === 0) return { geometry: null, faces: 0 };
|
|
7780
7784
|
const positions = [];
|
|
7781
7785
|
const normals = [];
|
|
7786
|
+
const cellCoords = [];
|
|
7782
7787
|
let faces = 0;
|
|
7783
7788
|
for (const cell of cells.values()) {
|
|
7784
7789
|
for (const dir of FACE_DIRS) {
|
|
@@ -7786,7 +7791,7 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7786
7791
|
const neighborMaterial = lookup.get(neighborKey);
|
|
7787
7792
|
if (neighborMaterial === material) continue;
|
|
7788
7793
|
if (neighborMaterial && neighborMaterial !== "shell") continue;
|
|
7789
|
-
addFace(positions, normals, cell, dir, spec);
|
|
7794
|
+
addFace(positions, normals, cellCoords, cell, dir, spec);
|
|
7790
7795
|
faces += 1;
|
|
7791
7796
|
}
|
|
7792
7797
|
}
|
|
@@ -7794,10 +7799,11 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7794
7799
|
const geometry = new BufferGeometry();
|
|
7795
7800
|
geometry.setAttribute("position", new Float32BufferAttribute(positions, 3));
|
|
7796
7801
|
geometry.setAttribute("normal", new Float32BufferAttribute(normals, 3));
|
|
7802
|
+
geometry.setAttribute("scanCell", new Float32BufferAttribute(cellCoords, 3));
|
|
7797
7803
|
geometry.computeBoundingSphere();
|
|
7798
7804
|
return { geometry, faces };
|
|
7799
7805
|
}
|
|
7800
|
-
function addFace(positions, normals, cell, dir, spec) {
|
|
7806
|
+
function addFace(positions, normals, cellCoords, cell, dir, spec) {
|
|
7801
7807
|
const half = (spec.cellSize - scanProxyCellGap(spec.cellSize)) / 2;
|
|
7802
7808
|
const center = cellCenter(cell, spec);
|
|
7803
7809
|
const normal = new Vector3(dir.normal[0], dir.normal[1], dir.normal[2]);
|
|
@@ -7815,6 +7821,7 @@ function addFace(positions, normals, cell, dir, spec) {
|
|
|
7815
7821
|
for (const point of pts) {
|
|
7816
7822
|
positions.push(point.x, point.y, point.z);
|
|
7817
7823
|
normals.push(normal.x, normal.y, normal.z);
|
|
7824
|
+
cellCoords.push(cell.ix, cell.iy, cell.iz);
|
|
7818
7825
|
}
|
|
7819
7826
|
}
|
|
7820
7827
|
function boundsForPosition(position, matrix) {
|
|
@@ -7899,6 +7906,12 @@ function cellCenter(cell, spec) {
|
|
|
7899
7906
|
spec.min.z + (cell.iz + 0.5) * spec.cellSize
|
|
7900
7907
|
);
|
|
7901
7908
|
}
|
|
7909
|
+
function scanProxyGridFromSpec(spec) {
|
|
7910
|
+
return {
|
|
7911
|
+
cellSize: spec.cellSize,
|
|
7912
|
+
origin: [spec.min.x, spec.min.y, spec.min.z]
|
|
7913
|
+
};
|
|
7914
|
+
}
|
|
7902
7915
|
function clampCellIndex(index, count) {
|
|
7903
7916
|
return Math.max(0, Math.min(count - 1, index));
|
|
7904
7917
|
}
|