From 7aef949f489d81a12e988ede6bdc19b217b59f5a Mon Sep 17 00:00:00 2001 From: Matas Ubarevicius Date: Thu, 29 May 2025 14:11:10 +0300 Subject: [PATCH 1/7] added some live runner examples, also fixed some broken links. Updated threejs and babylonjs starter template code with some better looking kernel initialization... --- .../2024-04-23-introducing-bitbybit-runner.md | 4 +- .../npm-packages/start-with-babylon-js.md | 151 ++++--- .../learn/npm-packages/start-with-three-js.md | 148 ++++--- docs/learn/runners/intro-blockly.mdx | 2 +- docs/learn/runners/intro-rete.mdx | 2 +- docs/learn/runners/intro-typescript.mdx | 2 +- .../runners/live-examples/_category_.json | 4 + .../live-examples/configurable-cad-part.mdx | 398 ++++++++++++++++++ .../live-examples/static-3d-model-script.mdx | 217 ++++++++++ .../runners/table-configurator-blockly.mdx | 2 +- .../learn/runners/table-configurator-rete.mdx | 2 +- .../runners/table-configurator-typescript.mdx | 2 +- 12 files changed, 806 insertions(+), 128 deletions(-) create mode 100644 docs/learn/runners/live-examples/_category_.json create mode 100644 docs/learn/runners/live-examples/configurable-cad-part.mdx create mode 100644 docs/learn/runners/live-examples/static-3d-model-script.mdx diff --git a/docs/blog/2024-04-23-introducing-bitbybit-runner.md b/docs/blog/2024-04-23-introducing-bitbybit-runner.md index a137a945..dd293ac0 100644 --- a/docs/blog/2024-04-23-introducing-bitbybit-runner.md +++ b/docs/blog/2024-04-23-introducing-bitbybit-runner.md @@ -60,7 +60,7 @@ We've developed and launched three different types of examples to demonstrate a When you only need to run a script created in Bitbybit.dev without much external interaction, this is a good starting point. There are several ways to load the exported script file into your website, but perhaps the simplest is to just copy and paste its content and assign it to a variable or return it from a function. We've provided this example on three popular external coding sites: -* [StackBlitz Example](https://stackblitz.com/edit/stackblitz-starters-f6d3a2?file=script.js) +* [StackBlitz Example](https://stackblitz.com/edit/bitbybit-dev-runner-example-inline-string-embed-from-ret?file=script.js) * [JSFiddle Example](https://jsfiddle.net/matas_bitbybitdev/sa5jroqn/11/) * [CodePen Example](https://codepen.io/matas-bitbybit-dev/pen/XWQoxmX) @@ -98,7 +98,7 @@ While this example is basic, it includes all the essential elements of a 3D conf * Demonstration of how you can provide inputs to your exported Rete script and read outputs from it. Check out the examples: -* [StackBlitz Example](https://stackblitz.com/edit/stackblitz-starters-ohhh1g?file=script.js) +* [StackBlitz Example](https://stackblitz.com/edit/bitbybit-dev-runner-example-io-from-rete-editor?file=index.html,script.js) * [JSFiddle Example](https://jsfiddle.net/matas_bitbybitdev/z1pku4gj/3/) * [CodePen Example](https://codepen.io/matas-bitbybit-dev/pen/KKYbJdj) diff --git a/docs/learn/npm-packages/start-with-babylon-js.md b/docs/learn/npm-packages/start-with-babylon-js.md index 4cac4059..e8952c92 100644 --- a/docs/learn/npm-packages/start-with-babylon-js.md +++ b/docs/learn/npm-packages/start-with-babylon-js.md @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 title: Using Bitbybit with Babylon.js sidebar_label: Babylon.js Integration description: Learn how to set up and use the @bitbybit-dev/babylonjs package with Vite to create 3D CAD applications, and control which geometry kernels (OCCT, JSCAD, Manifold) are initialized. @@ -204,7 +204,7 @@ import { HemisphericLight, Color4, // Using Color4 for scene clearColor for alpha } from '@babylonjs/core'; -import { first } from 'rxjs'; +import { first, firstValueFrom, tap } from 'rxjs'; // Define an interface for kernel options interface KernelOptions { @@ -260,6 +260,7 @@ function initBabylonJS() { stencil: true, }); const scene = new Scene(engine); + scene.metadata = { shadowGenerators: [] }; // Important for Bitbybit till we have better implementation... scene.clearColor = new Color4(0.1, 0.11, 0.12, 1); // Set background color const camera = new ArcRotateCamera( @@ -289,93 +290,121 @@ function initBabylonJS() { // --- 5. Bitbybit Kernel Initialization Logic --- async function initWithKernels( - scene: Scene, // Babylon.js Scene - bitbybit: BitByBitBase, - options: KernelOptions + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions ): Promise<{ message: string }> { - return new Promise(async (resolve) => { let occtWorkerInstance: Worker | undefined; let jscadWorkerInstance: Worker | undefined; let manifoldWorkerInstance: Worker | undefined; - // Conditionally create worker instances based on options + // 1. Conditionally create worker instances if (options.enableOCCT) { - occtWorkerInstance = new Worker( + occtWorkerInstance = new Worker( new URL('./workers/occt.worker.ts', import.meta.url), { name: 'OCC_WORKER', type: 'module' } - ); + ); } if (options.enableJSCAD) { - jscadWorkerInstance = new Worker( + jscadWorkerInstance = new Worker( new URL('./workers/jscad.worker.ts', import.meta.url), { name: 'JSCAD_WORKER', type: 'module' } - ); + ); } if (options.enableManifold) { - manifoldWorkerInstance = new Worker( + manifoldWorkerInstance = new Worker( new URL('./workers/manifold.worker.ts', import.meta.url), { name: 'MANIFOLD_WORKER', type: 'module' } - ); + ); } - // Initialize Bitbybit with the (potentially undefined) worker instances. - // This passes the Babylon.js 'scene' to Bitbybit for integration. - scene.metadata = { shadowGenerators: [] }; + // 2. Initialize Bitbybit await bitbybit.init( - scene, - occtWorkerInstance, - jscadWorkerInstance, - manifoldWorkerInstance + scene, + occtWorkerInstance, + jscadWorkerInstance, + manifoldWorkerInstance ); - // Logic to wait for selected kernels to be initialized - let nrResolved = 0; - let resolutionsNeeded = 0; + // 3. Collect promises for kernel initializations + const initializationPromises: Promise[] = []; + let anyKernelSelectedForInit = false; - const checkIfAllInitialized = () => { - if (nrResolved === resolutionsNeeded) { - console.log('Selected kernels initialized:', options); - resolve({ message: 'Selected kernels initialized successfully.' }); - } - }; + if (options.enableOCCT) { + anyKernelSelectedForInit = true; + if (bitbybit.occtWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.occtWorkerManager.occWorkerState$.pipe( + first((s) => s.state === OccStateEnum.initialised), + tap(() => console.log('OCCT Initialized')) + ) + ).then(() => {}) // Ensure the promise resolves to void for Promise.all + ); + } else { + console.warn( + 'OCCT enabled in options, but occtWorkerManager not found after init.' + ); + } + } - if (options.enableOCCT && bitbybit.occtWorkerManager) { - resolutionsNeeded++; - bitbybit.occtWorkerManager.occWorkerState$ - .pipe(first((s) => s.state === OccStateEnum.initialised)) - .subscribe(() => { - console.log('OCCT Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + if (options.enableJSCAD) { + anyKernelSelectedForInit = true; + if (bitbybit.jscadWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.jscadWorkerManager.jscadWorkerState$.pipe( + first((s) => s.state === JscadStateEnum.initialised), + tap(() => console.log('JSCAD Initialized')) + ) + ).then(() => {}) + ); + } else { + console.warn( + 'JSCAD enabled in options, but jscadWorkerManager not found after init.' + ); + } } - if (options.enableJSCAD && bitbybit.jscadWorkerManager) { - resolutionsNeeded++; - bitbybit.jscadWorkerManager.jscadWorkerState$ - .pipe(first((s) => s.state === JscadStateEnum.initialised)) - .subscribe(() => { - console.log('JSCAD Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + + if (options.enableManifold) { + anyKernelSelectedForInit = true; + if (bitbybit.manifoldWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.manifoldWorkerManager.manifoldWorkerState$.pipe( + first((s) => s.state === ManifoldStateEnum.initialised), + tap(() => console.log('Manifold Initialized')) + ) + ).then(() => {}) + ); + } else { + console.warn( + 'Manifold enabled in options, but manifoldWorkerManager not found after init.' + ); + } } - if (options.enableManifold && bitbybit.manifoldWorkerManager) { - resolutionsNeeded++; - bitbybit.manifoldWorkerManager.manifoldWorkerState$ - .pipe(first((s) => s.state === ManifoldStateEnum.initialised)) - .subscribe(() => { - console.log('Manifold Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + + // 4. Wait for selected & available kernels or handle no selection/availability + if (!anyKernelSelectedForInit) { + console.log('No kernels selected for initialization.'); + return { message: 'No kernels selected for initialization.' }; } - // If no kernels were selected to be enabled - if (resolutionsNeeded === 0) { - console.log('No kernels selected for initialization.'); - resolve({ message: 'No kernels selected for initialization.' }); + if (initializationPromises.length === 0) { + // Kernels were selected, but none were awaitable (e.g., managers missing for all selected) + console.log( + 'Kernels were selected, but none had managers available for awaiting initialization.' + ); + return { + message: 'Selected kernels were not awaitable for initialization state.', + }; } - }); + + await Promise.all(initializationPromises); + console.log('Selected and awaitable kernels initialized:', options); + return { + message: 'Selected and awaitable kernels initialized successfully.', + }; } // --- 6. Geometry Creation Functions (Examples) --- diff --git a/docs/learn/npm-packages/start-with-three-js.md b/docs/learn/npm-packages/start-with-three-js.md index 295eb289..cabc619f 100644 --- a/docs/learn/npm-packages/start-with-three-js.md +++ b/docs/learn/npm-packages/start-with-three-js.md @@ -206,7 +206,7 @@ import { Vector3, WebGLRenderer, } from 'three'; -import { first } from 'rxjs'; +import { first, firstValueFrom, tap } from 'rxjs'; // Define an interface for kernel options interface KernelOptions { @@ -294,91 +294,121 @@ function initThreeJS() { // --- 5. Bitbybit Kernel Initialization Logic --- async function initWithKernels( - scene: Scene, - bitbybit: BitByBitBase, - options: KernelOptions -): Promise<{ message: string }> { // Added explicit return type for clarity - return new Promise(async (resolve) => { + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions +): Promise<{ message: string }> { let occtWorkerInstance: Worker | undefined; let jscadWorkerInstance: Worker | undefined; let manifoldWorkerInstance: Worker | undefined; - // Conditionally create worker instances based on options + // 1. Conditionally create worker instances if (options.enableOCCT) { - occtWorkerInstance = new Worker( + occtWorkerInstance = new Worker( new URL('./workers/occt.worker.ts', import.meta.url), { name: 'OCC_WORKER', type: 'module' } - ); + ); } if (options.enableJSCAD) { - jscadWorkerInstance = new Worker( + jscadWorkerInstance = new Worker( new URL('./workers/jscad.worker.ts', import.meta.url), { name: 'JSCAD_WORKER', type: 'module' } - ); + ); } if (options.enableManifold) { - manifoldWorkerInstance = new Worker( + manifoldWorkerInstance = new Worker( new URL('./workers/manifold.worker.ts', import.meta.url), { name: 'MANIFOLD_WORKER', type: 'module' } - ); + ); } - // Initialize Bitbybit with the (potentially undefined) worker instances + // 2. Initialize Bitbybit await bitbybit.init( - scene, - occtWorkerInstance, - jscadWorkerInstance, - manifoldWorkerInstance + scene, + occtWorkerInstance, + jscadWorkerInstance, + manifoldWorkerInstance ); - // Logic to wait for selected kernels to be initialized - let nrResolved = 0; - let resolutionsNeeded = 0; + // 3. Collect promises for kernel initializations + const initializationPromises: Promise[] = []; + let anyKernelSelectedForInit = false; - const checkIfAllInitialized = () => { - if (nrResolved === resolutionsNeeded) { - console.log('Selected kernels initialized:', options); - resolve({ message: 'Selected kernels initialized successfully.' }); - } - }; + if (options.enableOCCT) { + anyKernelSelectedForInit = true; + if (bitbybit.occtWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.occtWorkerManager.occWorkerState$.pipe( + first((s) => s.state === OccStateEnum.initialised), + tap(() => console.log('OCCT Initialized')) + ) + ).then(() => {}) // Ensure the promise resolves to void for Promise.all + ); + } else { + console.warn( + 'OCCT enabled in options, but occtWorkerManager not found after init.' + ); + } + } - if (options.enableOCCT && bitbybit.occtWorkerManager) { - resolutionsNeeded++; - bitbybit.occtWorkerManager.occWorkerState$ - .pipe(first((s) => s.state === OccStateEnum.initialised)) - .subscribe(() => { - console.log('OCCT Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + if (options.enableJSCAD) { + anyKernelSelectedForInit = true; + if (bitbybit.jscadWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.jscadWorkerManager.jscadWorkerState$.pipe( + first((s) => s.state === JscadStateEnum.initialised), + tap(() => console.log('JSCAD Initialized')) + ) + ).then(() => {}) + ); + } else { + console.warn( + 'JSCAD enabled in options, but jscadWorkerManager not found after init.' + ); + } } - if (options.enableJSCAD && bitbybit.jscadWorkerManager) { - resolutionsNeeded++; - bitbybit.jscadWorkerManager.jscadWorkerState$ - .pipe(first((s) => s.state === JscadStateEnum.initialised)) - .subscribe(() => { - console.log('JSCAD Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + + if (options.enableManifold) { + anyKernelSelectedForInit = true; + if (bitbybit.manifoldWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.manifoldWorkerManager.manifoldWorkerState$.pipe( + first((s) => s.state === ManifoldStateEnum.initialised), + tap(() => console.log('Manifold Initialized')) + ) + ).then(() => {}) + ); + } else { + console.warn( + 'Manifold enabled in options, but manifoldWorkerManager not found after init.' + ); + } } - if (options.enableManifold && bitbybit.manifoldWorkerManager) { - resolutionsNeeded++; - bitbybit.manifoldWorkerManager.manifoldWorkerState$ - .pipe(first((s) => s.state === ManifoldStateEnum.initialised)) - .subscribe(() => { - console.log('Manifold Initialized'); - nrResolved++; - checkIfAllInitialized(); - }); + + // 4. Wait for selected & available kernels or handle no selection/availability + if (!anyKernelSelectedForInit) { + console.log('No kernels selected for initialization.'); + return { message: 'No kernels selected for initialization.' }; } - // If no kernels were selected to be enabled - if (resolutionsNeeded === 0) { - console.log('No kernels selected for initialization.'); - resolve({ message: 'No kernels selected for initialization.' }); + if (initializationPromises.length === 0) { + // Kernels were selected, but none were awaitable (e.g., managers missing for all selected) + console.log( + 'Kernels were selected, but none had managers available for awaiting initialization.' + ); + return { + message: 'Selected kernels were not awaitable for initialization state.', + }; } - }); + + await Promise.all(initializationPromises); + console.log('Selected and awaitable kernels initialized:', options); + return { + message: 'Selected and awaitable kernels initialized successfully.', + }; } // --- 6. Geometry Creation Functions (Examples) --- diff --git a/docs/learn/runners/intro-blockly.mdx b/docs/learn/runners/intro-blockly.mdx index 939790f4..7c89ff6c 100644 --- a/docs/learn/runners/intro-blockly.mdx +++ b/docs/learn/runners/intro-blockly.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 title: Introduction to Bitbybit Runner with Blockly sidebar_label: Runner with Blockly description: Learn how to create a 3D website using Bitbybit Runner by integrating a visual program built with the Blockly editor into a StackBlitz project. diff --git a/docs/learn/runners/intro-rete.mdx b/docs/learn/runners/intro-rete.mdx index 5a2beaf2..71cd2259 100644 --- a/docs/learn/runners/intro-rete.mdx +++ b/docs/learn/runners/intro-rete.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 title: Introduction to Bitbybit Runner - Your First 3D Website sidebar_label: Runner with Rete description: Learn how to create a simple 3D website using Bitbybit Runner & Rete editor, controlling a 3D cube's size with a UI input on StackBlitz. diff --git a/docs/learn/runners/intro-typescript.mdx b/docs/learn/runners/intro-typescript.mdx index 2db2b5d6..0bdfa758 100644 --- a/docs/learn/runners/intro-typescript.mdx +++ b/docs/learn/runners/intro-typescript.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 title: Introduction to Bitbybit Runner with TypeScript sidebar_label: Runner with TypeScript description: Learn how to create a 3D website using Bitbybit Runner by integrating a TypeScript program built with Bitbybit into a StackBlitz project. diff --git a/docs/learn/runners/live-examples/_category_.json b/docs/learn/runners/live-examples/_category_.json new file mode 100644 index 00000000..71a11a20 --- /dev/null +++ b/docs/learn/runners/live-examples/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Live Examples", + "position": 2 +} diff --git a/docs/learn/runners/live-examples/configurable-cad-part.mdx b/docs/learn/runners/live-examples/configurable-cad-part.mdx new file mode 100644 index 00000000..3ca520b7 --- /dev/null +++ b/docs/learn/runners/live-examples/configurable-cad-part.mdx @@ -0,0 +1,398 @@ +--- +sidebar_position: 2 +title: "Interactive 3D Models with Runner & Inputs" +sidebar_label: "Rete Script with Inputs" +description: "Learn how to create interactive 3D models on your website by passing inputs to Rete visual programs executed with the Bitbybit Runner." +tags: [runners, rete] +--- + +import BitByBitRenderCanvas from '@site/src/components/BitByBitRenderCanvas'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import Admonition from '@theme/Admonition'; + +# Interactive 3D Models with Runner & Inputs + +In the previous tutorial, we learned how to run a static Rete script on a webpage using the Bitbybit Runner. Now, let's take it a step further and explore how to make your embedded 3D content interactive by: + +1. **Passing inputs from your webpage to the Rete script.** +2. **Receiving outputs (like created meshes) back from the script.** +3. **Updating the 3D scene dynamically by re-executing the script with new inputs and disposing of old geometry.** + +This allows you to build powerful 3D product configurators, interactive data visualizations, or any application where users can modify parameters and see the 3D model update in real time. + +## The Rete Script: A Parametric Industrial Part + +For this tutorial, we'll use a Rete script that generates a parametric industrial-style 3D part. This script is designed to accept inputs such as `radius1`, `radius2`, and `distance`, which will control its geometry. + +Below is an interactive preview of the Rete visual program. Notice how this script might have specific "Input" nodes designed to receive data from the runner. + + + +## Exporting the Script and Designing for Inputs/Outputs + +When you design a Rete script intended for use with the runner and external inputs/outputs: + +* **Input Nodes:** Use specific "Input" nodes within your Rete graph (e.g., "Runner Number Input," "Runner Vector Input"). These nodes will receive values passed via the `inputs` object in `runner.executeScript(exportedScript(), inputs)`. +* **Output Nodes:** Similarly, use "Output" nodes (e.g., "Runner Geometry Output") to define what data or geometry the script should return. The `runner.executeScript()` method returns a promise that resolves with these outputs. + +The Bitbybit "Export to Runner" feature will generate a JavaScript function string that accommodates these input and output mechanisms. + +## Live Demo: Interactive Control + +Before diving into the code, let's see the final result in action with a live StackBlitz demo. This environment simulates how you can integrate HTML controls (buttons, sliders, etc.) to modify parameters and dynamically update the 3D model rendered by the Bitbybit Runner. + +**Why is this interactive demo important?** + +* **Dynamic Interaction:** It showcases the core concept of this tutorial – modifying a 3D model in real-time based on user input from the webpage. +* **Input/Output Flow:** You can observe how changes made via HTML controls are passed to the Rete script, and how the script's output (the 3D meshes) is used to update the scene. +* **Practical Use Case:** This example is a simplified version of what you might build for a product configurator or an interactive educational tool. + +
+ +
+ +## Setting up Your HTML Page with Controls + +The HTML structure will be similar to the previous tutorial but will now include UI elements (buttons and spans) to control the Rete script's parameters. + + +{` + + + Runner Example - IO from Rete editor + + + + {/* Ensure version is current */} + + + +
+ +

Runner Example - Interactive Rete Script

+
+ +
+ + {/* Controls for script parameters */} +
+
+ + Radius1 is 4 + +
+
+ + Radius2 is 2 + +
+
+ + Distance is 24 + +
+
+ + +
+ +`} +
+ +**Key additions to `index.html`:** +* **Control Elements:** We've added `div`s containing `button` elements (for incrementing/decrementing values) and `span` elements (to display the current parameter values). +* **`onclick` Attributes:** The buttons call a JavaScript function `updateProp()` (which we'll define in `script.js`) to modify the input parameters. + +## Implementing the Interactive Logic (`script.js`) + +The `script.js` file now becomes more involved as it needs to handle initial values, update these values based on user interaction, re-execute the Rete script, and manage the previously created 3D objects. + + +{`// Initial input values for the Rete script +window.inputs = { + radius1: 4, + radius2: 2, + distance: 24, +}; + +// Bounds for the input values to keep them within a reasonable range +const bounds = { + radius1Min: 2, radius1Max: 10, + radius2Min: 2, radius2Max: 10, + distanceMin: 5, distanceMax: 40, +}; + +// Store previously created meshes to dispose of them before re-rendering +window.previousMeshes = []; +updateLabels(); // Initialize labels on the page + +const runner = window.bitbybitRunner.getRunnerInstance(); + +const runnerOptions = { + canvasId: 'myCanvas', + canvasZoneClass: 'myCanvasZone', + enablePhysics: false, // Assuming no physics for this example + enableOCCT: true, // Script uses OCCT + enableJSCAD: false, + enableManifold: false, + enableKeyEventListeners: false, + loadFonts: ['Roboto'], // If your script uses specific fonts for 3D text +}; + +// Initialize the runner and get access to bitbybit API and Bit (Inputs) objects +const { bitbybit, Bit } = await runner.run(runnerOptions); + +// Optional: Adjust camera after runner initialization if needed +// This prevents the Rete script from resetting the camera on each execution if it also has camera controls. +const cameraOpt = new Bit.Inputs.BabylonScene.CameraConfigurationDto(); +cameraOpt.position = [-30, 25, -35]; // Adjusted for better view of the industrial part +cameraOpt.lookAt = [0, 0, 0]; +bitbybit.babylon.scene.adjustActiveArcRotateCamera(cameraOpt); + +// Initial execution of the Rete script +let scriptResult = await runner.executeScript(exportedScript(), inputs); +previousMeshes = scriptResult.meshes || []; // Store the output meshes + +// Function to update a property, re-run the script, and update the scene +async function updateProp(propName, increase) { + let currentValue = inputs[propName]; + if (increase) { + currentValue++; + } else { + currentValue--; + } + + // Check against bounds + if (currentValue >= bounds[propName + 'Min'] && currentValue <= bounds[propName + 'Max']) { + buttonActivation(true); // Disable buttons during processing + + inputs[propName] = currentValue; + updateLabels(); // Update the displayed value on the page + + // Dispose of previously created meshes + if (previousMeshes && previousMeshes.length > 0) { + previousMeshes.forEach((mesh) => { + if (mesh && typeof mesh.dispose === 'function') { + mesh.dispose(); + } + }); + } + previousMeshes = []; // Clear the array + + // Re-execute the script with new inputs + const newResult = await runner.executeScript(exportedScript(), inputs); + previousMeshes = newResult.meshes || []; // Store new meshes + + buttonActivation(false); // Re-enable buttons + } +} + +// Function to update the labels on the HTML page +function updateLabels() { + document.getElementById('radius1').innerHTML = 'Radius 1 is ' + inputs.radius1; + document.getElementById('radius2').innerHTML = 'Radius 2 is ' + inputs.radius2; + document.getElementById('distance').innerHTML = 'Distance is ' + inputs.distance; +} + +// Function to disable/enable control buttons during script execution +function buttonActivation(disabled) { + const buttons = document.getElementsByTagName('button'); + for (let i = 0; i < buttons.length; i++) { + buttons.item(i).disabled = disabled; + } +} + +// Expose updateProp to the global window object so HTML onclick can find it +window.updateProp = updateProp; + +// Placeholder for your exported Rete script string +function exportedScript() { + // Replace this with the actual JavaScript string generated from your Rete editor + // for the parametric industrial part. + return '{"type":"rete","version":"0.X.X","script":"!async function(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit){ /* ... your very long exported Rete script ... */ }"}'; +} +`} + + +**Explanation of `script.js`:** + +1. **`window.inputs` Object:** Stores the current values for the parameters (`radius1`, `radius2`, `distance`) that will be passed to the Rete script. Making it a `window` property is a simple way to make it accessible globally within this script. +2. **`bounds` Object:** Defines minimum and maximum limits for each input parameter. +3. **`window.previousMeshes` Array:** This is crucial. It will store references to the 3D meshes created by the Rete script. Before re-running the script with new parameters, we'll dispose of these old meshes to prevent objects from overlapping and to manage memory. +4. **`updateLabels()`:** A helper function to update the text content of the `` elements in the HTML, reflecting the current parameter values. +5. **Camera Adjustment (Optional but Recommended):** + * `const { bitbybit, Bit } = await runner.run(runnerOptions);` + * After `runner.run()`, we now also destructure `bitbybit` (for API calls) and `Bit` (for accessing `Inputs` DTOs). + * We then adjust the active BabylonJS camera's position and target. This is done *once* after initializing the runner. If your Rete script *also* controls the camera, this step might be overridden, or you might choose to remove camera controls from the Rete script and manage it solely from your `script.js`. +6. **Initial Script Execution:** The Rete script is executed once with the initial `inputs`. The `scriptResult.meshes` (assuming your Rete script outputs meshes under a key named "meshes") are stored in `previousMeshes`. +7. **`async function updateProp(propName, increase)`:** + * This function is called when the `+` or `-` buttons in the HTML are clicked. + * It updates the corresponding value in the `inputs` object, checking against `bounds`. + * It calls `buttonActivation(true)` to temporarily disable all buttons, preventing rapid clicks while the script is processing. + * **Crucially, it iterates through `previousMeshes` and calls `mesh.dispose()` on each to remove them from the BabylonJS scene.** + * It then calls `await runner.executeScript(exportedScript(), inputs)` again with the *new* input values. + * The newly created meshes from this execution are stored in `previousMeshes`. + * `buttonActivation(false)` re-enables the buttons. +8. **`buttonActivation(disabled)`:** A utility to enable/disable all buttons on the page. +9. **`window.updateProp = updateProp;`:** Exposes the `updateProp` function to the global scope so it can be called by the `onclick` attributes in the HTML. +10. **`exportedScript()`:** **You must replace the placeholder string here with the actual, complete JavaScript string generated by the "Export to Runner" feature in your Bitbybit Rete editor for the parametric industrial part.** + +## Styling (`styles.css`) + +The CSS provided in the initial problem description can be used to style the page, buttons, and layout. + + +{`body { + margin: 0; + background-color: #1a1c1f; + color: white; + font-weight: 400; + font-family: 'IBM Plex Sans', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 100%; + height: 100%; +} + +button { + background-color: #1a1c1f; /* Match body or choose a button color */ + color: white; + border: 1px solid white; + border-radius: 5px; + padding: 5px 10px; /* Added padding for better click area */ + margin: 0 5px; /* Added margin for spacing */ + cursor: pointer; +} + +button:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.example { + margin-top: 50px; + margin-bottom: 50px; + margin-left: 300px; + margin-right: 300px; + display: flex; /* Added for centering content */ + flex-direction: column; + align-items: center; /* Center content horizontally */ +} + +@media (max-width: 1400px) { + .example { + margin-left: 100px; + margin-right: 100px; + } +} + +@media (max-width: 769px) { + .example { + margin-left: 20px; + margin-right: 20px; + } +} + +#myCanvas { + display: block; + outline: none; + border: 1px solid white; + border-radius: 5px; + width: 100%; /* Ensure canvas takes full width of its container */ + max-width: 800px; /* Optional: max width for very large screens */ + aspect-ratio: 16 / 9; /* Optional: maintain aspect ratio */ +} + +.logo { + margin-bottom: 20px; + display: flex; /* For aligning logo image and text */ + align-items: center; + text-decoration: none; +} + +.logo img { + width: 50px; + height: 50px; + margin-right: 10px; /* Space between logo image and text */ +} + +.myCanvasZone { + margin-top: 20px; + margin-bottom: 10px; + width: 100%; /* Ensure canvas zone takes available width */ + display: flex; /* For centering canvas if it has max-width */ + justify-content: center; +} + +a { + color: white; + vertical-align: middle; + text-decoration: underline; /* Make links more obvious */ +} + +.actions { + margin-top: 20px; /* Added margin-top */ + margin-bottom: 20px; + display: flex; /* For laying out control groups */ + flex-direction: column; + gap: 10px; /* Space between control groups */ + align-items: center; /* Center control groups */ +} + +.actions > div { /* Style for each control group (radius1, radius2, etc.) */ + display: flex; + align-items: center; +} + +.label { + text-align: center; + display: inline-block; + min-width: 150px; /* Increased min-width for better spacing */ + margin: 0 5px; /* Margin around label */ + font-size: 1.1em; /* Slightly larger label text */ +} +`} + + +## Conclusion + +This tutorial demonstrates a significant step up in using the Bitbybit Runner: creating dynamic, interactive 3D experiences on your website. You've learned how to: + +* Design Rete scripts that accept external inputs. +* Pass data from your HTML/JavaScript to the executed Rete script. +* Receive outputs (like 3D meshes) back from the script. +* Manage the lifecycle of 3D objects by disposing of old geometry before rendering new versions. +* Set up basic HTML controls to trigger these dynamic updates. + +This opens up a world of possibilities for building custom 3D tools and applications powered by your visual programs. \ No newline at end of file diff --git a/docs/learn/runners/live-examples/static-3d-model-script.mdx b/docs/learn/runners/live-examples/static-3d-model-script.mdx new file mode 100644 index 00000000..af9f4f73 --- /dev/null +++ b/docs/learn/runners/live-examples/static-3d-model-script.mdx @@ -0,0 +1,217 @@ +--- +sidebar_position: 1 +title: "Running Visual Scripts with Bitbybit Runner" +sidebar_label: "Alloy Wheel Rete Script" +description: "Learn how to export Rete visual programs as JavaScript and execute them on your own website using the Bitbybit Runner for BabylonJS." +tags: [runners, rete] +--- + +import BitByBitRenderCanvas from '@site/src/components/BitByBitRenderCanvas'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import Admonition from '@theme/Admonition'; + +# Running Visual Scripts with Bitbybit Runner + +The Bitbybit platform allows you to create complex 3D geometry and interactive scenes using visual programming environments like Rete. But what if you want to take these creations and run them on your own website, outside of the Bitbybit editor? That's where the **Bitbybit Runner** comes in! + +The Runner is a JavaScript library that can execute scripts exported from our visual editors (like Rete) directly in a browser environment, typically rendering the output using BabylonJS. This tutorial will guide you through the process of using an exported Rete script with the Bitbybit Runner. + +## The Rete Script: An Alloy Wheel Concept + +First, let's look at the Rete script we'll be working with. This script designs a concept for an alloy wheel using various OpenCascade (OCCT) operations. It involves creating lines, rotating them, dividing wires, lofting surfaces, and applying fillets to create a detailed 3D model. + +Below is an interactive preview of the Rete visual program. You can see the nodes and connections that define the geometry. + + + + +## Exporting the Script for the Runner + +When you are ready to use your Rete script outside the Bitbybit editor, you typically export it in a format that the runner can understand. This usually involves generating a JavaScript function that encapsulates the logic of your visual program. The Bitbybit platform provides an option to "Export to Runner", which gives you a JavaScript string for the Runner. You can even minify it. + +The core of this exported JavaScript will be a self-executing asynchronous function that takes instances of `BitByBit` (the core library), `bitbybit` (the API access object), `bitbybitRunnerResult` (for outputs), and `bitbybitRunnerInputs` (for inputs) as arguments. This static model does not need any of those as it does not take any inputs or produce any outputs for the runner. + +## Live Demo: Understanding the Runner in Action + +To see how all these pieces (HTML, Runner Library, and your exported script logic) come together, we've set up a live demonstration using StackBlitz. + +**Why is this StackBlitz demo important?** + +* **Simulates Your Website:** The StackBlitz environment effectively represents how this setup would work on **your own website**. It's a self-contained project with its own `index.html`, `styles.css`, and `script.js` – just like you would have if you were integrating this into your web application. +* **Practical Application:** It moves beyond theory and shows a tangible example of the runner in use. You can inspect the code, see the rendered 3D output, and understand the minimal requirements for embedding Bitbybit-generated content. +* **Deployment Context:** This demonstrates that projects built this way are not confined to the Bitbybit platform. You can deploy these kinds of projects on your own hosting providers (like Netlify, Vercel, GitHub Pages, or your own servers) and have full control over the user experience and integration with other web technologies. +* **Experimentation Sandbox:** StackBlitz allows you (and your users) to fork the example and experiment with changes to the HTML, CSS, or even the `runnerOptions` in `script.js` to see immediate results. + +By exploring the StackBlitz demo, you can gain confidence in how to take your visual programs from the Bitbybit editor and bring them to life anywhere on the web. + +
+ +
+ + +## Setting up Your HTML Page + +To use the runner on your own website, you'll need a basic HTML structure. + +```html title="index.html" + + + + Bitbybit Runner Example + + + + {/* Step 1: Include the Bitbybit Runner library */} + + {/* Step 2: Include your custom script that uses the runner */} + + + +
+ +

Runner Example - Alloy Wheel

+ {/* Step 3: Define a canvas element for rendering */} +
+ +
+ + Link to original Rete script. + +
+ + +``` + +```javascript title="script.js" +// Step 1: Define Runner Options +const runnerOptions = { + canvasId: 'myCanvas', // ID of the canvas element in your HTML + canvasZoneClass: 'myCanvasZone',// Class of the canvas container for resizing + enablePhysics: false, // Set to true if your script uses physics + enableOCCT: true, // Crucial: Set to true as our Rete script uses OCCT + enableJSCAD: false, // Set to true if using JSCAD + enableManifold: false, // Set to true if using Manifold + enableKeyEventListeners: false, // Enable if script needs to handle keyboard input (usually only Blockly or TypeScript...) + loadFonts: [], // Array of font file URLs if script uses custom 3D text fonts +}; + +// Step 2: Get the Runner Instance and Initialize +// The runner is globally available via window.bitbybitRunner after including the library. +const runner = window.bitbybitRunner.getRunnerInstance(); +await runner.run(runnerOptions); // Asynchronously initializes the runner and BabylonJS scene + +// Step 3: Define or Import Your Exported Rete Script +// This function returns the string of JavaScript code generated from your Rete editor. +// In a real application, this string might be loaded from a file, a database, or embedded directly. +function exportedScript() { + // This is the very long JavaScript string generated by "Export to Runner" from Rete. + // It starts with "!async function(e,t,s,n,r){..." where e=BitByBit, t=bitbybit, etc. + return '{"type":"rete","version":"0.15.9","script":"!async function(e,t,s,n,r){let a={};a={x:[0],y:[0],z:[1],...a};const o=[{result:e.HS.executeBasedOnType(a,!1,(e=>t.vector.vectorXYZ(e))),transformers:[]}]; ... (rest of the very long exported JS string) ... }(BitByBit,bitbybit,bitbybitRunnerResult,bitbybitRunnerInputs,Bit);"}' +} + +// Step 4: Execute the Script +// The second argument to executeScript can pass input values to your script if it's designed to accept them. +runner.executeScript(exportedScript(), {}); +``` + +We also needed some styling to make it pretty... :) + +```css title="styles.css" +body { + margin: 0; + background-color: #1a1c1f; + color: white; + font-weight: 400; + font-family: 'IBM Plex Sans', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 100%; + height: 100%; +} + +.example { + margin-top: 50px; + margin-bottom: 50px; + margin-left: 300px; + margin-right: 300px; +} + +@media(max-width:1400px) { + .example { + margin-left: 100px; + margin-right: 100px; + } +} + +@media(max-width:769px) { + .example { + margin-left: 20px; + margin-right: 20px; + } +} + +#myCanvas { + display: block; + outline: none; + border: 1px solid white; + border-radius: 5px; + width: 100%; +} + +.logo { + margin-bottom: 20px; +} + +.logo img { + width: 50px; + height: 50px; +} + +.myCanvasZone { + margin-top: 20px; + margin-bottom: 10px; +} + +a { + color: white; + vertical-align: middle; +} +``` + +## Conclusion + +In this tutorial, you've learned the essential steps to take a visual script created in Bitbybit's Rete editor and run it on an external webpage. We covered how to set up a basic HTML page, include the Bitbybit Runner library, configure runner options (crucially, enabling the OCCT kernel for our example), and finally, execute the exported JavaScript string representing your Rete program. This empowers you to integrate your powerful 3D creations and geometric algorithms directly into your own web projects. \ No newline at end of file diff --git a/docs/learn/runners/table-configurator-blockly.mdx b/docs/learn/runners/table-configurator-blockly.mdx index 1c68dd8e..8a740a7c 100644 --- a/docs/learn/runners/table-configurator-blockly.mdx +++ b/docs/learn/runners/table-configurator-blockly.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 7 title: Building a 3D Table Configurator with Blockly & Bitbybit Runner sidebar_label: 3D Table Configurator (Blockly) description: Learn to build a simple 3D table configurator using the Blockly visual editor on Bitbybit and then deploy it as an interactive website on StackBlitz using Bitbybit Runner. diff --git a/docs/learn/runners/table-configurator-rete.mdx b/docs/learn/runners/table-configurator-rete.mdx index 9af834bb..e4042aec 100644 --- a/docs/learn/runners/table-configurator-rete.mdx +++ b/docs/learn/runners/table-configurator-rete.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 5 +sidebar_position: 6 title: Building a 3D Table Configurator with Rete & Bitbybit Runner sidebar_label: 3D Table Configurator (Rete) description: Learn to build a simple 3D table configurator using the Rete visual editor on Bitbybit and then deploy it as an interactive website on StackBlitz using Bitbybit Runner. diff --git a/docs/learn/runners/table-configurator-typescript.mdx b/docs/learn/runners/table-configurator-typescript.mdx index 47492850..660c2170 100644 --- a/docs/learn/runners/table-configurator-typescript.mdx +++ b/docs/learn/runners/table-configurator-typescript.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 7 +sidebar_position: 8 title: Building a 3D Table Configurator with TypeScript & Bitbybit Runner sidebar_label: 3D Table Configurator (TS) description: Learn to build a 3D table configurator by exporting TypeScript code from Bitbybit and integrating it into a web application on StackBlitz using Bitbybit Runner. From 35c7cbfea20a32e85be2d55f4097f5511d04a6ca Mon Sep 17 00:00:00 2001 From: Matas Ubarevicius Date: Fri, 30 May 2025 10:35:15 +0300 Subject: [PATCH 2/7] setup client redirects. Added FAQ to 3D Bits docs, set up separate larger categories for ThreeJS & BabylonJS, replace starter templates. --- docs/docusaurus.config.ts | 18 ++- docs/learn/3d-bits/faq.md | 143 ++++++++++++++++++ .../theme-app-extensions/_category_.json | 2 +- docs/learn/3d-bits/tutorials/_category_.json | 2 +- ...d => viewer-no-code-gltf-configurators.md} | 0 .../npm-packages/babylonjs/_category_.json | 4 + docs/learn/npm-packages/babylonjs/intro.md | 91 +++++++++++ .../{ => babylonjs}/start-with-babylon-js.md | 8 +- .../npm-packages/game-engine-agnostic.md | 85 +++++++++++ .../npm-packages/threejs/_category_.json | 4 + docs/learn/npm-packages/threejs/intro.md | 89 +++++++++++ .../{ => threejs}/start-with-three-js.md | 2 +- docs/learn/tags.yml | 2 +- docs/package-lock.json | 26 +++- docs/package.json | 1 + 15 files changed, 467 insertions(+), 10 deletions(-) create mode 100644 docs/learn/3d-bits/faq.md rename docs/learn/3d-bits/tutorials/{viewer-no-code-gltf-configurators copy.md => viewer-no-code-gltf-configurators.md} (100%) create mode 100644 docs/learn/npm-packages/babylonjs/_category_.json create mode 100644 docs/learn/npm-packages/babylonjs/intro.md rename docs/learn/npm-packages/{ => babylonjs}/start-with-babylon-js.md (99%) create mode 100644 docs/learn/npm-packages/game-engine-agnostic.md create mode 100644 docs/learn/npm-packages/threejs/_category_.json create mode 100644 docs/learn/npm-packages/threejs/intro.md rename docs/learn/npm-packages/{ => threejs}/start-with-three-js.md (99%) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 36a4613a..5e04ff05 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -30,7 +30,23 @@ const config: Config = { defaultLocale: "en", locales: ["en"], }, - + plugins: [ + [ + "@docusaurus/plugin-client-redirects", + { + redirects: [ + { + from: "/learn/npm-packages/start-with-three-js", + to: "/learn/npm-packages/threejs/start-with-three-js", + }, + { + from: "/learn/npm-packages/start-with-babylon-js", + to: "/learn/npm-packages/babylonjs/start-with-babylon-js", + }, + ], + } + ], + ], presets: [ [ "classic", diff --git a/docs/learn/3d-bits/faq.md b/docs/learn/3d-bits/faq.md new file mode 100644 index 00000000..ced51980 --- /dev/null +++ b/docs/learn/3d-bits/faq.md @@ -0,0 +1,143 @@ +--- +sidebar_position: 2 +title: "3D Bits Shopify App - FAQ" +sidebar_label: "3D Bits FAQ" +description: "Frequently asked questions about using the 3D Bits app to integrate 3D models and product configurators into your Shopify store." +tags: [shopify, 3d-bits] +--- + +import Admonition from '@theme/Admonition'; + +# 3D Bits Shopify App: Frequently Asked Questions + +As 3D Bits makes its way into Shopify stores, we’ve started getting some recurring questions from merchants. So, here’s a quick FAQ with some honest answers to help you understand what 3D Bits can do for your store. + + +

If you have other questions or just need some initial guidance, please contact us, we're here to help you out!

+ info@bitbybit.dev +
+ +--- + +### Can I use 3D Bits if I have zero coding skills? + +**Yes, absolutely!** If you can click buttons and copy-paste, you’re good to go for basic 3D model display. + +**Here's the simple process:** +1. Install 3D Bits app, subscribe for a trial and pin it. +2. Go to Metafields sections within the app admin page and hit create button. +3. Upload your 3D models to Shopify via **Content > Files**. +4. Copy the link to your uploaded 3D model. +5. Paste this link into one of our designated 3D Bits metafields associated with your product. +6. Voilà! Your 3D model should now appear on your product page. + +Feeling a bit more adventurous but still don't want to code? You can try our **BITBYBIT VIEWER** editor block within the Shopify Theme Editor. It allows for arranging slightly fancier scenes with multiple models or different camera angles, still without writing any code – just courage required! + + + For a detailed walkthrough, check out our guide: 3D Bits Setup Guide. + + +--- + +### Can I build a product configurator without writing code? + +**To a certain extent, yes.** + +The **BITBYBIT VIEWER** block (used within the Viewer Editor) lets you match static 3D models with your existing Shopify product variants. This is great for handling common scenarios like: +* Showing a different 3D model for each color option (e.g., a blue chair model when "Blue" is selected). +* Displaying different models for size variations. + + + As technical founders, our initial inclination was to build in complex parametric logic for everything. However, we quickly realized that many merchants simply want to achieve straightforward visual changes based on standard Shopify variants – like showing the blue chair when "Blue" is selected. And that's perfectly fine and often all that's needed! 3D Bits handles this simple variant swapping effectively. + + +- Have GLTF files ready? Check this tutorial: [No-Code GLTF Configurators with BITBYBIT VIEWER Editor on Shopify](/learn/3d-bits/tutorials/viewer-no-code-gltf-configurators) +- Want to use 3D scans (Gaussian splatting)? [No-Code Gaussian Splat Configurators with BITBYBIT VIEWER Editor on Shopify](/learn/3d-bits/tutorials/viewer-no-code-3d-scan-configurators) + +For more complex configurators (e.g., where parts change dynamically beyond pre-set variants, or intricate rules are needed), you'd likely need to explore options involving some level of scripting, as discussed in later questions. + +--- + +### I already use [bitbybit.dev](https://bitbybit.dev) for my projects – can I connect those to Shopify? + +**Yes, you can!** + +* **For Simple Previews:** Use the **BITBYBIT PREVIEW** extension block in the Shopify Theme Editor. Make your project public on `bitbybit.dev`, and paste the project link into the block. That’s it! This is great for showcasing existing non-interactive or pre-animated scenes. +* **For More Interactivity:** If you want your `bitbybit.dev` script to react to Shopify variants or other page elements, you'll need to integrate your scripts using the **BITBYBIT RUNNER** theme extension block. This involves exporting your script from `bitbybit.dev` (as a JavaScript snippet) and then setting up the Runner block to execute it. This approach is more complex but offers much greater control. + + + Learn more about connecting your projects: Connecting bitbybit.dev Projects to Shopify. + + +--- + +### We’re developers building stores for merchants. Should we bother with 3D Bits? + +**Definitely.** + +While you *can* build everything from scratch (integrating a WebGL viewer, handling model loading, Shopify integration, etc.), ask yourself: do you really want to keep reinventing that wheel for each new theme or client? + + +3D Bits handles the essential groundwork: +* Easy 3D model embedding. +* Shopify metafield integration for 3D assets. +* Basic variant-to-model mapping. +* A bridge (the Runner block) for your custom JavaScript/TypeScript logic to interact with the 3D scene. + +This frees you up to focus on the unique business logic, creative 3D experiences, and advanced interactivity your clients need, rather than spending time wrangling 3D viewers into every theme variation. We’ve been there – it wasn't fun! 🥹 + + + We currently use BabylonJS in 3D Bits app. All of the videos and viewer editor is based on it. + + +--- + +### Can I use 3D Bits for complex pricing (e.g., a slider value changes the product price)? + +**Not directly for the pricing calculation itself.** + +3D Bits is focused on handling the **3D visualization**. It can: +* Read a value from a slider (or any other UI element on your page). +* Update the 3D model based on that value (e.g., change dimensions, swap parts). + +However, **3D Bits does not calculate or update the product price in Shopify.** Pricing logic, especially for complex, dynamically calculated prices, needs to be handled by: +* Shopify's built-in variant pricing. +* A dedicated third-party Shopify pricing app. +* Custom backend development with secure validation. + +Shopify offers three variant types with many options out of the box, which covers most standard pricing scenarios. For anything fancier, you’ll need to combine 3D Bits for the visuals with other tools or custom solutions for the pricing logic. + +--- + +### My product has a ton of configurable parts and complex logic. Can I build a fully custom configurator with 3D Bits? + +**Yes, if you or your team can write JavaScript or TypeScript.** + +This is where the **BITBYBIT RUNNER** theme extension block truly shines. It acts as a bridge: +1. You develop your complex configuration logic, part-swapping rules, and geometric manipulations as a script (e.g., using Rete, Blockly, or TypeScript on `bitbybit.dev` and then exporting it, or writing it directly for the runner). +2. The Runner block executes this script within your Shopify theme. +3. Your script can then interact with the 3D scene, listen to Shopify variant changes (or other custom UI elements you add to the page), and update the 3D model accordingly. + +3D Bits provides the 3D rendering pipeline and the connection to Shopify. You'll need to bring your own: +* Custom configuration logic (as a script). +* Pricing strategy (likely handled by Shopify or another app). +* Custom UI elements (if Shopify's default variant selectors aren't sufficient). + + + Dive deeper into building custom configurators: Using the Bitbybit Runner for Custom Logic. + + +--- + +### Does 3D Bits offer fancy UI controls for product pages (like custom sliders, color swatches, etc.)? + +**Nope. 3D Bits is not here to reinvent the dropdown or the color swatch.** + +There are many excellent Shopify apps and theme development techniques dedicated to creating sophisticated UI controls for product options. + +3D Bits focuses on the 3D visualization. It's designed to **listen** to what options are already selected on your product page (whether through standard Shopify variants or custom UI controls you've implemented) and then **update the 3D scene accordingly**: +* Show the correct 3D model or parts. +* Hide what shouldn’t be visible. +* Update 3D model dimensions or features based on selected options. + +**Think of 3D Bits as the 3D backbone of your product visualization – not the entire user interface nervous system. 💪** It plays well with others, allowing you to choose the best UI tools for your store while it handles the 3D heavy lifting. \ No newline at end of file diff --git a/docs/learn/3d-bits/theme-app-extensions/_category_.json b/docs/learn/3d-bits/theme-app-extensions/_category_.json index 1afc188a..38db85ae 100644 --- a/docs/learn/3d-bits/theme-app-extensions/_category_.json +++ b/docs/learn/3d-bits/theme-app-extensions/_category_.json @@ -1,4 +1,4 @@ { "label": "Theme App Extensions", - "position": 1 + "position": 3 } \ No newline at end of file diff --git a/docs/learn/3d-bits/tutorials/_category_.json b/docs/learn/3d-bits/tutorials/_category_.json index c57773eb..b9dada94 100644 --- a/docs/learn/3d-bits/tutorials/_category_.json +++ b/docs/learn/3d-bits/tutorials/_category_.json @@ -1,4 +1,4 @@ { "label": "Tutorials", - "position": 2 + "position": 4 } diff --git a/docs/learn/3d-bits/tutorials/viewer-no-code-gltf-configurators copy.md b/docs/learn/3d-bits/tutorials/viewer-no-code-gltf-configurators.md similarity index 100% rename from docs/learn/3d-bits/tutorials/viewer-no-code-gltf-configurators copy.md rename to docs/learn/3d-bits/tutorials/viewer-no-code-gltf-configurators.md diff --git a/docs/learn/npm-packages/babylonjs/_category_.json b/docs/learn/npm-packages/babylonjs/_category_.json new file mode 100644 index 00000000..4154d49e --- /dev/null +++ b/docs/learn/npm-packages/babylonjs/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "BabylonJS", + "position": 3 +} diff --git a/docs/learn/npm-packages/babylonjs/intro.md b/docs/learn/npm-packages/babylonjs/intro.md new file mode 100644 index 00000000..391d12e9 --- /dev/null +++ b/docs/learn/npm-packages/babylonjs/intro.md @@ -0,0 +1,91 @@ +--- +sidebar_position: 1 +title: "Introduction to Babylon.js" +sidebar_label: "Babylon.js Overview" +description: "An overview of Babylon.js, a powerful and easy-to-use WebGL-based 3D game engine, and its integration with Bitbybit." +tags: [babylonjs, webgl, 3d graphics, game engine, typescript, microsoft, bitbybit integration] +--- + +import Admonition from '@theme/Admonition'; + +# Introduction to Babylon.js: A Powerful 3D Engine for the Web + +Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework. Built with ease of use and performance in mind, it allows developers to create stunning 3D experiences, from games to data visualizations and product configurators, directly in the web browser using WebGL and WebGPU. + +**Visit the official Babylon.js homepage:** babylonjs.com + +Babylon.js Logo + +## What is Babylon.js Capable Of? + +Babylon.js is a comprehensive 3D engine, offering a rich set of features out-of-the-box, making it a strong choice for a wide array of 3D web applications. + +Key capabilities and features include: + +* **Scene Graph:** A robust system for organizing and managing 3D objects, lights, cameras, and other scene elements. +* **Physics Engines:** Built-in support for multiple physics engines (e.g., Havoc, Cannon.js, Oimo.js, Ammo.js via plugins) for realistic simulations. +* **Advanced Rendering:** + * Physically Based Rendering (PBR) materials for realistic surfaces. + * Node Material Editor for creating complex custom shaders visually. + * Advanced lighting (Image-Based Lighting, Global Illumination concepts) and shadow techniques. + * Extensive post-processing effects pipeline. +* **GUI System:** A dedicated GUI library for creating 2D user interfaces within the 3D scene. +* **Animation System:** Powerful tools for animating meshes, skeletons, materials, and more, including an animation curve editor. +* **Asset Loading:** Supports loading various 3D model formats (GLTF/GLB is highly recommended), textures, and other assets. +* **Particle System:** A versatile particle system for creating effects like fire, smoke, magic, etc. +* **Audio Engine:** Integrated spatial audio and sound effect capabilities. +* **XR Support:** Built-in support for WebXR, enabling Virtual Reality (VR) and Augmented Reality (AR) experiences. +* **Performance Optimizations:** Features like octrees, incremental loading, Level of Detail (LOD), and an inspector tool for debugging and optimizing scenes. +* **TypeScript First:** Babylon.js itself is written in TypeScript, offering excellent type safety, autocompletion, and developer tooling. +* **Cross-Platform:** Runs on any browser that supports WebGL or WebGPU. + +## Why Choose Babylon.js? + +Babylon.js has gained significant traction and is favored by many developers for several reasons: + +* **Ease of Use:** Designed with a focus on simplicity and a gentle learning curve, especially for developers familiar with object-oriented programming. +* **Comprehensive Feature Set:** Many advanced features are available out-of-the-box, reducing the need for numerous external libraries. +* **Strong Performance:** Actively developed with performance in mind. +* **Excellent Documentation and Playground:** Extensive official documentation and an interactive "Playground" environment make learning and experimenting very effective. +* **TypeScript & Tooling:** Being written in TypeScript provides robust development experience. +* **Microsoft Backing & Strong Community:** Developed and maintained by Microsoft along with a passionate and growing open-source community. + * **Active Forum:** The Babylon.js Forum is exceptionally active and supportive, with direct engagement from the core team and enthusiastic users. + * **Backward Compatibility:** Babylon.js has a strong commitment to backward compatibility, meaning projects built with older versions are generally well-supported on newer releases, providing stability for long-term projects. +* **Growing Ecosystem:** While perhaps not as vast as Three.js in third-party plugins, its ecosystem is rapidly growing, and its integrated nature often reduces the need for external additions. + + + Due to various considerations and historical reasons Babylonjs is our native rendering engine in visual programming (Rete, Blockly) & Monaco editors. We love the engine and it's features. This does not mean that ThreeJS or other supproted engines are worse or that we are crazy not to have chose something else! We love them all ❤️❤️❤️ + + +## Learning Resources & Community + +If you're looking to get started or deepen your knowledge of Babylon.js: + +* **Official Documentation:** Babylon.js Documentation - Comprehensive guides, tutorials, and API references. +* **Babylon.js Playground:** Babylon.js Playground - An interactive environment to write and test Babylon.js code live. +* **Babylon.js Forum (Official):** forum.babylonjs.com - The central hub for community support, questions, and showcasing projects. +* **Babylon 101 (Tutorials):** Babylon 101 Series - Great for beginners. +* **YouTube Channel:** Official Babylon.js YouTube - Tutorials and community highlights. +* **GitHub Repository:** BabylonJS/Babylon.js - The engine's source code. + +## How Bitbybit Uses Babylon.js + +Bitbybit's engine-agnostic core allows it to integrate with various rendering engines, and Babylon.js is one of our primary supported engines. + +* **Integration Package:** We provide the `@bitbybit-dev/babylonjs` NPM package. This package contains the specific logic to bridge Bitbybit's core geometric data (from OCCT, JSCAD, etc.) with the Babylon.js rendering engine. +* **Drawing Logic:** Key functions within this package, such as `drawAnyAsync`, are responsible for taking generic geometric entities and efficiently creating the corresponding `BABYLON.Mesh` objects, applying materials, and adding them to your Babylon.js scene for rendering. +* **Seamless Experience:** When using Bitbybit's visual editors (Rete, Blockly) or the Monaco TypeScript editor on our platform you'll have 1:1 experience when using NPM packages. + +The `@bitbybit-dev/babylonjs` package enables developers to combine Bitbybit's advanced CAD and computational geometry features with the rich, game-ready capabilities of the Babylon.js engine. + +**Source Code for Bitbybit's Babylon.js Integration:** +The source code for our Babylon.js integration can be found in our main GitHub repository, typically under a path like: +bitbybit-dev/bitbybit/tree/master/packages/dev/babylonjs. + +--- + +Babylon.js offers a compelling option for web developers looking to create high-quality 3D interactive experiences with a well-supported, feature-rich, and developer-friendly engine. Bitbybit's integration facilitates the use of our specialized geometry tools within this powerful environment. \ No newline at end of file diff --git a/docs/learn/npm-packages/start-with-babylon-js.md b/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md similarity index 99% rename from docs/learn/npm-packages/start-with-babylon-js.md rename to docs/learn/npm-packages/babylonjs/start-with-babylon-js.md index e8952c92..ea0dbd67 100644 --- a/docs/learn/npm-packages/start-with-babylon-js.md +++ b/docs/learn/npm-packages/babylonjs/start-with-babylon-js.md @@ -1,7 +1,7 @@ --- -sidebar_position: 3 +sidebar_position: 2 title: Using Bitbybit with Babylon.js -sidebar_label: Babylon.js Integration +sidebar_label: Babylon.js Starter Template description: Learn how to set up and use the @bitbybit-dev/babylonjs package with Vite to create 3D CAD applications, and control which geometry kernels (OCCT, JSCAD, Manifold) are initialized. tags: [npm-packages, babylonjs, occt, manifold, jscad] --- @@ -36,8 +36,8 @@ cd my-bitbybit-babylonjs-app`} Next, install the Bitbybit Babylon.js package and its necessary worker dependencies: -{`npm install @bitbybit-dev/babylonjs @babylonjs/core -# or: yarn add @bitbybit-dev/babylonjs @babylonjs/core`} +{`npm install @bitbybit-dev/babylonjs +# or: yarn add @bitbybit-dev/babylonjs`} diff --git a/docs/learn/npm-packages/game-engine-agnostic.md b/docs/learn/npm-packages/game-engine-agnostic.md new file mode 100644 index 00000000..2166b38a --- /dev/null +++ b/docs/learn/npm-packages/game-engine-agnostic.md @@ -0,0 +1,85 @@ +--- +sidebar_position: 2 +title: "Bitbybit's Engine-Agnostic Architecture" +sidebar_label: "Engine Agnosticism" +description: "Learn about Bitbybit's core architecture, designed to be game engine agnostic, its base layer of fundamental algorithms, and its current integrations with Three.js and BabylonJS." +tags: [threejs, babylonjs, npm-packages] +--- + +import Admonition from '@theme/Admonition'; + +# Bitbybit's Engine-Agnostic Core Architecture + +At the heart of the Bitbybit platform lies a powerful and flexible core designed with **game engine agnosticism** in mind. This means our fundamental geometry processing, Computer-Aided Design (CAD) algorithms, and data structures are developed independently of any specific 3D rendering engine. + +## Why Engine Agnostic? + +The decision to build an engine-agnostic core offers several key advantages: + +1. **Flexibility for Developers:** You are not locked into a single rendering solution. As new web-based 3D engines emerge or existing ones evolve, Bitbybit can adapt and provide integrations without needing to rewrite its core geometric functionalities. +2. **Focus on Core Competencies:** Our primary focus is on providing robust and efficient algorithms for computational geometry, CAD operations, and parametric design. By separating this from the rendering layer, we can dedicate resources to what we do best. +3. **Wider Reach and Integration:** Developers using different preferred 3D engines can still leverage Bitbybit's core capabilities by using the appropriate integration layer. +4. **Future-Proofing:** The 3D web landscape is dynamic. An agnostic core ensures that Bitbybit remains relevant and adaptable to future trends in rendering technology. +5. **Specialized Kernels:** Our core orchestrates powerful geometry kernels like OpenCascade (OCCT), JSCAD, and Manifold. These kernels handle the heavy lifting of geometric computations and are themselves independent of rendering. + +## How It Works: The Layered Approach + +Bitbybit's architecture can be visualized as a layered system: + +1. **Base Layer (`@bitbybit-dev/base`):** This foundational layer provides fundamental algorithms and data structures used throughout the Bitbybit ecosystem, including within our kernel code and higher-level packages. It contains utilities for: + * Vector mathematics (addition, subtraction, dot/cross products, etc.) + * General mathematical functions. + * List and array manipulations. + * Simple geometric entities and calculations (e.g., points, lines). + * More complex low-level geometric algorithms like triangle-triangle intersection tests, mesh-mesh intersection logic, and other computational geometry primitives. + This layer is pure computation and has no dependency on rendering engines or specific CAD kernels. + +2. **Geometry Kernels (OCCT, JSCAD, Manifold):** At the next level, these specialized libraries perform complex geometric calculations (e.g., booleans, fillets, extrusions, transformations) using algorithms often built upon concepts from the Base Layer. They operate on pure geometric data. + +3. **Bitbybit Core Engine:** This layer sits on top of the geometry kernels (and also utilizes the Base Layer). It provides: + * A unified API to interact with the different kernels. + * Management of data flow and operations. + * Helper functions and utilities for common geometric tasks. + * Orchestration of asynchronous operations, often running kernels in Web Workers for performance. + This core engine produces geometric data (like vertices, faces, normals) that is ready to be rendered but doesn't handle the rendering itself. + +4. **Rendering Engine Integration Layers (e.g., for Three.js, BabylonJS):** This is where the connection to specific 3D rendering engines happens. These layers: + * Take the geometric data output by the Bitbybit Core. + * Translate it into the specific mesh formats, materials, and scene graph structures required by the chosen engine (e.g., `THREE.Mesh` for Three.js, `BABYLON.Mesh` for BabylonJS). + * Crucially, they implement engine-specific drawing functions like `drawAnyAsync`. This function is responsible for taking a generic geometric entity (from OCCT, JSCAD, or even simple base geometry) and creating the appropriate, renderable mesh object for that particular game engine. + * Handle the rendering of these objects onto the screen using the engine's capabilities. + + +## Current Rendering Engine Integrations + +As of now, Bitbybit provides official integration layers for two of the most popular and powerful WebGL-based 3D engines: + +### 1. [ThreeJS](https://threejs.org/) Integration ([`@bitbybit-dev/threejs`](https://www.npmjs.com/package/@bitbybit-dev/threejs)) + +* **Overview:** Three.js stands as one of the - if not the - most **popular and widely adopted** WebGL libraries for creating and displaying animated 3D computer graphics directly in a web browser. It's renowned for its lightweight nature, versatility, and extensive capabilities. +* **Community and Ecosystem:** Three.js boasts a **large, active, and vibrant community** of developers. This translates into: + * A vast number of **open-source projects, examples, and tutorials** available online, making it easy to learn and find solutions. + * A rich **ecosystem of additional libraries and tools** built on top of or alongside Three.js, extending its functionality for specific needs like physics, post-processing effects, UI integrations, and more. +* **Bitbybit Integration:** Our `@bitbybit-dev/threejs` NPM package provides the necessary tools, including its version of `drawAnyAsync`, to take the geometric output from Bitbybit's core and render it efficiently within a Three.js scene. It handles the creation of `THREE.BufferGeometry`, `THREE.Mesh` and `THREE.Group`, and other Three.js specific objects from the kernel-generated data. +* **Use Cases:** Ideal for developers already familiar with the Three.js ecosystem, those looking for a flexible and well-documented rendering library with a massive amount of community support, or projects that can benefit from its extensive array of third-party extensions. + +### 2. [BabylonJS](https://babylonjs.com/) Integration ([`@bitbybit-dev/babylonjs`](https://www.npmjs.com/package/@bitbybit-dev/babylonjs)) + +* **Overview:** BabylonJS is a powerful, free, and open-source 3D engine known for its comprehensive feature set, ease of use, and excellent performance. It is written in TypeScript, developed and maintained by Microsoft and a strong community, and prides itself on a **strong backward compatibility promise**, ensuring that code written for older versions generally continues to work with newer releases. +* **Community and Ecosystem:** BabylonJS is backed by a highly active and supportive community, with a particularly vibrant official forum where developers of all levels can ask questions, share projects, and get direct assistance from both community members and the core BabylonJS team. This enthusiastic community also contributes to a growing number of external tools, extensions, and a wealth of learning resources, ensuring that users are well-supported in their development journey. +* **Bitbybit Integration:** Our `@bitbybit-dev/babylonjs` NPM package serves the same purpose as the Three.js integration but targets the BabylonJS engine. Its implementation of `drawAnyAsync` translates Bitbybit's core geometric data into `BABYLON.Mesh` objects and integrates them into a BabylonJS scene. +* **Use Cases:** A great choice for projects requiring a rich set of out-of-the-box features, physics integration, advanced rendering effects, or for developers who appreciate the stability and robust tooling offered by a TypeScript-first engine with strong corporate backing and community support. + +## Using the Integrations via NPM Packages + +When you use Bitbybit through our [NPM packages](/learn/npm-packages/intro) in your own JavaScript/TypeScript projects, you'll choose one of these integration layers. The `BitByBitBase` class from the respective package (`@bitbybit-dev/threejs` or `@bitbybit-dev/babylonjs`) is initialized with your chosen engine's scene object. From there, functions like `bitbybit.draw.drawAnyAsync()` will automatically use the correct engine-specific logic to create and render meshes. + +Our visual editors (Rete, Blockly) and the Monaco TypeScript editor on the Bitbybit platform also utilize these integration layers, but they primarily use BabylonJS game engine for rendering under the hood to provide you with a seamless 3D modeling experience. + +## The Future + +This engine-agnostic approach, built upon a solid Base Layer and versatile Core Engine, means that as the landscape of web 3D rendering evolves, Bitbybit is well-positioned to support new engines and technologies. This ensures that your core geometric logic and creations remain portable and powerful. We are always evaluating opportunities to expand our official integrations. + +--- + +By understanding this architecture, you can better appreciate the flexibility of the Bitbybit platform and make informed decisions when integrating our tools into your own projects. \ No newline at end of file diff --git a/docs/learn/npm-packages/threejs/_category_.json b/docs/learn/npm-packages/threejs/_category_.json new file mode 100644 index 00000000..1b5c895d --- /dev/null +++ b/docs/learn/npm-packages/threejs/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "ThreeJS", + "position": 4 +} diff --git a/docs/learn/npm-packages/threejs/intro.md b/docs/learn/npm-packages/threejs/intro.md new file mode 100644 index 00000000..92558d1d --- /dev/null +++ b/docs/learn/npm-packages/threejs/intro.md @@ -0,0 +1,89 @@ +--- +sidebar_position: 1 +title: "Introduction to Three.js" +sidebar_label: "Three.js Overview" +description: "An overview of Three.js, a powerful JavaScript library for creating and displaying 3D graphics in web browsers, and how it's integrated with Bitbybit." +tags: [npm-packages, threejs] +--- + +import Admonition from '@theme/Admonition'; + +# Introduction to Three.js: Powering 3D on the Web + +Three.js is a cross-browser JavaScript library used to create and display animated 3D computer graphics in a web browser using WebGL. If you're looking to bring interactive 3D experiences to your web projects, Three.js is one of the most popular and powerful tools available. + +**Visit the official Three.js homepage:** threejs.org + +Three.js Logo + + +## What is Three.js Capable Of? + +At its core, Three.js provides a high-level abstraction over WebGL (Web Graphics Library), which is a low-level JavaScript API for rendering 2D and 3D graphics within any compatible web browser without the use of plug-ins. This abstraction makes it significantly easier to work with 3D graphics on the web. + +Key capabilities and features include: + +* **Scene Management:** Organizes all 3D objects, lights, and cameras into a hierarchical scene graph, making it easy to manage complex environments. +* **Cameras:** Offers various camera types (Perspective, Orthographic) to control how the scene is viewed. +* **Geometry:** Provides a wide range of built-in primitive geometries (cubes, spheres, planes, cylinders, tori, etc.) and supports loading custom geometries from various 3D file formats (like GLTF, OBJ, FBX). +* **Materials & Textures:** A rich material system allows for defining the appearance of objects, including support for physically-based rendering (PBR) materials, textures, bump maps, normal maps, environment maps, and more. +* **Lights & Shadows:** Supports different types of lights (Ambient, Directional, Point, Spot, Hemisphere) and various shadow mapping techniques to create realistic lighting and shadows. +* **Animation:** Includes systems for animating objects, skeletons (for character animation), and morph targets. +* **Loaders:** A comprehensive set of loaders for importing 3D models, textures, and other assets from popular 3D software. +* **Raycasting:** Allows for picking objects in the scene by casting rays (e.g., to detect mouse clicks on 3D objects). +* **Shaders:** Supports custom GLSL shaders for advanced visual effects and rendering techniques. +* **Post-processing:** A framework for applying full-screen visual effects to the rendered scene (e.g., bloom, depth of field, SSAO). +* **Renderers:** Primarily uses a WebGL renderer, but also has experimental support for other renderers like WebGPU (via compute Piplelines) and CSS3DRenderer. +* **Extensibility:** Designed to be modular, allowing developers to easily extend its functionality. + +## Why is Three.js So Popular? + +Three.js has gained immense popularity for several reasons: + +* **Accessibility:** It significantly lowers the barrier to entry for WebGL development. +* **Large and Active Community:** A vast and vibrant community means: + * Abundant tutorials, articles, and examples. + * Quick help and support through forums and Q&A sites. + * A wealth of open-source projects built with Three.js. +* **Extensive Ecosystem:** Numerous third-party libraries, tools, and extensions are available to augment Three.js capabilities (e.g., physics engines, UI libraries, advanced controls). +* **Flexibility:** It's a library, not a restrictive framework, giving developers a lot of control over their application structure. +* **Performance:** While WebGL itself can be complex to optimize, Three.js provides many tools and best practices to achieve good performance. + +## Learning Resources & Community + +If you're interested in diving deeper into Three.js, here are some valuable resources: + +* **Official Documentation:** Three.js Documentation - The primary source for API references and guides. +* **Official Examples:** Three.js Examples - A huge collection of live examples showcasing various features. +* **Three.js Journey:** Three.js Journey - A highly recommended, comprehensive course by Bruno Simon. +* **Discover Three.js:** Discover Three.js (Book) - A detailed online book. +* **Three.js Forum (Official):** discourse.threejs.org - The best place to ask questions and engage with the community. +* **Stack Overflow:** Many Three.js questions are asked and answered on Stack Overflow (tagged 'three.js'). +* **GitHub Repository:** mrdoob/three.js - Explore the source code and contribute. + +## How Bitbybit Uses Three.js + +Bitbybit's core architecture is designed to be game engine agnostic, meaning its fundamental geometry processing and CAD algorithms are independent of any specific rendering engine. However, to display 3D content in a web browser, a rendering engine is essential. + +Three.js is one of the rendering engines for which Bitbybit provides an official integration layer. + +* **Integration Package:** We offer the `@bitbybit-dev/threejs` NPM package. This package acts as a bridge, taking the geometric data generated by Bitbybit's core (which might originate from OCCT, JSCAD, or other kernels) and translating it into Three.js specific objects like `THREE.Group`, `THREE.Mesh`, `THREE.BufferGeometry`, and `THREE.Material`. +* **Drawing Logic:** Functions within this package, notably `drawAnyAsync`, are responsible for efficiently creating and rendering these Three.js objects within your Three.js scene. + + + ThreeJS support is only offered via our npm package. Due to historical reasons for our visual programming editors we use BabylonJS game engine - another great open-source WebGL engine. + + +By using `@bitbybit-dev/threejs`, developers can leverage Bitbybit's powerful CAD and computational geometry features while working within the familiar and extensive Three.js ecosystem. + +**Source Code for Bitbybit's Three.js Integration:** +You can find the source code for our Three.js integration package in our main GitHub repository, typically within a path like: +bitbybit-dev/bitbybit/tree/master/packages/dev/threejs + +--- + +Whether you're building complex CAD tools, interactive product configurators, data visualizations, or artistic 3D experiences, understanding Three.js can significantly enhance your capabilities as a web developer. Bitbybit's integration aims to make it easier to combine powerful geometry generation with this versatile rendering library. \ No newline at end of file diff --git a/docs/learn/npm-packages/start-with-three-js.md b/docs/learn/npm-packages/threejs/start-with-three-js.md similarity index 99% rename from docs/learn/npm-packages/start-with-three-js.md rename to docs/learn/npm-packages/threejs/start-with-three-js.md index cabc619f..64d4aaaa 100644 --- a/docs/learn/npm-packages/start-with-three-js.md +++ b/docs/learn/npm-packages/threejs/start-with-three-js.md @@ -1,7 +1,7 @@ --- sidebar_position: 2 title: Using Bitbybit with Three.js -sidebar_label: Three.js Integration +sidebar_label: Three.js Starter Template description: Learn how to set up and use the @bitbybit-dev/threejs package with Vite to create 3D CAD applications, and control which geometry kernels (OCCT, JSCAD, Manifold) are initialized. tags: [npm-packages, threejs, occt, manifold, jscad] --- diff --git a/docs/learn/tags.yml b/docs/learn/tags.yml index 0a7bc196..6d132ac5 100644 --- a/docs/learn/tags.yml +++ b/docs/learn/tags.yml @@ -111,4 +111,4 @@ shopify: 3d-bits: label: 3D Bits permalink: /3d-bits - description: 3D Bits is application that Bitbybit has developed for Shopify merchants - it can be installed on their webshops. \ No newline at end of file + description: 3D Bits is application that Bitbybit has developed for Shopify merchants - it can be installed on their webshops. diff --git a/docs/package-lock.json b/docs/package-lock.json index 42495e90..6ce14101 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9,7 +9,6 @@ "version": "0.0.0", "dependencies": { "@docusaurus/core": "3.7.0", - "@docusaurus/plugin-google-gtag": "3.7.0", "@docusaurus/preset-classic": "3.7.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", @@ -20,6 +19,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "3.7.0", + "@docusaurus/plugin-client-redirects": "3.7.0", "@docusaurus/tsconfig": "3.7.0", "@docusaurus/types": "3.7.0", "typescript": "~5.6.2" @@ -3137,6 +3137,30 @@ "react-dom": "*" } }, + "node_modules/@docusaurus/plugin-client-redirects": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.7.0.tgz", + "integrity": "sha512-6B4XAtE5ZVKOyhPgpgMkb7LwCkN+Hgd4vOnlbwR8nCdTQhLjz8MHbGlwwvZ/cay2SPNRX5KssqKAlcHVZP2m8g==", + "dev": true, + "dependencies": { + "@docusaurus/core": "3.7.0", + "@docusaurus/logger": "3.7.0", + "@docusaurus/utils": "3.7.0", + "@docusaurus/utils-common": "3.7.0", + "@docusaurus/utils-validation": "3.7.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, "node_modules/@docusaurus/plugin-content-blog": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz", diff --git a/docs/package.json b/docs/package.json index 6daa2872..bd6b078b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -28,6 +28,7 @@ "@docusaurus/module-type-aliases": "3.7.0", "@docusaurus/tsconfig": "3.7.0", "@docusaurus/types": "3.7.0", + "@docusaurus/plugin-client-redirects": "3.7.0", "typescript": "~5.6.2" }, "browserslist": { From 3111d3c03e0b7317f112e97c25c2dfc495d6c865 Mon Sep 17 00:00:00 2001 From: Matas Ubarevicius Date: Fri, 30 May 2025 10:50:43 +0300 Subject: [PATCH 3/7] update to use learn-bitbybit-social-card.jpeg --- docs/docusaurus.config.ts | 2 +- .../img/learn-bitbybit-social-card.jpeg | Bin 0 -> 129151 bytes .../static/img/learn-bitbybit-social-card.png | Bin 0 -> 139670 bytes .../static/img/learn-bitbybit-social-card.xcf | Bin 0 -> 1404510 bytes 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/static/img/learn-bitbybit-social-card.jpeg create mode 100644 docs/static/img/learn-bitbybit-social-card.png create mode 100644 docs/static/img/learn-bitbybit-social-card.xcf diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 5e04ff05..68beb1c9 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -81,7 +81,7 @@ const config: Config = { ], themeConfig: { // Replace with your project's social card - image: "img/docusaurus-social-card.jpg", + image: "img/learn-bitbybit-social-card.jpeg", colorMode: { defaultMode: "dark", disableSwitch: false, diff --git a/docs/static/img/learn-bitbybit-social-card.jpeg b/docs/static/img/learn-bitbybit-social-card.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..21eb584732274a64ef386e64fc91ccf6aa4bd72f GIT binary patch literal 129151 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%0DfkF}32 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%0Avgtpt%T<@3=o%-pty^x%LaA_V!1}UJZ`g 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
}w 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ᴔ?Rk=^W1_=Zt~!7BbQ@$PLlypQ>$BML;9? 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 IVHW)V00C9=$p8QV literal 0 HcmV?d00001 diff --git a/docs/static/img/learn-bitbybit-social-card.xcf b/docs/static/img/learn-bitbybit-social-card.xcf new file mode 100644 index 0000000000000000000000000000000000000000..8f6f25bfd29c7121d20b7045079356783ead971f GIT binary patch literal 1404510 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%0A7}jEi(*7q{i_&E^d_dM>hPC`1SG5!{OgLfnDtd_ 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

;65Dt4Bl1sEGLjG%|3t16A-DwdY& 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

oa@ZEGHnG!^FpyWE_!XP`CD=U=#xe_ni!$u*tH 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�|A(rdRTHA4Ygj=#w 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 z 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�pq$e`0S^;gUyPs4 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 Date: Fri, 30 May 2025 18:07:37 +0300 Subject: [PATCH 4/7] new advanced parametric 3d model tutorial on docs and git app example updated --- README.md | 2 +- docs/learn/intro.md | 40 +- .../advanced-parametric-3d-model.mdx | 378 +++++ docs/learn/npm-packages/babylonjs/intro.md | 2 +- .../threejs/advanced-parametric-3d-model.mdx | 378 +++++ docs/src/pages/index.tsx | 1 - examples/vite/threejs/hex-shell/index.html | 4 +- .../vite/threejs/hex-shell/package-lock.json | 1225 ++++++++++++++--- .../threejs/hex-shell/src/create-shape.ts | 658 --------- .../hex-shell/src/helpers/create-gui.ts | 98 ++ .../hex-shell/src/helpers/create-shape.ts | 657 +++++++++ .../hex-shell/src/helpers/downloads.ts | 62 + .../hex-shell/src/helpers/gui-helper.ts | 31 + .../threejs/hex-shell/src/helpers/index.ts | 7 + .../hex-shell/src/helpers/init-kernels.ts | 125 ++ .../hex-shell/src/helpers/init-threejs.ts | 109 ++ examples/vite/threejs/hex-shell/src/main.ts | 496 ++----- .../threejs/hex-shell/src/models/current.ts | 13 +- .../threejs/hex-shell/src/models/index.ts | 3 + .../hex-shell/src/models/kernel-options.ts | 5 + .../threejs/hex-shell/src/models/model.ts | 71 +- .../hex-shell/src/workers/jscad.worker.ts | 6 +- .../hex-shell/src/workers/manifold.worker.ts | 8 +- .../hex-shell/src/workers/occt.worker.ts | 8 +- 24 files changed, 3059 insertions(+), 1328 deletions(-) create mode 100644 docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx create mode 100644 docs/learn/npm-packages/threejs/advanced-parametric-3d-model.mdx delete mode 100644 examples/vite/threejs/hex-shell/src/create-shape.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/create-gui.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/create-shape.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/downloads.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/gui-helper.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/index.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/init-kernels.ts create mode 100644 examples/vite/threejs/hex-shell/src/helpers/init-threejs.ts create mode 100644 examples/vite/threejs/hex-shell/src/models/index.ts create mode 100644 examples/vite/threejs/hex-shell/src/models/kernel-options.ts diff --git a/README.md b/README.md index 16f54da7..7c1cfc40 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Bitbybit Monorepo -This git repo contains multiple bitbybit packages and contains code for core 3D algorithms of Bitbybit platform which are open-sourced under MIT license. +This git repo contains multiple bitbybit packages and code for core 3D algorithms of Bitbybit platform which are open-sourced under MIT license. # [FULL PLATFORM AT BITBYBIT.DEV](https://bitbybit.dev) # [LEARN BITBYBIT](https://learn.bitbybit.dev) diff --git a/docs/learn/intro.md b/docs/learn/intro.md index 9f757dc4..1f42679a 100644 --- a/docs/learn/intro.md +++ b/docs/learn/intro.md @@ -10,10 +10,36 @@ import Admonition from '@theme/Admonition'; # Welcome! 🎉 -We're thrilled you're interested in using our platform! These "Start" pages are designed to help you quickly get up to speed and begin creating amazing 3D experiences. +We're thrilled you're interested in using our platform! This site is designed to help you quickly get up to speed and begin creating amazing 3D experiences. + +In this essential introduction to Bitbybit video Matas Ubarevičius explains the fundamental ideas of the platform - if you haven't watched it yet - it's highly recommended. +

Let's find the best starting point for you: +### Are you a programmer? + +If you're a professional programmer, you can jump right into our [**TypeScript Monaco editor**](https://bitbybit.dev/app?editor=typescript). Find the [**API Docs here**](https://docs.bitbybit.dev). + +To get started: + +* We offer [**NPM packages**](/learn/npm-packages/intro) that you can incorporate into your own websites. + * *Note: These packages do not include our proprietary advanced algorithms or the models available in the 3D Models section.* +* Check out how to set up our algorithms with [**Three.JS**](/learn/npm-packages/threejs/intro) or [**Babylon.JS**](/learn/npm-packages/babylonjs/intro). We include some complete powerful demos with explanations. +* Also consider our course: [**Introduction To Programming 3D In TypeScript**](https://bitbybit.dev/school/courses/introduction-to-programming-3d-in-typescript). +* Or, if you're familiar with BabylonJS: [**Bitbybit For BabylonJS Developers**](https://bitbybit.dev/school/courses/bitbybit-for-babylonjs-developers). + These courses explore how our algorithms can create 3D CAD applications. + ### Are you looking for ready-made 3D models? Many of our standalone 3D model configurators require a subscription to our paid plans: Silver or Gold. @@ -65,15 +91,3 @@ This platform is a great place to teach 3D computational design, mathematics, ge If you're familiar with our tools and interested in becoming a teacher in our School to share your knowledge, please reach out to us at [info@bitbybit.dev](mailto:info@bitbybit.dev). - -### Are you a programmer? - -If you're a professional programmer, you can jump right into our **TypeScript Monaco editor**. - -To get started: - -* Consider our course: [**Introduction To Programming 3D In TypeScript**](https://bitbybit.dev/school/courses/introduction-to-programming-3d-in-typescript). -* Or, if you're familiar with BabylonJS: [**Bitbybit For BabylonJS Developers**](https://bitbybit.dev/school/courses/bitbybit-for-babylonjs-developers). - These courses explore how our algorithms can create 3D CAD applications. -* We also offer [**NPM packages**](/learn/npm-packages/intro) that you can incorporate into your own websites. - * *Note: These packages do not include our proprietary advanced algorithms or the models available in the 3D Models section.* \ No newline at end of file diff --git a/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx b/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx new file mode 100644 index 00000000..a6ef106d --- /dev/null +++ b/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx @@ -0,0 +1,378 @@ +--- +sidebar_position: 3 +title: "Advanced Parametric 3D Model with Babylon.js & Bitbybit" +sidebar_label: "Parametric Model (Advanced)" +description: "Learn how to build an advanced, interactive parametric 3D model using Bitbybit with Babylon.js, OCCT, and a GUI for real-time control." +tags: [npm-packages, babylonjs] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import Admonition from '@theme/Admonition'; + +# Advanced Parametric 3D Model with Babylon.js & Bitbybit + +This tutorial explores a more advanced example of creating an interactive, parametric 3D model using Bitbybit's Babylon.js integration. We'll build a configurable 3D shape whose geometry is driven by parameters controlled via a GUI (Graphical User Interface), leveraging the OpenCascade (OCCT) kernel for robust CAD operations. + +You can see what the results of this app look like (rendered in Unreal Engine): +
+ +
+ +This example demonstrates: +* Setting up a Babylon.js scene. +* Initializing Bitbybit with specific geometry kernels (OCCT in this case). +* Creating parametric geometry using Bitbybit's OCCT API. +* Using `lil-gui` to create a simple UI for controlling model parameters. +* Dynamically updating the 3D model in response to UI changes. +* Implementing Level of Detail (LOD) for shape generation (a simpler version for quick updates, a more detailed one for finalization). +* Handling 3D model exports (STEP, STL, GLB). + +We are providing a higher level explanations of the codebase below, but for working reference always check this live example on StackBlitz, which, as platform evolves could change slightly. + +
+ +
+ +## Project Structure Overview + +This project is typically structured with: +* `index.html`: The main HTML file to host the canvas and load scripts. +* `style.css`: For basic styling of the page and UI elements like a loading spinner. +* `src/main.ts`: The main entry point of our application, orchestrating scene setup, Bitbybit initialization, GUI, and geometry updates. +* `src/models/`: A directory to define data structures for our model parameters (`model.ts`), kernel initialization options (`kernel-options.ts`), and current scene state (`current.ts`). +* `src/helpers/`: A directory for utility functions, broken down by responsibility: + * `init-threejs.ts`: Sets up the Babylon.js scene, camera, renderer, lights, and ground. + * `init-kernels.ts`: Handles the initialization of selected Bitbybit geometry kernels. + * `create-shape.ts`: Contains the core logic for generating the parametric 3D geometry using OCCT. This is where the detailed CAD operations happen. + * `create-gui.ts`: Sets up the `lil-gui` panel and links its controls to the model parameters and update functions. + * `downloads.ts`: Implements functions for exporting the model to various file formats. + * `gui-helper.ts`: Provides utility functions for managing the GUI state (e.g., showing/hiding a spinner, disabling/enabling GUI). +* `src/workers/`: Directory containing the individual worker files for each geometry kernel (e.g., `occt.worker.ts`). + + + For a detailed explanation of how to set up the Web Worker files (`occt.worker.ts`, `jscad.worker.ts`, `manifold.worker.ts`), please refer to our [**Three.js Integration Starter Tutorial**](./start-with-three-js). This current tutorial focuses on the application logic built upon that foundation. + + +## 1. HTML Setup (`index.html`) + +The HTML file is straightforward, providing the basic structure for our 3D application. + + +{` + + + + + + Bitbybit & ThreeJS All Kernels Example + + +
+ + + +`} + + +**Key elements:** +* A `` element where the Three.js scene will be rendered. +* A script tag to load our main application logic from `src/main.ts`. +* A simple Bitbybit logo link. + +## 2. Main Application Logic (`src/main.ts`) + +This is the heart of our application, orchestrating all the major components. + + +{`import './style.css'; +import { BitByBitBase, Inputs } from '@bitbybit-dev/threejs'; +import { model, type KernelOptions, current } from './models'; +import { + initKernels, + initThreeJS, + createGui, + createShapeLod1, + createShapeLod2, + createDirLightsAndGround, + disableGUI, + enableGUI, + hideSpinner, + showSpinner, + downloadGLB, + downloadSTL, + downloadStep, +} from './helpers'; + +// Configure which geometry kernels to enable +const kernelOptions: KernelOptions = { + enableOCCT: true, // We'll use OCCT for this parametric model + enableJSCAD: false, + enableManifold: false, +}; + +// Start the application +start(); + +async function start() { + // 1. Initialize the Three.js scene, camera, renderer, and basic lights/ground + const { scene } = initThreeJS(); + createDirLightsAndGround(scene, current); // 'current' stores references to scene objects + + // 2. Initialize Bitbybit with the Three.js scene and selected kernels + const bitbybit = new BitByBitBase(); + await initKernels(scene, bitbybit, kernelOptions); + + // Variables to hold the OCCT shape representation and shapes to clean up + let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; + let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; // Important for memory management + + // 3. Connect download functions to the model object (used by GUI) + model.downloadStep = () => downloadStep(bitbybit, finalShape); + model.downloadGLB = () => downloadGLB(scene); + model.downloadSTL = () => downloadSTL(scene); + + // 4. Create the GUI panel and link it to model parameters and the updateShape function + createGui(current, model, updateShape); + + // 5. Basic animation setup for rotating the model + const rotationSpeed = 0.0005; + const rotateGroup = () => { + if ( + model.rotationEnabled && + current.group1 && // Assumes group1, group2, dimensions are populated by createShape... + current.group2 && + current.dimensions + ) { + current.group1.rotation.y -= rotationSpeed; + current.group2.rotation.y -= rotationSpeed; + current.dimensions.rotation.y -= rotationSpeed; + } + }; + + // Hook into Three.js render loop for animation + scene.onBeforeRender = () => { + rotateGroup(); + }; + + // 6. Initial shape creation (Level of Detail 1 - faster preview) + finalShape = await createShapeLod1( + bitbybit, + scene, + model, // Current model parameters + shapesToClean, // Array to track OCCT shapes for later cleanup + current // Object to store references to current Three.js groups + ); + + // 7. Function to update the shape when GUI parameters change + async function updateShape(finish: boolean) { + disableGUI(); // Prevent further interaction during update + showSpinner(); // Indicate processing + + // Remove previous Three.js groups from the scene + current.group1?.traverse((obj) => scene?.remove(obj)); + current.group2?.traverse((obj) => scene?.remove(obj)); + current.dimensions?.traverse((obj) => scene?.remove(obj)); + // Note: OCCT shapes are cleaned up within createShapeLod1/2 via shapesToClean + + if (finish) { // 'finish' is true when "Finalize" button in GUI is clicked + finalShape = await createShapeLod2( // Higher detail + bitbybit, scene, model, shapesToClean, current + ); + } else { // Default update (e.g., from slider drag) + finalShape = await createShapeLod1( // Lower detail for speed + bitbybit, scene, model, shapesToClean, current + ); + } + + hideSpinner(); + enableGUI(); // Re-enable GUI + } +} +`} + + +**Explanation of `main.ts`:** + +1. **Imports:** Pulls in necessary Bitbybit modules, data models, and helper functions. +2. **`kernelOptions`:** Configures which Bitbybit geometry kernels (OCCT, JSCAD, Manifold) will be initialized. For this example, only OCCT is enabled as it's used for the parametric modeling. +3. **`start()` function:** The main asynchronous function that orchestrates the application. + * **`initThreeJS()` & `createDirLightsAndGround()`:** Sets up the basic Three.js environment. + * **`BitByBitBase` & `initKernels()`:** Initializes the Bitbybit library, linking it to the Three.js scene and loading the configured OCCT kernel worker. + * **`finalShape` & `shapesToClean`:** `finalShape` will hold a reference to the main OCCT geometry. `shapesToClean` is crucial for managing memory in OCCT by keeping track of intermediate shapes that need to be explicitly deleted after they are no + longer needed. + * **Download Functions:** Attaches download helper functions to the `model` object. These will be triggered by buttons in the GUI. + * **`createGui()`:** Initializes the `lil-gui` panel, connecting its controls to the properties defined in `model.ts` and providing the `updateShape` function as a callback when parameters change. + * **Rotation Logic:** Sets up a simple animation to rotate the generated 3D groups if `model.rotationEnabled` is true. + * **Initial Shape Creation:** Calls `createShapeLod1` to generate and draw the initial 3D model with a lower level of detail for faster startup. + * **`updateShape(finish: boolean)` function:** + * This function is called by the GUI when a parameter changes. + * It disables the GUI and shows a spinner to indicate processing. + * It removes the previously rendered Three.js `Group` objects (`current.group1`, `current.group2`, `current.dimensions`) from the scene. + * Crucially, the `createShapeLod1` and `createShapeLod2` functions are responsible for cleaning up OCCT shapes using the `shapesToClean` array. + * It then calls either `createShapeLod1` (for quick updates, e.g., during slider dragging) or `createShapeLod2` (for a more detailed final version when a "Finalize" button is clicked). + * Finally, it hides the spinner and re-enables the GUI. + +## 3. Helper Functions (`src/helpers/`) + +The `helpers` directory modularizes different aspects of the application. + +### `init-threejs.ts` & `init-kernels.ts` + +* **`initThreeJS()`:** Contains standard Three.js setup for scene, camera, WebGL renderer, basic lighting (HemisphereLight, DirectionalLights), a ground plane, and OrbitControls for camera manipulation. It also sets up the animation loop. +* **`createDirLightsAndGround()`:** A helper to specifically add directional lights (for shadows) and a ground plane to the scene. +* **`initKernels()`:** This function is responsible for: + 1. Conditionally creating Web Worker instances for each kernel specified in `kernelOptions`. + 2. Calling `bitbybit.init(...)` to link Bitbybit with the Three.js scene and these worker instances. + 3. Asynchronously waiting for each selected and available kernel to report that it has been fully initialized before resolving. This ensures kernels are ready before use. + + +{`// ... imports ... +export async function initKernels( + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions +): Promise<{ message: string }> { + // 1. Conditionally create worker instances based on options + // (e.g., new Worker(new URL('../workers/occt.worker.ts', import.meta.url), ...)) + // 2. Initialize Bitbybit with scene and worker instances + // await bitbybit.init(scene, occtWorker, jscadWorker, manifoldWorker); + // 3. Collect and await promises for kernel initializations + // (e.g., using firstValueFrom on bitbybit.occtWorkerManager.occWorkerState$) + // 4. Resolve once selected kernels are ready + return { message: "Kernels initialized" }; +}`} + + +### `create-shape.ts` (Core Geometry Logic) + +This is the most complex file, containing the specific OCCT operations to generate the parametric shape. It typically includes: + +* Functions like `createShapeLod1` (Level of Detail 1 - faster, less detailed) and `createShapeLod2` (Level of Detail 2 - slower, more detailed). +* **Memory Management:** Before creating new OCCT geometry, it calls `bitbybit.occt.deleteShapes({ shapes: shapesToClean })` to free memory used by previous intermediate OCCT shapes. New intermediate shapes created are added to `shapesToClean`. +* **Geometric Operations:** Uses various functions from `bitbybit.occt.shapes`, `bitbybit.occt.operations`, `bitbybit.occt.transforms`, etc., to: + * Create primitive wires (e.g., ellipses using `wire.createEllipseWire`). + * Transform these wires (rotate, translate). + * Loft surfaces between wires (`operations.loft`). + * Offset faces (`operations.offset`). + * Subdivide faces into patterns (e.g., `face.subdivideToHexagonWires`). + * Create solids from these operations. + * Create compound shapes. +* **Dimensioning (Optional):** The example includes logic to create OCCT dimension entities (`dimensions.simpleLinearLengthDimension`, `dimensions.simpleAngularDimension`) which are then also drawn. +* **Drawing:** + * It uses `bitbybit.draw.drawAnyAsync({ entity: occtShape, options: drawOptions })` to convert the final OCCT shapes into Three.js meshes and add them to the scene. + * It often creates separate Three.js `Group` objects for different parts of the model (e.g., `current.group1`, `current.group2`) for easier management and independent animation. + * Materials (`MeshPhongMaterial`) are created and applied. + + + The specific OCCT functions used (like `loft`, `offset`, `subdivideToHexagonWires`, `makeCompound`) are powerful CAD operations. Understanding their parameters and behavior is key to creating complex parametric models with OCCT. Refer to the Bitbybit API documentation for details on each. + + +### `create-gui.ts` + +This file uses the `lil-gui` library to create a user interface panel. + + +{`import GUI from 'lil-gui'; +// ... other imports ... +export const createGui = ( + current: Current, + model: Model, + updateShape: (finish: boolean) => void +) => { + model.update = () => updateShape(true); // Link "Finalize" button to LOD2 update + const gui = new GUI(); + current.gui = gui; // Store reference to GUI + + // Add controls for each parameter in the 'model' object + gui.add(model, 'uHex', 1, 14, 1).name('Hexagons U').onFinishChange(() => updateShape(false)); + // ... more gui.add() calls for vHex, height, colors, etc. ... + // .onFinishChange(() => updateShape(false)) calls LOD1 update for sliders + // .onChange(...) for color pickers to update material colors directly + + gui.add(model, 'update').name('Finalize'); // Button to trigger LOD2 update + gui.add(model, 'downloadSTL').name('Download STL'); + // ... download buttons ... +};`} + + +* It creates a new `GUI` instance. +* For each parameter in the `model` object (defined in `models/model.ts`), it adds a corresponding control (slider, color picker, checkbox). +* `onFinishChange` (for sliders) or `onChange` (for continuous updates like color pickers) callbacks are used to: + * Update the `model` object with the new parameter value. + * Call the `updateShape(false)` function (from `main.ts`) to regenerate the geometry with LOD1 (quick preview). +* A "Finalize" button calls `updateShape(true)` to generate the high-detail LOD2 version. +* Buttons are added to trigger the download functions. + +### `downloads.ts` + +Contains functions to export the generated 3D model: +* `downloadStep()`: Uses `bitbybit.occt.io.saveShapeSTEP()` to save the `finalShape` (the OCCT compound) as a STEP file. It includes a mirroring transformation, which might be necessary due to coordinate system differences. +* `downloadSTL()`: Uses `THREE.STLExporter` to export the entire Three.js scene as an STL file. +* `downloadGLB()`: Uses `THREE.GLTFExporter` to export the Three.js scene as a GLB (binary GLTF) file. + +### `gui-helper.ts` + +Simple utility functions to manage the UI during processing: +* `disableGUI()` / `enableGUI()`: Make the `lil-gui` panel non-interactive and visually dimmed during updates. +* `showSpinner()` / `hideSpinner()`: Display or hide a simple CSS-based loading spinner overlay. + +## 4. Data Models (`src/models/`) + +* **`current.ts`:** Defines a `Current` type and an instance to hold references to currently active Three.js objects (like `Group`s for different model parts, lights, ground) and the `lil-gui` instance. This helps in easily accessing and manipulating these objects from different parts of the code. +* **`kernel-options.ts`:** Defines the `KernelOptions` interface used in `main.ts` to specify which geometry kernels (OCCT, JSCAD, Manifold) should be initialized by Bitbybit. +* **`model.ts`:** Defines the `Model` type and a default `model` object. This object holds all the parameters that control the geometry of the 3D shape (e.g., `uHex`, `vHex`, `height`, colors, precision). The `lil-gui` directly manipulates this object. It also includes optional function signatures for `update` and download methods, which are later assigned in `main.ts` and `create-gui.ts`. + +## 5. Styles (`style.css`) + +The `style.css` file provides basic styling: +* Resets body margin and sets a background color. +* Styles for the Bitbybit logo link. +* CSS for the `lds-ellipsis` loading spinner animation. + +## Conclusion + +This advanced example showcases a more complete workflow for creating parametric and interactive 3D applications with Bitbybit and Three.js. Key takeaways include: + +* **Modular Code Structure:** Separating concerns into helper functions and data models makes the project more manageable. +* **Parametric Control:** Using a data model (`model.ts`) and a GUI (`lil-gui`) to drive geometry changes. +* **Level of Detail (LOD):** Implementing different detail levels for shape generation (`createShapeLod1` vs. `createShapeLod2`) can significantly improve performance during interactive adjustments. +* **OCCT Memory Management:** The practice of tracking and deleting intermediate OCCT shapes (`shapesToClean`) is crucial for preventing memory leaks in complex CAD operations. +* **Kernel Initialization:** Selectively initializing only the necessary geometry kernels. +* **Export Functionality:** Integrating common 3D file export options. + +By understanding these components and their interactions, you can build sophisticated and highly configurable 3D experiences on the web. \ No newline at end of file diff --git a/docs/learn/npm-packages/babylonjs/intro.md b/docs/learn/npm-packages/babylonjs/intro.md index 391d12e9..6aa7e2c4 100644 --- a/docs/learn/npm-packages/babylonjs/intro.md +++ b/docs/learn/npm-packages/babylonjs/intro.md @@ -3,7 +3,7 @@ sidebar_position: 1 title: "Introduction to Babylon.js" sidebar_label: "Babylon.js Overview" description: "An overview of Babylon.js, a powerful and easy-to-use WebGL-based 3D game engine, and its integration with Bitbybit." -tags: [babylonjs, webgl, 3d graphics, game engine, typescript, microsoft, bitbybit integration] +tags: [npm-packages, babylonjs] --- import Admonition from '@theme/Admonition'; diff --git a/docs/learn/npm-packages/threejs/advanced-parametric-3d-model.mdx b/docs/learn/npm-packages/threejs/advanced-parametric-3d-model.mdx new file mode 100644 index 00000000..ea75baae --- /dev/null +++ b/docs/learn/npm-packages/threejs/advanced-parametric-3d-model.mdx @@ -0,0 +1,378 @@ +--- +sidebar_position: 3 +title: "Advanced Parametric 3D Model with Three.js & Bitbybit" +sidebar_label: "Parametric Model (Advanced)" +description: "Learn how to build an advanced, interactive parametric 3D model using Bitbybit with Three.js, OCCT, and a GUI for real-time control." +tags: [npm-packages, threejs] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import Admonition from '@theme/Admonition'; + +# Advanced Parametric 3D Model with Three.js & Bitbybit + +This tutorial explores a more advanced example of creating an interactive, parametric 3D model using Bitbybit's Three.js integration. We'll build a configurable 3D shape whose geometry is driven by parameters controlled via a GUI (Graphical User Interface), leveraging the OpenCascade (OCCT) kernel for robust CAD operations. + +You can see what the results of this app look like (rendered in Unreal Engine): +
+ +
+ +This example demonstrates: +* Setting up a Three.js scene. +* Initializing Bitbybit with specific geometry kernels (OCCT in this case). +* Creating parametric geometry using Bitbybit's OCCT API. +* Using `lil-gui` to create a simple UI for controlling model parameters. +* Dynamically updating the 3D model in response to UI changes. +* Implementing Level of Detail (LOD) for shape generation (a simpler version for quick updates, a more detailed one for finalization). +* Handling 3D model exports (STEP, STL, GLB). + +We are providing a higher level explanations of the codebase below, but for working reference always check this live example on StackBlitz, which, as platform evolves could change slightly. + +
+ +
+ +## Project Structure Overview + +This project is typically structured with: +* `index.html`: The main HTML file to host the canvas and load scripts. +* `style.css`: For basic styling of the page and UI elements like a loading spinner. +* `src/main.ts`: The main entry point of our application, orchestrating scene setup, Bitbybit initialization, GUI, and geometry updates. +* `src/models/`: A directory to define data structures for our model parameters (`model.ts`), kernel initialization options (`kernel-options.ts`), and current scene state (`current.ts`). +* `src/helpers/`: A directory for utility functions, broken down by responsibility: + * `init-threejs.ts`: Sets up the Three.js scene, camera, renderer, lights, and ground. + * `init-kernels.ts`: Handles the initialization of selected Bitbybit geometry kernels. + * `create-shape.ts`: Contains the core logic for generating the parametric 3D geometry using OCCT. This is where the detailed CAD operations happen. + * `create-gui.ts`: Sets up the `lil-gui` panel and links its controls to the model parameters and update functions. + * `downloads.ts`: Implements functions for exporting the model to various file formats. + * `gui-helper.ts`: Provides utility functions for managing the GUI state (e.g., showing/hiding a spinner, disabling/enabling GUI). +* `src/workers/`: Directory containing the individual worker files for each geometry kernel (e.g., `occt.worker.ts`). + + + For a detailed explanation of how to set up the Web Worker files (`occt.worker.ts`, `jscad.worker.ts`, `manifold.worker.ts`), please refer to our [**Three.js Integration Starter Tutorial**](./start-with-three-js). This current tutorial focuses on the application logic built upon that foundation. + + +## 1. HTML Setup (`index.html`) + +The HTML file is straightforward, providing the basic structure for our 3D application. + + +{` + + + + + + Bitbybit & ThreeJS All Kernels Example + + + + + + +`} + + +**Key elements:** +* A `` element where the Three.js scene will be rendered. +* A script tag to load our main application logic from `src/main.ts`. +* A simple Bitbybit logo link. + +## 2. Main Application Logic (`src/main.ts`) + +This is the heart of our application, orchestrating all the major components. + + +{`import './style.css'; +import { BitByBitBase, Inputs } from '@bitbybit-dev/threejs'; +import { model, type KernelOptions, current } from './models'; +import { + initKernels, + initThreeJS, + createGui, + createShapeLod1, + createShapeLod2, + createDirLightsAndGround, + disableGUI, + enableGUI, + hideSpinner, + showSpinner, + downloadGLB, + downloadSTL, + downloadStep, +} from './helpers'; + +// Configure which geometry kernels to enable +const kernelOptions: KernelOptions = { + enableOCCT: true, // We'll use OCCT for this parametric model + enableJSCAD: false, + enableManifold: false, +}; + +// Start the application +start(); + +async function start() { + // 1. Initialize the Three.js scene, camera, renderer, and basic lights/ground + const { scene } = initThreeJS(); + createDirLightsAndGround(scene, current); // 'current' stores references to scene objects + + // 2. Initialize Bitbybit with the Three.js scene and selected kernels + const bitbybit = new BitByBitBase(); + await initKernels(scene, bitbybit, kernelOptions); + + // Variables to hold the OCCT shape representation and shapes to clean up + let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; + let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; // Important for memory management + + // 3. Connect download functions to the model object (used by GUI) + model.downloadStep = () => downloadStep(bitbybit, finalShape); + model.downloadGLB = () => downloadGLB(scene); + model.downloadSTL = () => downloadSTL(scene); + + // 4. Create the GUI panel and link it to model parameters and the updateShape function + createGui(current, model, updateShape); + + // 5. Basic animation setup for rotating the model + const rotationSpeed = 0.0005; + const rotateGroup = () => { + if ( + model.rotationEnabled && + current.group1 && // Assumes group1, group2, dimensions are populated by createShape... + current.group2 && + current.dimensions + ) { + current.group1.rotation.y -= rotationSpeed; + current.group2.rotation.y -= rotationSpeed; + current.dimensions.rotation.y -= rotationSpeed; + } + }; + + // Hook into Three.js render loop for animation + scene.onBeforeRender = () => { + rotateGroup(); + }; + + // 6. Initial shape creation (Level of Detail 1 - faster preview) + finalShape = await createShapeLod1( + bitbybit, + scene, + model, // Current model parameters + shapesToClean, // Array to track OCCT shapes for later cleanup + current // Object to store references to current Three.js groups + ); + + // 7. Function to update the shape when GUI parameters change + async function updateShape(finish: boolean) { + disableGUI(); // Prevent further interaction during update + showSpinner(); // Indicate processing + + // Remove previous Three.js groups from the scene + current.group1?.traverse((obj) => scene?.remove(obj)); + current.group2?.traverse((obj) => scene?.remove(obj)); + current.dimensions?.traverse((obj) => scene?.remove(obj)); + // Note: OCCT shapes are cleaned up within createShapeLod1/2 via shapesToClean + + if (finish) { // 'finish' is true when "Finalize" button in GUI is clicked + finalShape = await createShapeLod2( // Higher detail + bitbybit, scene, model, shapesToClean, current + ); + } else { // Default update (e.g., from slider drag) + finalShape = await createShapeLod1( // Lower detail for speed + bitbybit, scene, model, shapesToClean, current + ); + } + + hideSpinner(); + enableGUI(); // Re-enable GUI + } +} +`} + + +**Explanation of `main.ts`:** + +1. **Imports:** Pulls in necessary Bitbybit modules, data models, and helper functions. +2. **`kernelOptions`:** Configures which Bitbybit geometry kernels (OCCT, JSCAD, Manifold) will be initialized. For this example, only OCCT is enabled as it's used for the parametric modeling. +3. **`start()` function:** The main asynchronous function that orchestrates the application. + * **`initThreeJS()` & `createDirLightsAndGround()`:** Sets up the basic Three.js environment. + * **`BitByBitBase` & `initKernels()`:** Initializes the Bitbybit library, linking it to the Three.js scene and loading the configured OCCT kernel worker. + * **`finalShape` & `shapesToClean`:** `finalShape` will hold a reference to the main OCCT geometry. `shapesToClean` is crucial for managing memory in OCCT by keeping track of intermediate shapes that need to be explicitly deleted after they are no + longer needed. + * **Download Functions:** Attaches download helper functions to the `model` object. These will be triggered by buttons in the GUI. + * **`createGui()`:** Initializes the `lil-gui` panel, connecting its controls to the properties defined in `model.ts` and providing the `updateShape` function as a callback when parameters change. + * **Rotation Logic:** Sets up a simple animation to rotate the generated 3D groups if `model.rotationEnabled` is true. + * **Initial Shape Creation:** Calls `createShapeLod1` to generate and draw the initial 3D model with a lower level of detail for faster startup. + * **`updateShape(finish: boolean)` function:** + * This function is called by the GUI when a parameter changes. + * It disables the GUI and shows a spinner to indicate processing. + * It removes the previously rendered Three.js `Group` objects (`current.group1`, `current.group2`, `current.dimensions`) from the scene. + * Crucially, the `createShapeLod1` and `createShapeLod2` functions are responsible for cleaning up OCCT shapes using the `shapesToClean` array. + * It then calls either `createShapeLod1` (for quick updates, e.g., during slider dragging) or `createShapeLod2` (for a more detailed final version when a "Finalize" button is clicked). + * Finally, it hides the spinner and re-enables the GUI. + +## 3. Helper Functions (`src/helpers/`) + +The `helpers` directory modularizes different aspects of the application. + +### `init-threejs.ts` & `init-kernels.ts` + +* **`initThreeJS()`:** Contains standard Three.js setup for scene, camera, WebGL renderer, basic lighting (HemisphereLight, DirectionalLights), a ground plane, and OrbitControls for camera manipulation. It also sets up the animation loop. +* **`createDirLightsAndGround()`:** A helper to specifically add directional lights (for shadows) and a ground plane to the scene. +* **`initKernels()`:** This function is responsible for: + 1. Conditionally creating Web Worker instances for each kernel specified in `kernelOptions`. + 2. Calling `bitbybit.init(...)` to link Bitbybit with the Three.js scene and these worker instances. + 3. Asynchronously waiting for each selected and available kernel to report that it has been fully initialized before resolving. This ensures kernels are ready before use. + + +{`// ... imports ... +export async function initKernels( + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions +): Promise<{ message: string }> { + // 1. Conditionally create worker instances based on options + // (e.g., new Worker(new URL('../workers/occt.worker.ts', import.meta.url), ...)) + // 2. Initialize Bitbybit with scene and worker instances + // await bitbybit.init(scene, occtWorker, jscadWorker, manifoldWorker); + // 3. Collect and await promises for kernel initializations + // (e.g., using firstValueFrom on bitbybit.occtWorkerManager.occWorkerState$) + // 4. Resolve once selected kernels are ready + return { message: "Kernels initialized" }; +}`} + + +### `create-shape.ts` (Core Geometry Logic) + +This is the most complex file, containing the specific OCCT operations to generate the parametric shape. It typically includes: + +* Functions like `createShapeLod1` (Level of Detail 1 - faster, less detailed) and `createShapeLod2` (Level of Detail 2 - slower, more detailed). +* **Memory Management:** Before creating new OCCT geometry, it calls `bitbybit.occt.deleteShapes({ shapes: shapesToClean })` to free memory used by previous intermediate OCCT shapes. New intermediate shapes created are added to `shapesToClean`. +* **Geometric Operations:** Uses various functions from `bitbybit.occt.shapes`, `bitbybit.occt.operations`, `bitbybit.occt.transforms`, etc., to: + * Create primitive wires (e.g., ellipses using `wire.createEllipseWire`). + * Transform these wires (rotate, translate). + * Loft surfaces between wires (`operations.loft`). + * Offset faces (`operations.offset`). + * Subdivide faces into patterns (e.g., `face.subdivideToHexagonWires`). + * Create solids from these operations. + * Create compound shapes. +* **Dimensioning (Optional):** The example includes logic to create OCCT dimension entities (`dimensions.simpleLinearLengthDimension`, `dimensions.simpleAngularDimension`) which are then also drawn. +* **Drawing:** + * It uses `bitbybit.draw.drawAnyAsync({ entity: occtShape, options: drawOptions })` to convert the final OCCT shapes into Three.js meshes and add them to the scene. + * It often creates separate Three.js `Group` objects for different parts of the model (e.g., `current.group1`, `current.group2`) for easier management and independent animation. + * Materials (`MeshPhongMaterial`) are created and applied. + + + The specific OCCT functions used (like `loft`, `offset`, `subdivideToHexagonWires`, `makeCompound`) are powerful CAD operations. Understanding their parameters and behavior is key to creating complex parametric models with OCCT. Refer to the Bitbybit API documentation for details on each. + + +### `create-gui.ts` + +This file uses the `lil-gui` library to create a user interface panel. + + +{`import GUI from 'lil-gui'; +// ... other imports ... +export const createGui = ( + current: Current, + model: Model, + updateShape: (finish: boolean) => void +) => { + model.update = () => updateShape(true); // Link "Finalize" button to LOD2 update + const gui = new GUI(); + current.gui = gui; // Store reference to GUI + + // Add controls for each parameter in the 'model' object + gui.add(model, 'uHex', 1, 14, 1).name('Hexagons U').onFinishChange(() => updateShape(false)); + // ... more gui.add() calls for vHex, height, colors, etc. ... + // .onFinishChange(() => updateShape(false)) calls LOD1 update for sliders + // .onChange(...) for color pickers to update material colors directly + + gui.add(model, 'update').name('Finalize'); // Button to trigger LOD2 update + gui.add(model, 'downloadSTL').name('Download STL'); + // ... download buttons ... +};`} + + +* It creates a new `GUI` instance. +* For each parameter in the `model` object (defined in `models/model.ts`), it adds a corresponding control (slider, color picker, checkbox). +* `onFinishChange` (for sliders) or `onChange` (for continuous updates like color pickers) callbacks are used to: + * Update the `model` object with the new parameter value. + * Call the `updateShape(false)` function (from `main.ts`) to regenerate the geometry with LOD1 (quick preview). +* A "Finalize" button calls `updateShape(true)` to generate the high-detail LOD2 version. +* Buttons are added to trigger the download functions. + +### `downloads.ts` + +Contains functions to export the generated 3D model: +* `downloadStep()`: Uses `bitbybit.occt.io.saveShapeSTEP()` to save the `finalShape` (the OCCT compound) as a STEP file. It includes a mirroring transformation, which might be necessary due to coordinate system differences. +* `downloadSTL()`: Uses `THREE.STLExporter` to export the entire Three.js scene as an STL file. +* `downloadGLB()`: Uses `THREE.GLTFExporter` to export the Three.js scene as a GLB (binary GLTF) file. + +### `gui-helper.ts` + +Simple utility functions to manage the UI during processing: +* `disableGUI()` / `enableGUI()`: Make the `lil-gui` panel non-interactive and visually dimmed during updates. +* `showSpinner()` / `hideSpinner()`: Display or hide a simple CSS-based loading spinner overlay. + +## 4. Data Models (`src/models/`) + +* **`current.ts`:** Defines a `Current` type and an instance to hold references to currently active Three.js objects (like `Group`s for different model parts, lights, ground) and the `lil-gui` instance. This helps in easily accessing and manipulating these objects from different parts of the code. +* **`kernel-options.ts`:** Defines the `KernelOptions` interface used in `main.ts` to specify which geometry kernels (OCCT, JSCAD, Manifold) should be initialized by Bitbybit. +* **`model.ts`:** Defines the `Model` type and a default `model` object. This object holds all the parameters that control the geometry of the 3D shape (e.g., `uHex`, `vHex`, `height`, colors, precision). The `lil-gui` directly manipulates this object. It also includes optional function signatures for `update` and download methods, which are later assigned in `main.ts` and `create-gui.ts`. + +## 5. Styles (`style.css`) + +The `style.css` file provides basic styling: +* Resets body margin and sets a background color. +* Styles for the Bitbybit logo link. +* CSS for the `lds-ellipsis` loading spinner animation. + +## Conclusion + +This advanced example showcases a more complete workflow for creating parametric and interactive 3D applications with Bitbybit and Three.js. Key takeaways include: + +* **Modular Code Structure:** Separating concerns into helper functions and data models makes the project more manageable. +* **Parametric Control:** Using a data model (`model.ts`) and a GUI (`lil-gui`) to drive geometry changes. +* **Level of Detail (LOD):** Implementing different detail levels for shape generation (`createShapeLod1` vs. `createShapeLod2`) can significantly improve performance during interactive adjustments. +* **OCCT Memory Management:** The practice of tracking and deleting intermediate OCCT shapes (`shapesToClean`) is crucial for preventing memory leaks in complex CAD operations. +* **Kernel Initialization:** Selectively initializing only the necessary geometry kernels. +* **Export Functionality:** Integrating common 3D file export options. + +By understanding these components and their interactions, you can build sophisticated and highly configurable 3D experiences on the web. \ No newline at end of file diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index 8c522e80..66ec0563 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -1,6 +1,5 @@ import type {ReactNode} from "react"; import clsx from "clsx"; -import Link from "@docusaurus/Link"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; import Layout from "@theme/Layout"; import HomepageFeatures from "@site/src/components/HomepageFeatures"; diff --git a/examples/vite/threejs/hex-shell/index.html b/examples/vite/threejs/hex-shell/index.html index c7a81179..36144cab 100644 --- a/examples/vite/threejs/hex-shell/index.html +++ b/examples/vite/threejs/hex-shell/index.html @@ -4,7 +4,7 @@ - Bitbybit & ThreeJS CAD Example + Bitbybit & ThreeJS All Kernels Example
support the mission - subscribe
-
+ diff --git a/examples/vite/threejs/hex-shell/package-lock.json b/examples/vite/threejs/hex-shell/package-lock.json index 21240e3b..cf5eb074 100644 --- a/examples/vite/threejs/hex-shell/package-lock.json +++ b/examples/vite/threejs/hex-shell/package-lock.json @@ -1,7 +1,7 @@ { "name": "vite-typescript-starter", "version": "0.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -20,12 +20,14 @@ "node_modules/@bitbybit-dev/base": { "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-0.20.4.tgz", - "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==" + "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==", + "license": "MIT" }, "node_modules/@bitbybit-dev/core": { "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-0.20.4.tgz", "integrity": "sha512-T2hOHzvI+ikNxQRvhDyk/TeMCBhjZPY+wLmRSbYHiWnNGP5+3GCesZyb672XfEwPIWRH2kBS4vyp9R9fRnJujQ==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4", "@bitbybit-dev/jscad-worker": "0.20.4", @@ -40,6 +42,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-0.20.4.tgz", "integrity": "sha512-e7/7Ag796rwn58H6Nu0lzhDkim+rJTqMWCqFZquNswoX2qqZXCv8azyOFE2LqfTvyIsEeJr/VEWIy2nvmtJnmg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4", "@jscad/3mf-serializer": "2.1.12", @@ -53,6 +56,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-0.20.4.tgz", "integrity": "sha512-DsjL2YO6urR8B/8LKYRrk4q9hAJE8oB+e5m+LDDBXbl7Vl0CHdC5ogPm6w07RcAHdSbMJouf2Ow7nGP/oOcjEg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/jscad": "0.20.4", "rxjs": "7.5.5" @@ -62,6 +66,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-0.20.4.tgz", "integrity": "sha512-rEGO8wOd/RUWPIRWdyE70w79JXhQ1iV6mACBuOH8/UD7+vf9wkk3KLWAYCzVPJP1nvx4+/SKCvU7e1JxEzq0Qw==", + "license": "MIT", "dependencies": { "manifold-3d": "3.0.0" } @@ -70,6 +75,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-0.20.4.tgz", "integrity": "sha512-mwU87fg8M3p472dn/RiuveiPtq/IuOWCcoG0uismEE2g+rnciMrCSUSkXMkfXDCk9l0ZqoVfYg+dHVx0KBHBUg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/manifold": "0.20.4", "rxjs": "7.5.5" @@ -79,6 +85,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-0.20.4.tgz", "integrity": "sha512-Lxx4wsToS3EIiS2L3KjUh6Jpgvxsyxbh2Jt4raWhIbD9PSy1zRfMww9K7xFlawSMgq12WN1a0lV8ydKs1f5/zw==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4" } @@ -87,6 +94,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-0.20.4.tgz", "integrity": "sha512-R5fiGteBSitv89Pz3XVgs+Vv0c1uH477oihkw1EUWLDTa7ypiXOohpjlKYFd/qAy3QCe8GEF3jDT+TK3dsQ+FA==", + "license": "MIT", "dependencies": { "@bitbybit-dev/occt": "0.20.4", "rxjs": "7.5.5" @@ -96,6 +104,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-0.20.4.tgz", "integrity": "sha512-kGRZDQFCmN6qEWeR62bniTT+kMJTzheRA0l3AIUOFzgKX5ZMxeV0lUv6gZgLnKHOLniC+Aa1o7p2uLQjGjD2MA==", + "license": "MIT", "dependencies": { "@bitbybit-dev/core": "0.20.4", "three": "0.176.0" @@ -105,12 +114,13 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ "ppc64" ], @@ -124,9 +134,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", "cpu": [ "arm" ], @@ -140,9 +150,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", "cpu": [ "arm64" ], @@ -156,9 +166,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", "cpu": [ "x64" ], @@ -172,9 +182,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", "cpu": [ "arm64" ], @@ -188,9 +198,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", "cpu": [ "x64" ], @@ -204,9 +214,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", "cpu": [ "arm64" ], @@ -220,9 +230,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", "cpu": [ "x64" ], @@ -236,9 +246,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", "cpu": [ "arm" ], @@ -252,9 +262,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", "cpu": [ "arm64" ], @@ -268,9 +278,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", "cpu": [ "ia32" ], @@ -284,9 +294,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", "cpu": [ "loong64" ], @@ -300,9 +310,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", "cpu": [ "mips64el" ], @@ -316,9 +326,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", "cpu": [ "ppc64" ], @@ -332,9 +342,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", "cpu": [ "riscv64" ], @@ -348,9 +358,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", "cpu": [ "s390x" ], @@ -364,9 +374,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", "cpu": [ "x64" ], @@ -380,9 +390,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", "cpu": [ "arm64" ], @@ -396,9 +406,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", "cpu": [ "x64" ], @@ -412,9 +422,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", "cpu": [ "arm64" ], @@ -428,9 +438,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", "cpu": [ "x64" ], @@ -444,9 +454,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", "cpu": [ "x64" ], @@ -460,9 +470,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", "cpu": [ "arm64" ], @@ -476,9 +486,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", "cpu": [ "ia32" ], @@ -492,9 +502,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", "cpu": [ "x64" ], @@ -511,6 +521,7 @@ "version": "2.1.12", "resolved": "https://registry.npmjs.org/@jscad/3mf-serializer/-/3mf-serializer-2.1.12.tgz", "integrity": "sha512-+rxAIKIHCpaplupwwsdXtG1IdimPXFFB45nrjy6gdFHi36bEQW6y/RQD/ngenRiKnYSxu7/M0LatHcjve8z64A==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3", @@ -521,12 +532,14 @@ "node_modules/@jscad/array-utils": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@jscad/array-utils/-/array-utils-2.1.4.tgz", - "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==" + "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==", + "license": "MIT" }, "node_modules/@jscad/dxf-serializer": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/@jscad/dxf-serializer/-/dxf-serializer-2.1.18.tgz", "integrity": "sha512-T5Qe2jbEphcWAk7GaOY8PCMD4DPhTm6gWk/MPJCExphhnUwJqcU/1RiMb5hiD+N6hHzmlxD59I8QTjlp9LbLSA==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3" @@ -535,17 +548,20 @@ "node_modules/@jscad/io-utils": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/@jscad/io-utils/-/io-utils-2.0.28.tgz", - "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==" + "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==", + "license": "MIT" }, "node_modules/@jscad/modeling": { "version": "2.12.3", "resolved": "https://registry.npmjs.org/@jscad/modeling/-/modeling-2.12.3.tgz", - "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==" + "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==", + "license": "MIT" }, "node_modules/@jscad/stl-serializer": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/@jscad/stl-serializer/-/stl-serializer-2.1.18.tgz", "integrity": "sha512-pz++TRjHI7jBPnnxQUi4B/uYUG3yCDsKlw8+xL2kumwjb+auc6Ng6Rnr/GqUTkgHrnGut08wg/8AekyWjvBwYg==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3" @@ -555,6 +571,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -566,6 +583,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -574,9 +592,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz", - "integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", "cpu": [ "arm" ], @@ -587,9 +605,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz", - "integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", "cpu": [ "arm64" ], @@ -600,9 +618,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz", - "integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", "cpu": [ "arm64" ], @@ -613,9 +631,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz", - "integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", "cpu": [ "x64" ], @@ -626,9 +644,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz", - "integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", "cpu": [ "arm64" ], @@ -639,9 +657,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz", - "integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", "cpu": [ "x64" ], @@ -652,9 +670,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz", - "integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", "cpu": [ "arm" ], @@ -665,9 +683,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz", - "integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", "cpu": [ "arm" ], @@ -678,9 +696,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz", - "integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", "cpu": [ "arm64" ], @@ -691,9 +709,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz", - "integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", "cpu": [ "arm64" ], @@ -704,9 +722,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz", - "integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", "cpu": [ "loong64" ], @@ -717,9 +735,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz", - "integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", "cpu": [ "ppc64" ], @@ -730,9 +748,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz", - "integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", "cpu": [ "riscv64" ], @@ -743,9 +761,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz", - "integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", "cpu": [ "riscv64" ], @@ -756,9 +774,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz", - "integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", "cpu": [ "s390x" ], @@ -769,9 +787,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz", - "integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", "cpu": [ "x64" ], @@ -782,9 +800,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz", - "integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", "cpu": [ "x64" ], @@ -795,9 +813,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz", - "integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", "cpu": [ "arm64" ], @@ -808,9 +826,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz", - "integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", "cpu": [ "ia32" ], @@ -821,9 +839,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz", - "integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", "cpu": [ "x64" ], @@ -837,7 +855,8 @@ "version": "23.1.3", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.7", @@ -846,16 +865,18 @@ "dev": true }, "node_modules/@types/stats.js": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", - "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==", - "dev": true + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/three": { "version": "0.176.0", "resolved": "https://registry.npmjs.org/@types/three/-/three-0.176.0.tgz", "integrity": "sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw==", "dev": true, + "license": "MIT", "dependencies": { "@dimforge/rapier3d-compat": "^0.12.0", "@tweenjs/tween.js": "~23.1.3", @@ -870,33 +891,37 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/webxr": { "version": "0.5.22", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.22.tgz", "integrity": "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webgpu/types": { "version": "0.1.60", "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/esbuild": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, "bin": { @@ -906,31 +931,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.4", - "@esbuild/android-arm": "0.25.4", - "@esbuild/android-arm64": "0.25.4", - "@esbuild/android-x64": "0.25.4", - "@esbuild/darwin-arm64": "0.25.4", - "@esbuild/darwin-x64": "0.25.4", - "@esbuild/freebsd-arm64": "0.25.4", - "@esbuild/freebsd-x64": "0.25.4", - "@esbuild/linux-arm": "0.25.4", - "@esbuild/linux-arm64": "0.25.4", - "@esbuild/linux-ia32": "0.25.4", - "@esbuild/linux-loong64": "0.25.4", - "@esbuild/linux-mips64el": "0.25.4", - "@esbuild/linux-ppc64": "0.25.4", - "@esbuild/linux-riscv64": "0.25.4", - "@esbuild/linux-s390x": "0.25.4", - "@esbuild/linux-x64": "0.25.4", - "@esbuild/netbsd-arm64": "0.25.4", - "@esbuild/netbsd-x64": "0.25.4", - "@esbuild/openbsd-arm64": "0.25.4", - "@esbuild/openbsd-x64": "0.25.4", - "@esbuild/sunos-x64": "0.25.4", - "@esbuild/win32-arm64": "0.25.4", - "@esbuild/win32-ia32": "0.25.4", - "@esbuild/win32-x64": "0.25.4" + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" } }, "node_modules/fdir": { @@ -950,12 +975,14 @@ "node_modules/fflate": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", - "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" + "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==", + "license": "MIT" }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", "optional": true }, "node_modules/fsevents": { @@ -976,6 +1003,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -984,6 +1012,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.1.0.tgz", "integrity": "sha512-gHfV1IYqH8uJHYVTs8BJX1XKy2/rR93+f8QQi0xhx95aCiXn1ettYAd5T+7FU6wfqyDoX/wy0pm/fL3jOKJ9Lg==", + "license": "MIT", "dependencies": { "@jsep-plugin/assignment": "^1.2.1", "@jsep-plugin/regex": "^1.0.3", @@ -1000,23 +1029,27 @@ "node_modules/lil-gui": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.20.0.tgz", - "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==" + "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==", + "license": "MIT" }, "node_modules/manifold-3d": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/manifold-3d/-/manifold-3d-3.0.0.tgz", - "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==" + "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==", + "license": "Apache-2.0" }, "node_modules/meshoptimizer": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nan": { "version": "2.22.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "license": "MIT", "optional": true }, "node_modules/nanoid": { @@ -1041,6 +1074,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/onml/-/onml-1.2.0.tgz", "integrity": "sha512-olqYAg18XoHAhm7tK9DdBCOVdts70DGmMgCNLOWyqZokht2utgGSKBB4JHi6pBZpmioAhcYlxK+91L3tsrz+GA==", + "license": "MIT", "dependencies": { "sax": "^1.2.1" } @@ -1092,9 +1126,9 @@ } }, "node_modules/rollup": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", - "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", "dev": true, "dependencies": { "@types/estree": "1.0.7" @@ -1107,26 +1141,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.0", - "@rollup/rollup-android-arm64": "4.41.0", - "@rollup/rollup-darwin-arm64": "4.41.0", - "@rollup/rollup-darwin-x64": "4.41.0", - "@rollup/rollup-freebsd-arm64": "4.41.0", - "@rollup/rollup-freebsd-x64": "4.41.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.0", - "@rollup/rollup-linux-arm-musleabihf": "4.41.0", - "@rollup/rollup-linux-arm64-gnu": "4.41.0", - "@rollup/rollup-linux-arm64-musl": "4.41.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-musl": "4.41.0", - "@rollup/rollup-linux-s390x-gnu": "4.41.0", - "@rollup/rollup-linux-x64-gnu": "4.41.0", - "@rollup/rollup-linux-x64-musl": "4.41.0", - "@rollup/rollup-win32-arm64-msvc": "4.41.0", - "@rollup/rollup-win32-ia32-msvc": "4.41.0", - "@rollup/rollup-win32-x64-msvc": "4.41.0", + "@rollup/rollup-android-arm-eabi": "4.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", "fsevents": "~2.3.2" } }, @@ -1134,6 +1168,7 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -1141,7 +1176,8 @@ "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/source-map-js": { "version": "1.2.1", @@ -1155,7 +1191,8 @@ "node_modules/three": { "version": "0.176.0", "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", - "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==" + "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==", + "license": "MIT" }, "node_modules/tinyglobby": { "version": "0.2.13", @@ -1176,7 +1213,8 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/typescript": { "version": "5.8.3", @@ -1195,14 +1233,15 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/verb-nurbs-web/-/verb-nurbs-web-2.1.3.tgz", "integrity": "sha512-2PvI2bx7dn0r3kWtk+JuDIDZ+p7I5Piu8y6/ZNhUVpilOyHKK1nNzLHtgown+dFOmBnKnuAKIMh1xn/5kzrxZA==", + "license": "MIT", "optionalDependencies": { "webworker-threads": "^0.7.12" } }, "node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -1278,6 +1317,7 @@ "resolved": "https://registry.npmjs.org/webworker-threads/-/webworker-threads-0.7.17.tgz", "integrity": "sha512-Y2w2aXBbDLk9IzTEb9u+MsODC3s4YlGI7g4h0t+1OAwIO8yBI9rQL35ZYlyayiCuWu1dZMH/P7kGU8OwW7YsyA==", "hasInstallScript": true, + "license": "(MIT AND Apache-2.0)", "optional": true, "dependencies": { "bindings": "^1.3.0", @@ -1287,5 +1327,770 @@ "node": ">= 0.10.16" } } + }, + "dependencies": { + "@bitbybit-dev/base": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-0.20.4.tgz", + "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==" + }, + "@bitbybit-dev/core": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-0.20.4.tgz", + "integrity": "sha512-T2hOHzvI+ikNxQRvhDyk/TeMCBhjZPY+wLmRSbYHiWnNGP5+3GCesZyb672XfEwPIWRH2kBS4vyp9R9fRnJujQ==", + "requires": { + "@bitbybit-dev/base": "0.20.4", + "@bitbybit-dev/jscad-worker": "0.20.4", + "@bitbybit-dev/manifold-worker": "0.20.4", + "@bitbybit-dev/occt-worker": "0.20.4", + "jsonpath-plus": "10.1.0", + "rxjs": "7.5.5", + "verb-nurbs-web": "2.1.3" + } + }, + "@bitbybit-dev/jscad": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-0.20.4.tgz", + "integrity": "sha512-e7/7Ag796rwn58H6Nu0lzhDkim+rJTqMWCqFZquNswoX2qqZXCv8azyOFE2LqfTvyIsEeJr/VEWIy2nvmtJnmg==", + "requires": { + "@bitbybit-dev/base": "0.20.4", + "@jscad/3mf-serializer": "2.1.12", + "@jscad/dxf-serializer": "2.1.18", + "@jscad/io-utils": "2.0.28", + "@jscad/modeling": "2.12.3", + "@jscad/stl-serializer": "2.1.18" + } + }, + "@bitbybit-dev/jscad-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-0.20.4.tgz", + "integrity": "sha512-DsjL2YO6urR8B/8LKYRrk4q9hAJE8oB+e5m+LDDBXbl7Vl0CHdC5ogPm6w07RcAHdSbMJouf2Ow7nGP/oOcjEg==", + "requires": { + "@bitbybit-dev/jscad": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@bitbybit-dev/manifold": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-0.20.4.tgz", + "integrity": "sha512-rEGO8wOd/RUWPIRWdyE70w79JXhQ1iV6mACBuOH8/UD7+vf9wkk3KLWAYCzVPJP1nvx4+/SKCvU7e1JxEzq0Qw==", + "requires": { + "manifold-3d": "3.0.0" + } + }, + "@bitbybit-dev/manifold-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-0.20.4.tgz", + "integrity": "sha512-mwU87fg8M3p472dn/RiuveiPtq/IuOWCcoG0uismEE2g+rnciMrCSUSkXMkfXDCk9l0ZqoVfYg+dHVx0KBHBUg==", + "requires": { + "@bitbybit-dev/manifold": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@bitbybit-dev/occt": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-0.20.4.tgz", + "integrity": "sha512-Lxx4wsToS3EIiS2L3KjUh6Jpgvxsyxbh2Jt4raWhIbD9PSy1zRfMww9K7xFlawSMgq12WN1a0lV8ydKs1f5/zw==", + "requires": { + "@bitbybit-dev/base": "0.20.4" + } + }, + "@bitbybit-dev/occt-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-0.20.4.tgz", + "integrity": "sha512-R5fiGteBSitv89Pz3XVgs+Vv0c1uH477oihkw1EUWLDTa7ypiXOohpjlKYFd/qAy3QCe8GEF3jDT+TK3dsQ+FA==", + "requires": { + "@bitbybit-dev/occt": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@bitbybit-dev/threejs": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/threejs/-/threejs-0.20.4.tgz", + "integrity": "sha512-kGRZDQFCmN6qEWeR62bniTT+kMJTzheRA0l3AIUOFzgKX5ZMxeV0lUv6gZgLnKHOLniC+Aa1o7p2uLQjGjD2MA==", + "requires": { + "@bitbybit-dev/core": "0.20.4", + "three": "0.176.0" + } + }, + "@dimforge/rapier3d-compat": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", + "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==", + "dev": true + }, + "@esbuild/aix-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "dev": true, + "optional": true + }, + "@jscad/3mf-serializer": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@jscad/3mf-serializer/-/3mf-serializer-2.1.12.tgz", + "integrity": "sha512-+rxAIKIHCpaplupwwsdXtG1IdimPXFFB45nrjy6gdFHi36bEQW6y/RQD/ngenRiKnYSxu7/M0LatHcjve8z64A==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3", + "fflate": "0.7.3", + "onml": "1.2.0" + } + }, + "@jscad/array-utils": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@jscad/array-utils/-/array-utils-2.1.4.tgz", + "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==" + }, + "@jscad/dxf-serializer": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@jscad/dxf-serializer/-/dxf-serializer-2.1.18.tgz", + "integrity": "sha512-T5Qe2jbEphcWAk7GaOY8PCMD4DPhTm6gWk/MPJCExphhnUwJqcU/1RiMb5hiD+N6hHzmlxD59I8QTjlp9LbLSA==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3" + } + }, + "@jscad/io-utils": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/@jscad/io-utils/-/io-utils-2.0.28.tgz", + "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==" + }, + "@jscad/modeling": { + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@jscad/modeling/-/modeling-2.12.3.tgz", + "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==" + }, + "@jscad/stl-serializer": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@jscad/stl-serializer/-/stl-serializer-2.1.18.tgz", + "integrity": "sha512-pz++TRjHI7jBPnnxQUi4B/uYUG3yCDsKlw8+xL2kumwjb+auc6Ng6Rnr/GqUTkgHrnGut08wg/8AekyWjvBwYg==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3" + } + }, + "@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "requires": {} + }, + "@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "requires": {} + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", + "dev": true, + "optional": true + }, + "@tweenjs/tween.js": { + "version": "23.1.3", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", + "dev": true + }, + "@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true + }, + "@types/stats.js": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true + }, + "@types/three": { + "version": "0.176.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.176.0.tgz", + "integrity": "sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw==", + "dev": true, + "requires": { + "@dimforge/rapier3d-compat": "^0.12.0", + "@tweenjs/tween.js": "~23.1.3", + "@types/stats.js": "*", + "@types/webxr": "*", + "@webgpu/types": "*", + "fflate": "~0.8.2", + "meshoptimizer": "~0.18.1" + }, + "dependencies": { + "fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true + } + } + }, + "@types/webxr": { + "version": "0.5.22", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.22.tgz", + "integrity": "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==", + "dev": true + }, + "@webgpu/types": { + "version": "0.1.60", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", + "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "esbuild": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" + } + }, + "fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "requires": {} + }, + "fflate": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", + "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==" + }, + "jsonpath-plus": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.1.0.tgz", + "integrity": "sha512-gHfV1IYqH8uJHYVTs8BJX1XKy2/rR93+f8QQi0xhx95aCiXn1ettYAd5T+7FU6wfqyDoX/wy0pm/fL3jOKJ9Lg==", + "requires": { + "@jsep-plugin/assignment": "^1.2.1", + "@jsep-plugin/regex": "^1.0.3", + "jsep": "^1.3.9" + } + }, + "lil-gui": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.20.0.tgz", + "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==" + }, + "manifold-3d": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/manifold-3d/-/manifold-3d-3.0.0.tgz", + "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==" + }, + "meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "dev": true + }, + "nan": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "optional": true + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + }, + "onml": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/onml/-/onml-1.2.0.tgz", + "integrity": "sha512-olqYAg18XoHAhm7tK9DdBCOVdts70DGmMgCNLOWyqZokht2utgGSKBB4JHi6pBZpmioAhcYlxK+91L3tsrz+GA==", + "requires": { + "sax": "^1.2.1" + } + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, + "postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "requires": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "rollup": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", + "@types/estree": "1.0.7", + "fsevents": "~2.3.2" + } + }, + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "requires": { + "tslib": "^2.1.0" + } + }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true + }, + "three": { + "version": "0.176.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.176.0.tgz", + "integrity": "sha512-PWRKYWQo23ojf9oZSlRGH8K09q7nRSWx6LY/HF/UUrMdYgN9i1e2OwJYHoQjwc6HF/4lvvYLC5YC1X8UJL2ZpA==" + }, + "tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "requires": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + } + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true + }, + "verb-nurbs-web": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/verb-nurbs-web/-/verb-nurbs-web-2.1.3.tgz", + "integrity": "sha512-2PvI2bx7dn0r3kWtk+JuDIDZ+p7I5Piu8y6/ZNhUVpilOyHKK1nNzLHtgown+dFOmBnKnuAKIMh1xn/5kzrxZA==", + "requires": { + "webworker-threads": "^0.7.12" + } + }, + "vite": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", + "dev": true, + "requires": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "fsevents": "~2.3.3", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + } + }, + "webworker-threads": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/webworker-threads/-/webworker-threads-0.7.17.tgz", + "integrity": "sha512-Y2w2aXBbDLk9IzTEb9u+MsODC3s4YlGI7g4h0t+1OAwIO8yBI9rQL35ZYlyayiCuWu1dZMH/P7kGU8OwW7YsyA==", + "optional": true, + "requires": { + "bindings": "^1.3.0", + "nan": "^2.11.0" + } + } } } diff --git a/examples/vite/threejs/hex-shell/src/create-shape.ts b/examples/vite/threejs/hex-shell/src/create-shape.ts deleted file mode 100644 index 48ee7afb..00000000 --- a/examples/vite/threejs/hex-shell/src/create-shape.ts +++ /dev/null @@ -1,658 +0,0 @@ -import type { BitByBitBase } from '@bitbybit-dev/threejs'; -import { Color, DoubleSide, Group, MeshPhongMaterial, Scene } from 'three'; -import { Inputs } from '@bitbybit-dev/threejs'; -import type { Current } from './models/current'; -import type { Model } from './models/model'; - -export const createShapeLod2 = async ( - bitbybit: BitByBitBase | undefined, - scene: Scene | undefined, - model: Model, - shapesToClean: Inputs.OCCT.TopoDSShapePointer[], - current: Current -) => { - if (scene && bitbybit) { - if (shapesToClean.length > 0) { - await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); - } - if (shapesToClean.length > 0) { - await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); - } - - const { loft } = await createFaceAndEllipses(bitbybit, model); - shapesToClean.push(loft); - const faces = await bitbybit.occt.shapes.face.getFaces({ - shape: loft, - }); - - const faceBase = faces[0]; - shapesToClean.push(faceBase); - - const getFace = (l: Inputs.OCCT.TopoDSShapePointer) => { - return bitbybit.occt.shapes.face.getFace({ shape: l, index: 0 }); - }; - - const loft1 = await bitbybit.occt.operations.offset({ - shape: faceBase, - distance: -1.5, - tolerance: 1e-6, - }); - shapesToClean.push(loft1); - - const face1 = await getFace(loft1); - shapesToClean.push(face1); - - const loft3 = await bitbybit.occt.operations.offset({ - shape: faceBase, - distance: 1.5, - tolerance: 1e-6, - }); - shapesToClean.push(loft3); - - const loft4 = await bitbybit.occt.operations.offset({ - shape: faceBase, - distance: 3, - tolerance: 1e-6, - }); - shapesToClean.push(loft4); - - const loft5 = await bitbybit.occt.operations.offset({ - shape: faceBase, - distance: 5, - tolerance: 1e-6, - }); - shapesToClean.push(loft5); - - const face2 = faceBase; - const face3 = await getFace(loft3); - const face4 = await getFace(loft4); - const face5 = await getFace(loft5); - shapesToClean.push(face3); - shapesToClean.push(face4); - shapesToClean.push(face5); - - const subdivideOptions = new Inputs.OCCT.FaceSubdivideToHexagonWiresDto( - face1 - ); - subdivideOptions.nrHexagonsU = model.vHex; - subdivideOptions.nrHexagonsV = model.uHex; - subdivideOptions.extendUUp = true; - subdivideOptions.filletPattern = [0.8]; - subdivideOptions.scalePatternU = [0.4, 0.3, 0.2]; - subdivideOptions.scalePatternV = [0.4, 0.3, 0.2]; - const thickness = 0.1; - const wrs1Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - subdivideOptions.scalePatternU = [ - 0.4 - thickness, - 0.3 - thickness, - 0.2 - thickness, - ]; - subdivideOptions.scalePatternV = [ - 0.4 - thickness, - 0.3 - thickness, - 0.2 - thickness, - ]; - shapesToClean.push(...wrs1Out); - - const wrs1In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs1In); - - subdivideOptions.scalePatternU = [1]; - subdivideOptions.scalePatternV = [1]; - subdivideOptions.filletPattern = [0.001]; - subdivideOptions.shape = face2; - const wrs2Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs2Out); - - subdivideOptions.filletPattern = [0.8]; - subdivideOptions.scalePatternU = [0.4]; - subdivideOptions.scalePatternV = [0.4]; - const wrs2In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs2In); - - subdivideOptions.scalePatternU = [0.98]; - subdivideOptions.scalePatternV = [0.98]; - subdivideOptions.shape = face3; - subdivideOptions.filletPattern = [0.001]; - const wrs3Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs3Out); - - subdivideOptions.scalePatternU = [0.4]; - subdivideOptions.scalePatternV = [0.4]; - subdivideOptions.filletPattern = [0.9]; - const wrs3In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs3In); - - subdivideOptions.scalePatternU = [1]; - subdivideOptions.scalePatternV = [1]; - subdivideOptions.filletPattern = [0.001]; - subdivideOptions.shape = face4; - const wrs4Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs4Out); - - subdivideOptions.scalePatternU = [0.3]; - subdivideOptions.scalePatternV = [0.3]; - subdivideOptions.filletPattern = [0.8]; - const wrs4In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs4In); - - subdivideOptions.scalePatternU = [0.9]; - subdivideOptions.scalePatternV = [0.9]; - subdivideOptions.filletPattern = [0.3]; - const wrs4InSpec = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs4InSpec); - - subdivideOptions.scalePatternU = [0.4, 0.3, 0.2]; - subdivideOptions.scalePatternV = [0.4, 0.3, 0.2]; - subdivideOptions.shape = face5; - subdivideOptions.filletPattern = [0.9]; - const wrs5Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs5Out); - - subdivideOptions.scalePatternU = [ - 0.4 - thickness, - 0.3 - thickness, - 0.2 - thickness, - ]; - subdivideOptions.scalePatternV = [ - 0.4 - thickness, - 0.3 - thickness, - 0.2 - thickness, - ]; - subdivideOptions.filletPattern = [0.9]; - - const wrs5In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs5In); - - const loftPromises: Promise[] = []; - const loftOptions = - new Inputs.OCCT.LoftAdvancedDto(); - loftOptions.straight = true; - loftOptions.closed = true; - - const indexes1: number[] = []; - const indexes2: number[] = []; - wrs1Out.forEach((w1Out, index) => { - const w1In = wrs1In[index]; - const w2Out = wrs2Out[index]; - const w2In = wrs2In[index]; - const w3Out = wrs3Out[index]; - const w3In = wrs3In[index]; - const w4Out = wrs4Out[index]; - const w4In = wrs4In[index]; - const w4InSpec = wrs4InSpec[index]; - const w5Out = wrs5Out[index]; - const w5In = wrs5In[index]; - - if (index % 3 === 0) { - indexes1.push(index); - loftOptions.shapes = [ - w1In, - w2In, - w3In, - w4In, - w5In, - w5Out, - w4Out, - w3Out, - w2Out, - w1Out, - ].reverse(); - } else { - indexes2.push(index); - loftOptions.shapes = [ - w2In, - w3In, - w4InSpec, - w4Out, - w3Out, - w2Out, - ].reverse(); - } - - const lft = bitbybit.occt.operations.loftAdvanced(loftOptions); - loftPromises.push(lft); - }); - - const lofts: Inputs.OCCT.TopoDSShapePointer[] = await Promise.all( - loftPromises - ); - shapesToClean.push(...lofts); - const lofts1: Inputs.OCCT.TopoDSShapePointer[] = indexes1.map( - (i) => lofts[i] - ); - const lofts2: Inputs.OCCT.TopoDSShapePointer[] = indexes2.map( - (i) => lofts[i] - ); - - const chunkSize = 40; - const lofts1Chunked = bitbybit.lists.groupNth({ - list: lofts1, - nrElements: chunkSize, - keepRemainder: true, - }); - const lofts2Chunked = bitbybit.lists.groupNth({ - list: lofts2, - nrElements: chunkSize, - keepRemainder: true, - }); - - const compounds1ToDrawPromises = lofts1Chunked.map((lchunk) => - bitbybit.occt.shapes.compound.makeCompound({ - shapes: lchunk, - }) - ); - - const compounds2ToDrawPromises = lofts2Chunked.map((lchunk) => - bitbybit.occt.shapes.compound.makeCompound({ - shapes: lchunk, - }) - ); - - const compounds1ToDraw = await Promise.all(compounds1ToDrawPromises); - const compounds2ToDraw = await Promise.all(compounds2ToDrawPromises); - - shapesToClean.push(...compounds1ToDraw); - shapesToClean.push(...compounds2ToDraw); - - const finalShape = await bitbybit.occt.shapes.compound.makeCompound({ - shapes: [...lofts1, ...lofts2], - }); - - shapesToClean.push(finalShape); - - // DRAWING BEGINS - - const options = new Inputs.Draw.DrawOcctShapeOptions(); - options.precision = model.finalPrecision; - options.drawEdges = model.drawEdges; - options.drawFaces = model.drawFaces; - options.drawVertices = false; - options.edgeWidth = 20; - options.edgeColour = '#000000'; - - const mat = new MeshPhongMaterial({ color: new Color(model.color1) }); - if (model.drawEdges) { - mat.polygonOffset = true; - mat.polygonOffsetFactor = 1; - } - options.faceMaterial = mat; - - const groups1Promises = compounds1ToDraw.map((comp) => - bitbybit.draw.drawAnyAsync({ entity: comp, options }) - ); - - const mat2 = new MeshPhongMaterial({ color: new Color(model.color2) }); - if (model.drawEdges) { - mat2.polygonOffset = true; - mat2.polygonOffsetFactor = 1; - } - options.faceMaterial = mat2; - - const groups2Promises = compounds2ToDraw.map((comp) => - bitbybit.draw.drawAnyAsync({ entity: comp, options }) - ); - - const groups1 = await Promise.all(groups1Promises); - const groups2 = await Promise.all(groups2Promises); - - const group1 = new Group(); - group1.add(...groups1); - scene.add(group1); - - const group2 = new Group(); - group2.add(...groups2); - scene.add(group2); - - groups1.forEach((group) => { - group.children[0].children.forEach((child) => { - child.castShadow = true; - child.receiveShadow = true; - }); - }); - - groups2.forEach((group) => { - group.children[0].children.forEach((child) => { - child.castShadow = true; - child.receiveShadow = true; - }); - }); - - current.group1 = group1; - current.group2 = group2; - return finalShape; - } -}; - -export const createShapeLod1 = async ( - bitbybit: BitByBitBase | undefined, - scene: Scene | undefined, - model: Model, - shapesToClean: Inputs.OCCT.TopoDSShapePointer[], - current: Current -) => { - if (scene && bitbybit) { - if (shapesToClean.length > 0) { - await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); - } - if (shapesToClean.length > 0) { - await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); - } - - const { loft, w1, w2, w3 } = await createFaceAndEllipses(bitbybit, model); - shapesToClean.push(loft, w1, w2, w3); - const faces = await bitbybit.occt.shapes.face.getFaces({ - shape: loft, - }); - - const faceBase = faces[0]; - shapesToClean.push(faceBase); - - const subdivideOptions = new Inputs.OCCT.FaceSubdivideToHexagonWiresDto( - faceBase - ); - subdivideOptions.nrHexagonsU = model.vHex; - subdivideOptions.nrHexagonsV = model.uHex; - subdivideOptions.extendUUp = true; - const wrs1Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( - subdivideOptions - ); - shapesToClean.push(...wrs1Out); - - const fcs: Inputs.OCCT.TopoDSFacePointer[] = - (await bitbybit.occt.shapes.face.createFacesFromWiresOnFace({ - wires: wrs1Out, - face: faceBase, - inside: true, - })) as any; - - shapesToClean.push(...fcs); - const firstGroupFcs: Inputs.OCCT.TopoDSFacePointer[] = []; - const secondGroupFcs: Inputs.OCCT.TopoDSFacePointer[] = []; - fcs.forEach((f, index) => { - if (index % 3 === 0) { - firstGroupFcs.push(f); - } else { - secondGroupFcs.push(f); - } - }); - - const firstGroup = await bitbybit.occt.shapes.compound.makeCompound({ - shapes: firstGroupFcs, - }); - shapesToClean.push(firstGroup); - const secondGroup = await bitbybit.occt.shapes.compound.makeCompound({ - shapes: secondGroupFcs, - }); - shapesToClean.push(secondGroup); - - const dimensions = await createDimensions( - bitbybit, - model, - faceBase, - [w1, w2, w3], - shapesToClean - ); - - shapesToClean.push(dimensions); - - const options = new Inputs.Draw.DrawOcctShapeOptions(); - options.precision = 0.01; - options.drawEdges = true; - options.drawFaces = true; - options.drawVertices = false; - options.edgeWidth = 20; - - options.edgeColour = '#ffffff'; - - const mat = new MeshPhongMaterial({ color: new Color(model.color1) }); - mat.polygonOffset = true; - mat.polygonOffsetFactor = 1; - mat.transparent = true; - mat.opacity = 0.5; - mat.side = DoubleSide; - options.faceMaterial = mat; - const grp1 = await bitbybit.draw.drawAnyAsync({ - entity: firstGroup, - options, - }); - - const mat2 = new MeshPhongMaterial({ color: new Color(model.color2) }); - mat2.polygonOffset = true; - mat2.polygonOffsetFactor = 1; - mat2.transparent = true; - mat2.opacity = 0.5; - mat2.side = DoubleSide; - options.faceMaterial = mat2; - const grp2 = await bitbybit.draw.drawAnyAsync({ - entity: secondGroup, - options, - }); - - grp1.children[0].children.forEach((child) => { - child.castShadow = true; - child.receiveShadow = true; - }); - - grp2.children[0].children.forEach((child) => { - child.castShadow = true; - child.receiveShadow = true; - }); - - const dimOpt = new Inputs.Draw.DrawOcctShapeOptions(); - dimOpt.edgeColour = '#aaaaff'; - dimOpt.drawFaces = false; - const dimensionsGroup = await bitbybit.draw.drawAnyAsync({ - entity: dimensions, - options: dimOpt, - }); - dimensionsGroup.position.y = 0.02; - - // just to match chunked data structure of LOD2 - const group1 = new Group(); - group1.add(grp1); - scene.add(group1); - const group2 = new Group(); - group2.add(grp2); - scene.add(group2); - - current.group1 = group1; - current.group2 = group2; - current.dimensions = dimensionsGroup; - - const finalShape = await bitbybit.occt.shapes.compound.makeCompound({ - shapes: [firstGroup, secondGroup, dimensions], - }); - - return finalShape; - } -}; - -async function createFaceAndEllipses(bitbybit: BitByBitBase, model: Model) { - const ellipseOptions = new Inputs.OCCT.EllipseDto(); - const { wire } = bitbybit.occt.shapes; - const { transforms, operations } = bitbybit.occt; - - ellipseOptions.radiusMinor = model.ellipse1MinRad; - ellipseOptions.radiusMajor = model.ellipse1MaxRad; - const w1 = await wire.createEllipseWire(ellipseOptions); - - ellipseOptions.radiusMinor = model.ellipse2MinRad; - ellipseOptions.radiusMajor = model.ellipse2MaxRad; - const w2s = await wire.createEllipseWire(ellipseOptions); - - let w2r1; - if (model.ellipse2RotX > 0) { - w2r1 = await transforms.rotate({ - shape: w2s, - angle: model.ellipse2RotX, - axis: [1, 0, 0], - }); - } else { - w2r1 = w2s; - } - - const w2r2 = await transforms.rotate({ - shape: w2r1, - angle: model.ellipse2RotY, - axis: [0, 1, 0], - }); - const w2 = await transforms.translate({ - shape: w2r2, - translation: [0, model.height, 0], - }); - - ellipseOptions.radiusMinor = model.ellipse3MinRad; - ellipseOptions.radiusMajor = model.ellipse3MaxRad; - const w3s = await wire.createEllipseWire(ellipseOptions); - const w3 = await transforms.rotate({ - shape: w3s, - angle: model.ellipse3YRot, - axis: [0, 1, 0], - }); - const loft = await operations.loft({ - shapes: [w3, w2, w1], - makeSolid: false, - }); - - return { loft, w1, w2, w3 }; -} - -async function createDimensions( - bitbybit: BitByBitBase, - model: Model, - faceBase: Inputs.OCCT.TopoDSFacePointer, - wires: Inputs.OCCT.TopoDSWirePointer[], - shapesToClean: Inputs.OCCT.TopoDSShapePointer[] -) { - const subOpt = - new Inputs.OCCT.FaceSubdivisionDto(); - subOpt.shape = faceBase; - subOpt.nrDivisionsU = 50; - subOpt.nrDivisionsV = 50; - const pts = await bitbybit.occt.shapes.face.subdivideToPoints(subOpt); - const bbox = bitbybit.point.boundingBoxOfPoints({ points: pts }); - - const { dimensions, shapes } = bitbybit.occt; - const linearOptions = new Inputs.OCCT.SimpleLinearLengthDimensionDto(); - - linearOptions.start = [-model.ellipse3MaxRad, 0.01, 0]; - linearOptions.end = [model.ellipse3MaxRad, 0.01, 0]; - linearOptions.direction = [0, 0, -model.ellipse3MinRad * 1.2]; - linearOptions.labelSize = 3; - linearOptions.labelOffset = 3; - linearOptions.crossingSize = 1; - linearOptions.labelSuffix = '(m)'; - const dimLength = await dimensions.simpleLinearLengthDimension(linearOptions); - shapesToClean.push(dimLength); - - linearOptions.start = [0, 0.01, model.ellipse3MinRad]; - linearOptions.end = [0, 0.01, -model.ellipse3MinRad]; - linearOptions.direction = [-model.ellipse3MaxRad * 1.2, 0, 0]; - const dimWidth = await dimensions.simpleLinearLengthDimension(linearOptions); - shapesToClean.push(dimWidth); - - linearOptions.labelOffset = 1; - linearOptions.start = [0, model.height, 0]; - linearOptions.end = [0, 0, 0]; - linearOptions.offsetFromPoints = model.ellipse3MaxRad; - linearOptions.direction = [model.ellipse3MaxRad * 1.05, 0, 0]; - linearOptions.labelSize = 1; - const dimHeight = await dimensions.simpleLinearLengthDimension(linearOptions); - shapesToClean.push(dimHeight); - - linearOptions.start = [0, bbox.max[1], 0]; - linearOptions.end = [0, 0, 0]; - linearOptions.offsetFromPoints = model.ellipse3MaxRad; - linearOptions.direction = [model.ellipse3MaxRad * 1.1, 0, 0]; - linearOptions.labelSize = 1; - const dimHeight2 = await dimensions.simpleLinearLengthDimension( - linearOptions - ); - shapesToClean.push(dimHeight2); - - const pinOpt = new Inputs.OCCT.PinWithLabelDto(); - pinOpt.startPoint = [0, 0, 0]; - pinOpt.endPoint = [0, model.height * 2, -model.ellipse2MaxRad / 2]; - pinOpt.direction = [0, 0, -4]; - pinOpt.label = `Nr Hexagons ${model.uHex * model.vHex}`; - pinOpt.labelSize = 2; - pinOpt.labelOffset = 3; - const pointerDim = await dimensions.pinWithLabel(pinOpt); - shapesToClean.push(pointerDim); - - const shapesDimCompound = [ - dimLength, - dimWidth, - dimHeight, - dimHeight2, - pointerDim, - ]; - - if (model.ellipse2RotX) { - const angleOpt = new Inputs.OCCT.SimpleAngularDimensionDto(); - angleOpt.center = [0, model.height, 0]; - const rotPts = bitbybit.point.rotatePointsCenterAxis({ - points: [[1, 0, 0]], - center: [0, 0, 0], - axis: [0, 0, -1], - angle: model.ellipse2RotX, - }); - angleOpt.direction1 = rotPts[0]; - angleOpt.direction2 = [model.ellipse3MaxRad, 0, 0]; - angleOpt.radius = model.ellipse2MaxRad * 0.7; - angleOpt.offsetFromCenter = 0; - angleOpt.extraSize = 1; - angleOpt.labelSize = 1; - angleOpt.labelOffset = 2; - - const angleDim = await dimensions.simpleAngularDimension(angleOpt); - shapesToClean.push(angleDim); - const rotAngleDim = await bitbybit.occt.transforms.rotate({ - shape: angleDim, - axis: [0, 1, 0], - angle: -model.ellipse2RotY, - }); - shapesToClean.push(rotAngleDim); - shapesDimCompound.push(rotAngleDim); - } - - const dimCompound = await shapes.compound.makeCompound({ - shapes: shapesDimCompound, - }); - shapesToClean.push(dimCompound); - - const rotCompound = await bitbybit.occt.transforms.rotate({ - shape: dimCompound, - axis: [0, 1, 0], - angle: -model.ellipse3YRot, - }); - - shapesToClean.push(rotCompound); - const compWithWires = await bitbybit.occt.shapes.compound.makeCompound({ - shapes: [...wires, rotCompound], - }); - return compWithWires; -} diff --git a/examples/vite/threejs/hex-shell/src/helpers/create-gui.ts b/examples/vite/threejs/hex-shell/src/helpers/create-gui.ts new file mode 100644 index 00000000..fa3e716b --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/create-gui.ts @@ -0,0 +1,98 @@ +import GUI from "lil-gui"; +import type { Current, Model } from "../models"; +import type { Mesh, MeshPhongMaterial } from "three"; + +export const createGui = ( + current: Current, + model: Model, + updateShape: (lod: boolean) => void +) => { + model.update = () => updateShape(true); + const gui = new GUI(); + current.gui = gui; + gui.$title.innerHTML = "Pattern"; + + gui + .add(model, "uHex", 1, 14, 1) + .name("Hexagons U") + .onFinishChange((value: number) => { + model.uHex = value; + updateShape(false); + }); + + gui + .add(model, "vHex", 8, 36, 2) + .name("Hexagons V") + .onFinishChange((value: number) => { + model.vHex = value; + updateShape(false); + }); + + gui + .add(model, "height", 15, 25, 1) + .name("Height") + .onFinishChange((value: number) => { + model.height = value; + updateShape(false); + }); + + gui + .add(model, "ellipse2RotX", 0, 15, 0.1) + .name("Angle Guide") + .onFinishChange((value: number) => { + model.ellipse2RotX = value; + updateShape(false); + }); + + gui + .add(model, "finalPrecision", 0.01, 1, 0.01) + .name("Final Precision") + .onFinishChange((value: number) => { + model.finalPrecision = value; + }); + + gui + .add(model, "rotationEnabled") + .name("Rotation Enabled") + .onFinishChange((value: boolean) => { + model.rotationEnabled = value; + }); + + gui + .add(model, "drawEdges") + .name("Draw Edges") + .onFinishChange((value: boolean) => { + model.drawEdges = value; + }); + + gui + .addColor(model, "color1") + .name("Color 1") + .onChange((value: string) => { + current.group1?.children.forEach((group) => { + const children = group?.children[0].children as Mesh[]; + [...children].forEach((child) => { + const material = (child as Mesh).material as MeshPhongMaterial; + material.color.setHex(parseInt(value.replace("#", "0x"))); + }); + }); + }); + + gui + .addColor(model, "color2") + .name("Color 2") + .onChange((value: string) => { + current.group2?.children.forEach((group) => { + const children = group?.children[0].children as Mesh[]; + [...children].forEach((child) => { + const material = (child as Mesh).material as MeshPhongMaterial; + material.color.setHex(parseInt(value.replace("#", "0x"))); + }); + }); + }); + + gui.add(model, "update").name("Finalize"); + gui.add(model, "downloadSTL").name("Download STL"); + gui.add(model, "downloadStep").name("Download STEP"); + gui.add(model, "downloadGLB").name("Download GLB"); +}; diff --git a/examples/vite/threejs/hex-shell/src/helpers/create-shape.ts b/examples/vite/threejs/hex-shell/src/helpers/create-shape.ts new file mode 100644 index 00000000..5f2c1893 --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/create-shape.ts @@ -0,0 +1,657 @@ +import type { BitByBitBase } from "@bitbybit-dev/threejs"; +import { Inputs } from "@bitbybit-dev/threejs"; +import { Color, DoubleSide, Group, MeshPhongMaterial, Scene } from "three"; +import type { Current, Model } from "../models"; + +export const createShapeLod2 = async ( + bitbybit: BitByBitBase | undefined, + scene: Scene | undefined, + model: Model, + shapesToClean: Inputs.OCCT.TopoDSShapePointer[], + current: Current +) => { + if (scene && bitbybit) { + if (shapesToClean.length > 0) { + await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); + } + if (shapesToClean.length > 0) { + await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); + } + + const { loft } = await createFaceAndEllipses(bitbybit, model); + shapesToClean.push(loft); + const faces = await bitbybit.occt.shapes.face.getFaces({ + shape: loft, + }); + + const faceBase = faces[0]; + shapesToClean.push(faceBase); + + const getFace = (l: Inputs.OCCT.TopoDSShapePointer) => { + return bitbybit.occt.shapes.face.getFace({ shape: l, index: 0 }); + }; + + const loft1 = await bitbybit.occt.operations.offset({ + shape: faceBase, + distance: -1.5, + tolerance: 1e-6, + }); + shapesToClean.push(loft1); + + const face1 = await getFace(loft1); + shapesToClean.push(face1); + + const loft3 = await bitbybit.occt.operations.offset({ + shape: faceBase, + distance: 1.5, + tolerance: 1e-6, + }); + shapesToClean.push(loft3); + + const loft4 = await bitbybit.occt.operations.offset({ + shape: faceBase, + distance: 3, + tolerance: 1e-6, + }); + shapesToClean.push(loft4); + + const loft5 = await bitbybit.occt.operations.offset({ + shape: faceBase, + distance: 5, + tolerance: 1e-6, + }); + shapesToClean.push(loft5); + + const face2 = faceBase; + const face3 = await getFace(loft3); + const face4 = await getFace(loft4); + const face5 = await getFace(loft5); + shapesToClean.push(face3); + shapesToClean.push(face4); + shapesToClean.push(face5); + + const subdivideOptions = new Inputs.OCCT.FaceSubdivideToHexagonWiresDto( + face1 + ); + subdivideOptions.nrHexagonsU = model.vHex; + subdivideOptions.nrHexagonsV = model.uHex; + subdivideOptions.extendUUp = true; + subdivideOptions.filletPattern = [0.8]; + subdivideOptions.scalePatternU = [0.4, 0.3, 0.2]; + subdivideOptions.scalePatternV = [0.4, 0.3, 0.2]; + const thickness = 0.1; + const wrs1Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + subdivideOptions.scalePatternU = [ + 0.4 - thickness, + 0.3 - thickness, + 0.2 - thickness, + ]; + subdivideOptions.scalePatternV = [ + 0.4 - thickness, + 0.3 - thickness, + 0.2 - thickness, + ]; + shapesToClean.push(...wrs1Out); + + const wrs1In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs1In); + + subdivideOptions.scalePatternU = [1]; + subdivideOptions.scalePatternV = [1]; + subdivideOptions.filletPattern = [0.001]; + subdivideOptions.shape = face2; + const wrs2Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs2Out); + + subdivideOptions.filletPattern = [0.8]; + subdivideOptions.scalePatternU = [0.4]; + subdivideOptions.scalePatternV = [0.4]; + const wrs2In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs2In); + + subdivideOptions.scalePatternU = [0.98]; + subdivideOptions.scalePatternV = [0.98]; + subdivideOptions.shape = face3; + subdivideOptions.filletPattern = [0.001]; + const wrs3Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs3Out); + + subdivideOptions.scalePatternU = [0.4]; + subdivideOptions.scalePatternV = [0.4]; + subdivideOptions.filletPattern = [0.9]; + const wrs3In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs3In); + + subdivideOptions.scalePatternU = [1]; + subdivideOptions.scalePatternV = [1]; + subdivideOptions.filletPattern = [0.001]; + subdivideOptions.shape = face4; + const wrs4Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs4Out); + + subdivideOptions.scalePatternU = [0.3]; + subdivideOptions.scalePatternV = [0.3]; + subdivideOptions.filletPattern = [0.8]; + const wrs4In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs4In); + + subdivideOptions.scalePatternU = [0.9]; + subdivideOptions.scalePatternV = [0.9]; + subdivideOptions.filletPattern = [0.3]; + const wrs4InSpec = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs4InSpec); + + subdivideOptions.scalePatternU = [0.4, 0.3, 0.2]; + subdivideOptions.scalePatternV = [0.4, 0.3, 0.2]; + subdivideOptions.shape = face5; + subdivideOptions.filletPattern = [0.9]; + const wrs5Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs5Out); + + subdivideOptions.scalePatternU = [ + 0.4 - thickness, + 0.3 - thickness, + 0.2 - thickness, + ]; + subdivideOptions.scalePatternV = [ + 0.4 - thickness, + 0.3 - thickness, + 0.2 - thickness, + ]; + subdivideOptions.filletPattern = [0.9]; + + const wrs5In = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs5In); + + const loftPromises: Promise[] = []; + const loftOptions = + new Inputs.OCCT.LoftAdvancedDto(); + loftOptions.straight = true; + loftOptions.closed = true; + + const indexes1: number[] = []; + const indexes2: number[] = []; + wrs1Out.forEach((w1Out, index) => { + const w1In = wrs1In[index]; + const w2Out = wrs2Out[index]; + const w2In = wrs2In[index]; + const w3Out = wrs3Out[index]; + const w3In = wrs3In[index]; + const w4Out = wrs4Out[index]; + const w4In = wrs4In[index]; + const w4InSpec = wrs4InSpec[index]; + const w5Out = wrs5Out[index]; + const w5In = wrs5In[index]; + + if (index % 3 === 0) { + indexes1.push(index); + loftOptions.shapes = [ + w1In, + w2In, + w3In, + w4In, + w5In, + w5Out, + w4Out, + w3Out, + w2Out, + w1Out, + ].reverse(); + } else { + indexes2.push(index); + loftOptions.shapes = [ + w2In, + w3In, + w4InSpec, + w4Out, + w3Out, + w2Out, + ].reverse(); + } + + const lft = bitbybit.occt.operations.loftAdvanced(loftOptions); + loftPromises.push(lft); + }); + + const lofts: Inputs.OCCT.TopoDSShapePointer[] = await Promise.all( + loftPromises + ); + shapesToClean.push(...lofts); + const lofts1: Inputs.OCCT.TopoDSShapePointer[] = indexes1.map( + (i) => lofts[i] + ); + const lofts2: Inputs.OCCT.TopoDSShapePointer[] = indexes2.map( + (i) => lofts[i] + ); + + const chunkSize = 40; + const lofts1Chunked = bitbybit.lists.groupNth({ + list: lofts1, + nrElements: chunkSize, + keepRemainder: true, + }); + const lofts2Chunked = bitbybit.lists.groupNth({ + list: lofts2, + nrElements: chunkSize, + keepRemainder: true, + }); + + const compounds1ToDrawPromises = lofts1Chunked.map((lchunk) => + bitbybit.occt.shapes.compound.makeCompound({ + shapes: lchunk, + }) + ); + + const compounds2ToDrawPromises = lofts2Chunked.map((lchunk) => + bitbybit.occt.shapes.compound.makeCompound({ + shapes: lchunk, + }) + ); + + const compounds1ToDraw = await Promise.all(compounds1ToDrawPromises); + const compounds2ToDraw = await Promise.all(compounds2ToDrawPromises); + + shapesToClean.push(...compounds1ToDraw); + shapesToClean.push(...compounds2ToDraw); + + const finalShape = await bitbybit.occt.shapes.compound.makeCompound({ + shapes: [...lofts1, ...lofts2], + }); + + shapesToClean.push(finalShape); + + // DRAWING BEGINS + + const options = new Inputs.Draw.DrawOcctShapeOptions(); + options.precision = model.finalPrecision; + options.drawEdges = model.drawEdges; + options.drawFaces = model.drawFaces; + options.drawVertices = false; + options.edgeWidth = 20; + options.edgeColour = "#000000"; + + const mat = new MeshPhongMaterial({ color: new Color(model.color1) }); + if (model.drawEdges) { + mat.polygonOffset = true; + mat.polygonOffsetFactor = 1; + } + options.faceMaterial = mat; + + const groups1Promises = compounds1ToDraw.map((comp) => + bitbybit.draw.drawAnyAsync({ entity: comp, options }) + ); + + const mat2 = new MeshPhongMaterial({ color: new Color(model.color2) }); + if (model.drawEdges) { + mat2.polygonOffset = true; + mat2.polygonOffsetFactor = 1; + } + options.faceMaterial = mat2; + + const groups2Promises = compounds2ToDraw.map((comp) => + bitbybit.draw.drawAnyAsync({ entity: comp, options }) + ); + + const groups1 = await Promise.all(groups1Promises); + const groups2 = await Promise.all(groups2Promises); + + const group1 = new Group(); + group1.add(...groups1); + scene.add(group1); + + const group2 = new Group(); + group2.add(...groups2); + scene.add(group2); + + groups1.forEach((group) => { + group.children[0].children.forEach((child) => { + child.castShadow = true; + child.receiveShadow = true; + }); + }); + + groups2.forEach((group) => { + group.children[0].children.forEach((child) => { + child.castShadow = true; + child.receiveShadow = true; + }); + }); + + current.group1 = group1; + current.group2 = group2; + return finalShape; + } +}; + +export const createShapeLod1 = async ( + bitbybit: BitByBitBase | undefined, + scene: Scene | undefined, + model: Model, + shapesToClean: Inputs.OCCT.TopoDSShapePointer[], + current: Current +) => { + if (scene && bitbybit) { + if (shapesToClean.length > 0) { + await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); + } + if (shapesToClean.length > 0) { + await bitbybit.occt.deleteShapes({ shapes: shapesToClean }); + } + + const { loft, w1, w2, w3 } = await createFaceAndEllipses(bitbybit, model); + shapesToClean.push(loft, w1, w2, w3); + const faces = await bitbybit.occt.shapes.face.getFaces({ + shape: loft, + }); + + const faceBase = faces[0]; + shapesToClean.push(faceBase); + + const subdivideOptions = new Inputs.OCCT.FaceSubdivideToHexagonWiresDto( + faceBase + ); + subdivideOptions.nrHexagonsU = model.vHex; + subdivideOptions.nrHexagonsV = model.uHex; + subdivideOptions.extendUUp = true; + const wrs1Out = await bitbybit.occt.shapes.face.subdivideToHexagonWires( + subdivideOptions + ); + shapesToClean.push(...wrs1Out); + + const fcs: Inputs.OCCT.TopoDSFacePointer[] = + (await bitbybit.occt.shapes.face.createFacesFromWiresOnFace({ + wires: wrs1Out, + face: faceBase, + inside: true, + })) as any; + + shapesToClean.push(...fcs); + const firstGroupFcs: Inputs.OCCT.TopoDSFacePointer[] = []; + const secondGroupFcs: Inputs.OCCT.TopoDSFacePointer[] = []; + fcs.forEach((f, index) => { + if (index % 3 === 0) { + firstGroupFcs.push(f); + } else { + secondGroupFcs.push(f); + } + }); + + const firstGroup = await bitbybit.occt.shapes.compound.makeCompound({ + shapes: firstGroupFcs, + }); + shapesToClean.push(firstGroup); + const secondGroup = await bitbybit.occt.shapes.compound.makeCompound({ + shapes: secondGroupFcs, + }); + shapesToClean.push(secondGroup); + + const dimensions = await createDimensions( + bitbybit, + model, + faceBase, + [w1, w2, w3], + shapesToClean + ); + + shapesToClean.push(dimensions); + + const options = new Inputs.Draw.DrawOcctShapeOptions(); + options.precision = 0.01; + options.drawEdges = true; + options.drawFaces = true; + options.drawVertices = false; + options.edgeWidth = 20; + + options.edgeColour = "#ffffff"; + + const mat = new MeshPhongMaterial({ color: new Color(model.color1) }); + mat.polygonOffset = true; + mat.polygonOffsetFactor = 1; + mat.transparent = true; + mat.opacity = 0.5; + mat.side = DoubleSide; + options.faceMaterial = mat; + const grp1 = await bitbybit.draw.drawAnyAsync({ + entity: firstGroup, + options, + }); + + const mat2 = new MeshPhongMaterial({ color: new Color(model.color2) }); + mat2.polygonOffset = true; + mat2.polygonOffsetFactor = 1; + mat2.transparent = true; + mat2.opacity = 0.5; + mat2.side = DoubleSide; + options.faceMaterial = mat2; + const grp2 = await bitbybit.draw.drawAnyAsync({ + entity: secondGroup, + options, + }); + + grp1.children[0].children.forEach((child) => { + child.castShadow = true; + child.receiveShadow = true; + }); + + grp2.children[0].children.forEach((child) => { + child.castShadow = true; + child.receiveShadow = true; + }); + + const dimOpt = new Inputs.Draw.DrawOcctShapeOptions(); + dimOpt.edgeColour = "#aaaaff"; + dimOpt.drawFaces = false; + const dimensionsGroup = await bitbybit.draw.drawAnyAsync({ + entity: dimensions, + options: dimOpt, + }); + dimensionsGroup.position.y = 0.02; + + // just to match chunked data structure of LOD2 + const group1 = new Group(); + group1.add(grp1); + scene.add(group1); + const group2 = new Group(); + group2.add(grp2); + scene.add(group2); + + current.group1 = group1; + current.group2 = group2; + current.dimensions = dimensionsGroup; + + const finalShape = await bitbybit.occt.shapes.compound.makeCompound({ + shapes: [firstGroup, secondGroup, dimensions], + }); + + return finalShape; + } +}; + +async function createFaceAndEllipses(bitbybit: BitByBitBase, model: Model) { + const ellipseOptions = new Inputs.OCCT.EllipseDto(); + const { wire } = bitbybit.occt.shapes; + const { transforms, operations } = bitbybit.occt; + + ellipseOptions.radiusMinor = model.ellipse1MinRad; + ellipseOptions.radiusMajor = model.ellipse1MaxRad; + const w1 = await wire.createEllipseWire(ellipseOptions); + + ellipseOptions.radiusMinor = model.ellipse2MinRad; + ellipseOptions.radiusMajor = model.ellipse2MaxRad; + const w2s = await wire.createEllipseWire(ellipseOptions); + + let w2r1; + if (model.ellipse2RotX > 0) { + w2r1 = await transforms.rotate({ + shape: w2s, + angle: model.ellipse2RotX, + axis: [1, 0, 0], + }); + } else { + w2r1 = w2s; + } + + const w2r2 = await transforms.rotate({ + shape: w2r1, + angle: model.ellipse2RotY, + axis: [0, 1, 0], + }); + const w2 = await transforms.translate({ + shape: w2r2, + translation: [0, model.height, 0], + }); + + ellipseOptions.radiusMinor = model.ellipse3MinRad; + ellipseOptions.radiusMajor = model.ellipse3MaxRad; + const w3s = await wire.createEllipseWire(ellipseOptions); + const w3 = await transforms.rotate({ + shape: w3s, + angle: model.ellipse3YRot, + axis: [0, 1, 0], + }); + const loft = await operations.loft({ + shapes: [w3, w2, w1], + makeSolid: false, + }); + + return { loft, w1, w2, w3 }; +} + +async function createDimensions( + bitbybit: BitByBitBase, + model: Model, + faceBase: Inputs.OCCT.TopoDSFacePointer, + wires: Inputs.OCCT.TopoDSWirePointer[], + shapesToClean: Inputs.OCCT.TopoDSShapePointer[] +) { + const subOpt = + new Inputs.OCCT.FaceSubdivisionDto(); + subOpt.shape = faceBase; + subOpt.nrDivisionsU = 50; + subOpt.nrDivisionsV = 50; + const pts = await bitbybit.occt.shapes.face.subdivideToPoints(subOpt); + const bbox = bitbybit.point.boundingBoxOfPoints({ points: pts }); + + const { dimensions, shapes } = bitbybit.occt; + const linearOptions = new Inputs.OCCT.SimpleLinearLengthDimensionDto(); + + linearOptions.start = [-model.ellipse3MaxRad, 0.01, 0]; + linearOptions.end = [model.ellipse3MaxRad, 0.01, 0]; + linearOptions.direction = [0, 0, -model.ellipse3MinRad * 1.2]; + linearOptions.labelSize = 3; + linearOptions.labelOffset = 3; + linearOptions.crossingSize = 1; + linearOptions.labelSuffix = "(m)"; + const dimLength = await dimensions.simpleLinearLengthDimension(linearOptions); + shapesToClean.push(dimLength); + + linearOptions.start = [0, 0.01, model.ellipse3MinRad]; + linearOptions.end = [0, 0.01, -model.ellipse3MinRad]; + linearOptions.direction = [-model.ellipse3MaxRad * 1.2, 0, 0]; + const dimWidth = await dimensions.simpleLinearLengthDimension(linearOptions); + shapesToClean.push(dimWidth); + + linearOptions.labelOffset = 1; + linearOptions.start = [0, model.height, 0]; + linearOptions.end = [0, 0, 0]; + linearOptions.offsetFromPoints = model.ellipse3MaxRad; + linearOptions.direction = [model.ellipse3MaxRad * 1.05, 0, 0]; + linearOptions.labelSize = 1; + const dimHeight = await dimensions.simpleLinearLengthDimension(linearOptions); + shapesToClean.push(dimHeight); + + linearOptions.start = [0, bbox.max[1], 0]; + linearOptions.end = [0, 0, 0]; + linearOptions.offsetFromPoints = model.ellipse3MaxRad; + linearOptions.direction = [model.ellipse3MaxRad * 1.1, 0, 0]; + linearOptions.labelSize = 1; + const dimHeight2 = await dimensions.simpleLinearLengthDimension( + linearOptions + ); + shapesToClean.push(dimHeight2); + + const pinOpt = new Inputs.OCCT.PinWithLabelDto(); + pinOpt.startPoint = [0, 0, 0]; + pinOpt.endPoint = [0, model.height * 2, -model.ellipse2MaxRad / 2]; + pinOpt.direction = [0, 0, -4]; + pinOpt.label = `Nr Hexagons ${model.uHex * model.vHex}`; + pinOpt.labelSize = 2; + pinOpt.labelOffset = 3; + const pointerDim = await dimensions.pinWithLabel(pinOpt); + shapesToClean.push(pointerDim); + + const shapesDimCompound = [ + dimLength, + dimWidth, + dimHeight, + dimHeight2, + pointerDim, + ]; + + if (model.ellipse2RotX) { + const angleOpt = new Inputs.OCCT.SimpleAngularDimensionDto(); + angleOpt.center = [0, model.height, 0]; + const rotPts = bitbybit.point.rotatePointsCenterAxis({ + points: [[1, 0, 0]], + center: [0, 0, 0], + axis: [0, 0, -1], + angle: model.ellipse2RotX, + }); + angleOpt.direction1 = rotPts[0]; + angleOpt.direction2 = [model.ellipse3MaxRad, 0, 0]; + angleOpt.radius = model.ellipse2MaxRad * 0.7; + angleOpt.offsetFromCenter = 0; + angleOpt.extraSize = 1; + angleOpt.labelSize = 1; + angleOpt.labelOffset = 2; + + const angleDim = await dimensions.simpleAngularDimension(angleOpt); + shapesToClean.push(angleDim); + const rotAngleDim = await bitbybit.occt.transforms.rotate({ + shape: angleDim, + axis: [0, 1, 0], + angle: -model.ellipse2RotY, + }); + shapesToClean.push(rotAngleDim); + shapesDimCompound.push(rotAngleDim); + } + + const dimCompound = await shapes.compound.makeCompound({ + shapes: shapesDimCompound, + }); + shapesToClean.push(dimCompound); + + const rotCompound = await bitbybit.occt.transforms.rotate({ + shape: dimCompound, + axis: [0, 1, 0], + angle: -model.ellipse3YRot, + }); + + shapesToClean.push(rotCompound); + const compWithWires = await bitbybit.occt.shapes.compound.makeCompound({ + shapes: [...wires, rotCompound], + }); + return compWithWires; +} diff --git a/examples/vite/threejs/hex-shell/src/helpers/downloads.ts b/examples/vite/threejs/hex-shell/src/helpers/downloads.ts new file mode 100644 index 00000000..2f870e9b --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/downloads.ts @@ -0,0 +1,62 @@ +import type { BitByBitBase, Inputs } from "@bitbybit-dev/threejs"; +import type { Scene } from "three"; +import { STLExporter } from "three/examples/jsm/exporters/STLExporter"; +import { GLTFExporter } from "three/examples/jsm/exporters/GLTFExporter"; + +export const downloadStep = async ( + bitbybit: BitByBitBase, + finalShape: Inputs.OCCT.TopoDSShapePointer | undefined +) => { + if (bitbybit && finalShape) { + // threejs is right handed - originally bitbybit was built on left handed system, thus this compensation is needed till + // we improve support + const exportShape = await bitbybit.occt.transforms.mirrorAlongNormal({ + shape: finalShape, + origin: [0, 0, 0], + normal: [0, 0, 1], + }); + await bitbybit.occt.io.saveShapeSTEP({ + shape: exportShape, + fileName: "shape", + adjustYtoZ: true, + tryDownload: true, + }); + bitbybit.occt.deleteShape({ shape: exportShape }); + } +}; + +export const downloadSTL = (scene: Scene) => { + if (scene) { + var exporter = new STLExporter(); + var str = exporter.parse(scene); + var blob = new Blob([str], { type: "text/plain" }); + var link = document.createElement("a"); + link.style.display = "none"; + document.body.appendChild(link); + link.href = URL.createObjectURL(blob); + link.download = "Scene.stl"; + link.click(); + } +}; + +export const downloadGLB = (scene: Scene) => { + if (scene) { + var exporter = new GLTFExporter(); + exporter.parse( + scene, + function (gltf: ArrayBuffer) { + var blob = new Blob([gltf], { type: "application/octet-stream" }); + var link = document.createElement("a"); + link.style.display = "none"; + document.body.appendChild(link); + link.href = URL.createObjectURL(blob); + link.download = "Scene.glb"; + link.click(); + }, + function (error: string) { + console.error("An error happened", error); + }, + { trs: false, onlyVisible: true, binary: true } + ); + } +}; diff --git a/examples/vite/threejs/hex-shell/src/helpers/gui-helper.ts b/examples/vite/threejs/hex-shell/src/helpers/gui-helper.ts new file mode 100644 index 00000000..c8f967e8 --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/gui-helper.ts @@ -0,0 +1,31 @@ +export function disableGUI() { + const lilGui = document.getElementsByClassName("lil-gui")[0] as HTMLElement; + lilGui.style.pointerEvents = "none"; + lilGui.style.opacity = "0.5"; +} + +export function enableGUI() { + const lilGui = document.getElementsByClassName("lil-gui")[0] as HTMLElement; + lilGui.style.pointerEvents = "all"; + lilGui.style.opacity = "1"; +} + +export function showSpinner() { + const element = document.createElement("div"); + element.id = "spinner"; + element.className = "lds-ellipsis"; + element.innerHTML = ` +
+
+
+`; + + document.body.appendChild(element); +} + +export function hideSpinner() { + const el = document.getElementById("spinner"); + if (el) { + el.remove(); + } +} diff --git a/examples/vite/threejs/hex-shell/src/helpers/index.ts b/examples/vite/threejs/hex-shell/src/helpers/index.ts new file mode 100644 index 00000000..5d4584ba --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/index.ts @@ -0,0 +1,7 @@ +export * from './create-gui'; +export * from './create-shape'; +export * from './init-kernels'; +export * from './init-threejs'; +export * from './downloads'; +export * from './gui-helper'; +export * from './downloads'; diff --git a/examples/vite/threejs/hex-shell/src/helpers/init-kernels.ts b/examples/vite/threejs/hex-shell/src/helpers/init-kernels.ts new file mode 100644 index 00000000..0667cc8b --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/init-kernels.ts @@ -0,0 +1,125 @@ +import type { BitByBitBase } from "@bitbybit-dev/threejs"; +import type { Scene } from "three"; +import type { KernelOptions } from "../models"; +import { first, firstValueFrom, tap } from "rxjs"; +import { OccStateEnum } from "@bitbybit-dev/occt-worker"; +import { JscadStateEnum } from "@bitbybit-dev/jscad-worker"; +import { ManifoldStateEnum } from "@bitbybit-dev/manifold-worker"; + +export async function initKernels( + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions +): Promise<{ message: string }> { + let occtWorkerInstance: Worker | undefined; + let jscadWorkerInstance: Worker | undefined; + let manifoldWorkerInstance: Worker | undefined; + + // 1. Conditionally create worker instances + if (options.enableOCCT) { + occtWorkerInstance = new Worker( + new URL("../workers/occt.worker.ts", import.meta.url), + { name: "OCC_WORKER", type: "module" } + ); + } + if (options.enableJSCAD) { + jscadWorkerInstance = new Worker( + new URL("../workers/jscad.worker.ts", import.meta.url), + { name: "JSCAD_WORKER", type: "module" } + ); + } + if (options.enableManifold) { + manifoldWorkerInstance = new Worker( + new URL("../workers/manifold.worker.ts", import.meta.url), + { name: "MANIFOLD_WORKER", type: "module" } + ); + } + + // 2. Initialize Bitbybit + await bitbybit.init( + scene, + occtWorkerInstance, + jscadWorkerInstance, + manifoldWorkerInstance + ); + + // 3. Collect promises for kernel initializations + const initializationPromises: Promise[] = []; + let anyKernelSelectedForInit = false; + + if (options.enableOCCT) { + anyKernelSelectedForInit = true; + if (bitbybit.occtWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.occtWorkerManager.occWorkerState$.pipe( + first((s) => s.state === OccStateEnum.initialised), + tap(() => console.log("OCCT Initialized")) + ) + ).then(() => { }) // Ensure the promise resolves to void for Promise.all + ); + } else { + console.warn( + "OCCT enabled in options, but occtWorkerManager not found after init." + ); + } + } + + if (options.enableJSCAD) { + anyKernelSelectedForInit = true; + if (bitbybit.jscadWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.jscadWorkerManager.jscadWorkerState$.pipe( + first((s) => s.state === JscadStateEnum.initialised), + tap(() => console.log("JSCAD Initialized")) + ) + ).then(() => { }) + ); + } else { + console.warn( + "JSCAD enabled in options, but jscadWorkerManager not found after init." + ); + } + } + + if (options.enableManifold) { + anyKernelSelectedForInit = true; + if (bitbybit.manifoldWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.manifoldWorkerManager.manifoldWorkerState$.pipe( + first((s) => s.state === ManifoldStateEnum.initialised), + tap(() => console.log("Manifold Initialized")) + ) + ).then(() => { }) + ); + } else { + console.warn( + "Manifold enabled in options, but manifoldWorkerManager not found after init." + ); + } + } + + // 4. Wait for selected & available kernels or handle no selection/availability + if (!anyKernelSelectedForInit) { + console.log("No kernels selected for initialization."); + return { message: "No kernels selected for initialization." }; + } + + if (initializationPromises.length === 0) { + // Kernels were selected, but none were awaitable (e.g., managers missing for all selected) + console.log( + "Kernels were selected, but none had managers available for awaiting initialization." + ); + return { + message: "Selected kernels were not awaitable for initialization state.", + }; + } + + await Promise.all(initializationPromises); + console.log("Selected and awaitable kernels initialized:", options); + return { + message: "Selected and awaitable kernels initialized successfully.", + }; +} diff --git a/examples/vite/threejs/hex-shell/src/helpers/init-threejs.ts b/examples/vite/threejs/hex-shell/src/helpers/init-threejs.ts new file mode 100644 index 00000000..bd0e7782 --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/helpers/init-threejs.ts @@ -0,0 +1,109 @@ +import { + Color, + DirectionalLight, + Fog, + HemisphereLight, + Mesh, + MeshPhongMaterial, + PerspectiveCamera, + PlaneGeometry, + Scene, + VSMShadowMap, + WebGLRenderer, +} from "three"; +import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; +import type { Current } from "../models"; + +export function initThreeJS() { + const domNode = document.getElementById("three-canvas") as HTMLCanvasElement; + + const camera = new PerspectiveCamera( + 70, + window.innerWidth / window.innerHeight, + 0.1, // Adjusted near plane for typical scenes + 1000 + ); + const scene = new Scene(); + scene.background = new Color(0x1a1c1f); // Set background color + + scene.fog = new Fog(0x1a1c1f, 150, 230); + const light = new HemisphereLight(0xffffff, 0x444444, 2); // Adjusted intensity + scene.add(light); + + const renderer = new WebGLRenderer({ antialias: true, canvas: domNode }); + renderer.setSize(window.innerWidth, window.innerHeight); + renderer.setPixelRatio(window.devicePixelRatio / 1.5); // Consider devicePixelRatio for sharpness + renderer.shadowMap.enabled = true; + renderer.shadowMap.type = VSMShadowMap; + + camera.position.set(10, 5, 120); + camera.aspect = window.innerWidth / window.innerHeight; + camera.near = 3; + camera.far = 1000; + camera.updateProjectionMatrix(); + + const controls = new OrbitControls(camera, renderer.domElement); + controls.enableDamping = true; + controls.dampingFactor = 0.05; + controls.zoomSpeed = 0.1; + controls.target.set(0, 0, 0); + controls.update(); + + const onWindowResize = () => { + camera.aspect = window.innerWidth / window.innerHeight; + camera.updateProjectionMatrix(); + renderer.setSize(window.innerWidth, window.innerHeight); + }; + window.addEventListener("resize", onWindowResize, false); + + const animate = () => { + controls.update(); // Important for damping + renderer.render(scene, camera); + }; + renderer.setAnimationLoop(animate); + + return { scene, camera, renderer }; // Return renderer and camera if needed elsewhere +} + +export function createDirLightsAndGround(scene: Scene, current: Current) { + const dirLight = new DirectionalLight(0xffffff, 3); + dirLight.position.set(70, 25, -70); + dirLight.castShadow = true; + dirLight.shadow.camera.near = 3; + dirLight.shadow.camera.far = 300; + const dist = 100; + dirLight.shadow.camera.right = dist; + dirLight.shadow.camera.left = -dist; + dirLight.shadow.camera.top = dist; + dirLight.shadow.camera.bottom = -dist; + dirLight.shadow.mapSize.width = 1024; + dirLight.shadow.mapSize.height = 1024; + dirLight.shadow.blurSamples = 3; + dirLight.shadow.radius = 2; + dirLight.shadow.bias = -0.0005; + + scene?.add(dirLight); + current.light1 = dirLight; + + const dirLight2 = new DirectionalLight(0xffffff, 2); + dirLight2.position.set(15, -40, -15); + dirLight2.shadow.camera.near = 3; + dirLight2.shadow.camera.far = 300; + dirLight2.shadow.camera.right = dist; + dirLight2.shadow.camera.left = -dist; + dirLight2.shadow.camera.top = dist; + dirLight2.shadow.camera.bottom = -dist; + + scene?.add(dirLight2); + + const material = new MeshPhongMaterial({ color: 0x444444 }); + material.shininess = 0; + material.specular = new Color(0x222222); + material.polygonOffset = true; + material.polygonOffsetFactor = 10; + const ground = new Mesh(new PlaneGeometry(740, 740, 1, 1), material); + ground.rotateX(-Math.PI / 2); + ground.receiveShadow = true; + current.ground = ground; + scene?.add(ground); +} diff --git a/examples/vite/threejs/hex-shell/src/main.ts b/examples/vite/threejs/hex-shell/src/main.ts index ebc1d623..763479ab 100644 --- a/examples/vite/threejs/hex-shell/src/main.ts +++ b/examples/vite/threejs/hex-shell/src/main.ts @@ -1,420 +1,102 @@ -import './style.css'; -import { BitByBitBase } from '@bitbybit-dev/threejs'; -import { OccStateEnum } from '@bitbybit-dev/occt-worker'; -import { Inputs } from '@bitbybit-dev/threejs'; -import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'; -import { STLExporter } from 'three/examples/jsm/exporters/STLExporter'; -import { GLTFExporter } from 'three/examples/jsm/exporters/GLTFExporter'; +import "./style.css"; +import { BitByBitBase, Inputs } from "@bitbybit-dev/threejs"; +import { model, type KernelOptions, current } from "./models"; import { - Color, - DirectionalLight, - Fog, - HemisphereLight, - Mesh, - MeshPhongMaterial, - PerspectiveCamera, - PlaneGeometry, - Scene, - Vector3, - VSMShadowMap, - WebGLRenderer, -} from 'three'; -import { GUI } from 'lil-gui'; -import { createShapeLod2, createShapeLod1 } from './create-shape'; -import type { Current } from './models/current'; -import type { Model } from './models/model'; - -document.querySelector('#app')!.innerHTML = ` - - -`; - -function component() { - let current: Current = { - group1: undefined, - group2: undefined, - dimensions: undefined, - ground: undefined, - light1: undefined, - gui: undefined, - }; - - const model = { - uHex: 3, - vHex: 12, - height: 15, - ellipse1MinRad: 15, - ellipse1MaxRad: 15, - ellipse2MinRad: 25, - ellipse2MaxRad: 30, - ellipse2RotX: 15, - ellipse2RotY: 15, - ellipse3MinRad: 45, - ellipse3MaxRad: 90, - ellipse3YRot: 45, - finalPrecision: 0.05, - drawEdges: false, - drawFaces: true, - rotationEnabled: false, - color1: '#b3ccff', - color2: '#ffffff', - } as Model; - - let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; - let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; - let bitbybit: BitByBitBase | undefined; - let scene: Scene | undefined; - - const rotationSpeed = 0.0005; - const rotateGroup = () => { - if ( - model.rotationEnabled && - current.group1 && - current.group2 && - current.dimensions - ) { - current.group1.rotation.y -= rotationSpeed; - current.group2.rotation.y -= rotationSpeed; - current.dimensions.rotation.y -= rotationSpeed; - } - }; - - const downloadStep = async () => { - if (bitbybit && finalShape) { - // threejs is right handed - originally bitbybit was built on left handed system, thus this compensation is needed till - // we improve support - const exportShape = await bitbybit.occt.transforms.mirrorAlongNormal({ - shape: finalShape, - origin: [0, 0, 0], - normal: [0, 0, 1], - }); - await bitbybit.occt.io.saveShapeSTEP({ - shape: exportShape, - fileName: 'shape', - adjustYtoZ: true, - tryDownload: true, - }); - bitbybit.occt.deleteShape({ shape: exportShape }); - } - }; - - const downloadSTL = () => { - if (scene) { - var exporter = new STLExporter(); - var str = exporter.parse(scene); - var blob = new Blob([str], { type: 'text/plain' }); - var link = document.createElement('a'); - link.style.display = 'none'; - document.body.appendChild(link); - link.href = URL.createObjectURL(blob); - link.download = 'Scene.stl'; - link.click(); - } - }; - - const downloadGLB = () => { - if (scene) { - var exporter = new GLTFExporter(); - exporter.parse( - scene, - function (gltf: ArrayBuffer) { - var blob = new Blob([gltf], { type: 'application/octet-stream' }); - var link = document.createElement('a'); - link.style.display = 'none'; - document.body.appendChild(link); - link.href = URL.createObjectURL(blob); - link.download = 'Scene.glb'; - link.click(); - }, - function (error: string) { - console.error('An error happened', error); - }, - { trs: false, onlyVisible: true, binary: true } - ); - } - }; + initKernels, + initThreeJS, + createGui, + createShapeLod1, + createShapeLod2, + createDirLightsAndGround, + disableGUI, + enableGUI, + hideSpinner, + showSpinner, + downloadGLB, + downloadSTL, + downloadStep, +} from "./helpers"; + +const kernelOptions: KernelOptions = { + enableOCCT: true, + enableJSCAD: false, + enableManifold: false, +}; + +start(); + +async function start() { + const { scene } = initThreeJS(); + createDirLightsAndGround(scene, current); + + const bitbybit = new BitByBitBase(); + await initKernels(scene, bitbybit, kernelOptions); + + let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; + let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; + + model.downloadStep = () => downloadStep(bitbybit, finalShape); + model.downloadGLB = () => downloadGLB(scene); + model.downloadSTL = () => downloadSTL(scene); + + createGui(current, model, updateShape); + + const rotationSpeed = 0.0005; + const rotateGroup = () => { + if ( + model.rotationEnabled && + current.group1 && + current.group2 && + current.dimensions + ) { + current.group1.rotation.y -= rotationSpeed; + current.group2.rotation.y -= rotationSpeed; + current.dimensions.rotation.y -= rotationSpeed; + } + }; - model.downloadGLB = downloadGLB; - model.downloadSTL = downloadSTL; - model.downloadStep = downloadStep; + scene.onBeforeRender = () => { + rotateGroup(); + }; - const updateShape = async (finish: boolean) => { - disableGUI(); - showSpinner(); - current.group1?.traverse((obj) => { - scene?.remove(obj); - }); - current.group2?.traverse((obj) => { - scene?.remove(obj); - }); - current.dimensions?.traverse((obj) => { - scene?.remove(obj); - }); - if (finish) { - finalShape = await createShapeLod2( + finalShape = await createShapeLod1( bitbybit, scene, model, shapesToClean, current - ); - } else { - finalShape = await createShapeLod1( - bitbybit, - scene, - model, - shapesToClean, - current - ); - } - hideSpinner(); - enableGUI(); - }; - - model.update = () => updateShape(true); - - const init = async () => { - bitbybit = new BitByBitBase(); - - const domNode = document.getElementById( - 'three-canvas' - ) as HTMLCanvasElement; - const occt = new Worker(new URL('./workers/occt.worker', import.meta.url), { - name: 'OCC', - type: 'module', - }); - - const camera = new PerspectiveCamera( - 70, - window.innerWidth / window.innerHeight, - 0.01, - 1000 ); - scene = new Scene(); - scene.fog = new Fog(0x1a1c1f, 150, 230); - const light = new HemisphereLight(0xffffff, 0x000000, 1); - scene.add(light); - await bitbybit.init(scene, occt, undefined); - - const renderer = new WebGLRenderer({ antialias: true, canvas: domNode }); - camera.aspect = window.innerWidth / window.innerHeight; - camera.near = 3; - camera.far = 1000; - camera.updateProjectionMatrix(); - - renderer.setSize(window.innerWidth, window.innerHeight); - renderer.setPixelRatio(window.devicePixelRatio / 1.5); - const animation = () => { - if (scene) { - renderer.render(scene, camera); - rotateGroup(); - } - controls.update(); - }; - - const controls = new OrbitControls(camera, renderer.domElement); - - camera.position.set(10, 5, 120); - - controls.update(); - controls.target = new Vector3(0, 5, 0); - controls.enableDamping = true; - controls.dampingFactor = 0.1; - controls.zoomSpeed = 0.1; - renderer.shadowMap.enabled = true; - renderer.shadowMap.type = VSMShadowMap; - - const onWindowResize = () => { - camera.aspect = window.innerWidth / window.innerHeight; - camera.updateProjectionMatrix(); - renderer.setSize(window.innerWidth, window.innerHeight); - }; - window.addEventListener('resize', onWindowResize, false); - - renderer.setClearColor(new Color(0x1a1c1f), 1); - - bitbybit.occtWorkerManager.occWorkerState$.subscribe(async (s) => { - if (s.state === OccStateEnum.initialised) { - finalShape = await createShapeLod1( - bitbybit, - scene, - model, - shapesToClean, - current - ); - - renderer.setAnimationLoop(animation); - - const dirLight = new DirectionalLight(0xffffff, 3); - dirLight.position.set(70, 25, -70); - dirLight.castShadow = true; - dirLight.shadow.camera.near = 3; - dirLight.shadow.camera.far = 300; - const dist = 100; - dirLight.shadow.camera.right = dist; - dirLight.shadow.camera.left = -dist; - dirLight.shadow.camera.top = dist; - dirLight.shadow.camera.bottom = -dist; - dirLight.shadow.mapSize.width = 6000; - dirLight.shadow.mapSize.height = 6000; - dirLight.shadow.blurSamples = 3; - dirLight.shadow.radius = 2; - dirLight.shadow.bias = -0.0005; - - scene?.add(dirLight); - current.light1 = dirLight; - - const dirLight2 = new DirectionalLight(0xffffff, 2); - dirLight2.position.set(15, -40, -15); - dirLight2.shadow.camera.near = 3; - dirLight2.shadow.camera.far = 300; - dirLight2.shadow.camera.right = dist; - dirLight2.shadow.camera.left = -dist; - dirLight2.shadow.camera.top = dist; - dirLight2.shadow.camera.bottom = -dist; - - scene?.add(dirLight2); - - const material = new MeshPhongMaterial({ color: 0x444444 }); - material.shininess = 0; - material.specular = new Color(0x222222); - material.polygonOffset = true; - material.polygonOffsetFactor = 10; - const ground = new Mesh(new PlaneGeometry(740, 740, 1, 1), material); - ground.rotateX(-Math.PI / 2); - ground.receiveShadow = true; - current.ground = ground; - scene?.add(ground); - - createGui(); - } - }); - }; - - const disableGUI = () => { - const lilGui = document.getElementsByClassName('lil-gui')[0] as HTMLElement; - lilGui.style.pointerEvents = 'none'; - lilGui.style.opacity = '0.5'; - }; - - const enableGUI = () => { - const lilGui = document.getElementsByClassName('lil-gui')[0] as HTMLElement; - lilGui.style.pointerEvents = 'all'; - lilGui.style.opacity = '1'; - }; - - function showSpinner() { - const element = document.createElement('div'); - element.id = 'spinner'; - element.className = 'lds-ellipsis'; - element.innerHTML = ` -
-
-
- `; - - document.body.appendChild(element); - } - - function hideSpinner() { - const el = document.getElementById('spinner'); - if (el) { - el.remove(); - } - } - - const createGui = () => { - const gui = new GUI(); - current.gui = gui; - gui.$title.innerHTML = 'Pattern'; - - gui - .add(model, 'uHex', 1, 14, 1) - .name('Hexagons U') - .onFinishChange((value: number) => { - model.uHex = value; - updateShape(false); - }); - - gui - .add(model, 'vHex', 8, 36, 2) - .name('Hexagons V') - .onFinishChange((value: number) => { - model.vHex = value; - updateShape(false); - }); - - gui - .add(model, 'height', 15, 25, 1) - .name('Height') - .onFinishChange((value: number) => { - model.height = value; - updateShape(false); - }); - - gui - .add(model, 'ellipse2RotX', 0, 15, 0.1) - .name('Angle Guide') - .onFinishChange((value: number) => { - model.ellipse2RotX = value; - updateShape(false); - }); - - gui - .add(model, 'finalPrecision', 0.01, 1, 0.01) - .name('Final Precision') - .onFinishChange((value: number) => { - model.finalPrecision = value; - }); - - gui - .add(model, 'rotationEnabled') - .name('Rotation Enabled') - .onFinishChange((value: boolean) => { - model.rotationEnabled = value; - }); - - gui - .add(model, 'drawEdges') - .name('Draw Edges') - .onFinishChange((value: boolean) => { - model.drawEdges = value; - }); - - gui - .addColor(model, 'color1') - .name('Color 1') - .onChange((value: string) => { - current.group1?.children.forEach((group) => { - const children = group?.children[0].children as Mesh[]; - [...children].forEach((child) => { - const material = (child as Mesh).material as MeshPhongMaterial; - material.color.setHex(parseInt(value.replace('#', '0x'))); - }); + async function updateShape(finish: boolean) { + disableGUI(); + showSpinner(); + current.group1?.traverse((obj) => { + scene?.remove(obj); }); - }); - - gui - .addColor(model, 'color2') - .name('Color 2') - .onChange((value: string) => { - current.group2?.children.forEach((group) => { - const children = group?.children[0].children as Mesh[]; - [...children].forEach((child) => { - const material = (child as Mesh).material as MeshPhongMaterial; - material.color.setHex(parseInt(value.replace('#', '0x'))); - }); + current.group2?.traverse((obj) => { + scene?.remove(obj); }); - }); - - gui.add(model, 'update').name('Finalize'); - gui.add(model, 'downloadSTL').name('Download STL'); - gui.add(model, 'downloadStep').name('Download STEP'); - gui.add(model, 'downloadGLB').name('Download GLB'); - }; - - init(); + current.dimensions?.traverse((obj) => { + scene?.remove(obj); + }); + if (finish) { + finalShape = await createShapeLod2( + bitbybit, + scene, + model, + shapesToClean, + current + ); + } else { + finalShape = await createShapeLod1( + bitbybit, + scene, + model, + shapesToClean, + current + ); + } + hideSpinner(); + enableGUI(); + } } - -component(); diff --git a/examples/vite/threejs/hex-shell/src/models/current.ts b/examples/vite/threejs/hex-shell/src/models/current.ts index 8730c8e1..915eda6b 100644 --- a/examples/vite/threejs/hex-shell/src/models/current.ts +++ b/examples/vite/threejs/hex-shell/src/models/current.ts @@ -1,5 +1,5 @@ -import { DirectionalLight, Group, Mesh } from 'three'; -import { GUI } from 'lil-gui'; +import { DirectionalLight, Group, Mesh } from "three"; +import { GUI } from "lil-gui"; export type Current = { group1: Group | undefined; @@ -9,3 +9,12 @@ export type Current = { ground: Mesh | undefined; gui: GUI | undefined; }; + +export const current: Current = { + group1: undefined, + group2: undefined, + dimensions: undefined, + ground: undefined, + light1: undefined, + gui: undefined, +}; diff --git a/examples/vite/threejs/hex-shell/src/models/index.ts b/examples/vite/threejs/hex-shell/src/models/index.ts new file mode 100644 index 00000000..23e3b232 --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/models/index.ts @@ -0,0 +1,3 @@ +export * from "./current"; +export * from "./kernel-options"; +export * from "./model"; diff --git a/examples/vite/threejs/hex-shell/src/models/kernel-options.ts b/examples/vite/threejs/hex-shell/src/models/kernel-options.ts new file mode 100644 index 00000000..a9a34b03 --- /dev/null +++ b/examples/vite/threejs/hex-shell/src/models/kernel-options.ts @@ -0,0 +1,5 @@ +export interface KernelOptions { + enableOCCT: boolean; + enableJSCAD: boolean; + enableManifold: boolean; +} diff --git a/examples/vite/threejs/hex-shell/src/models/model.ts b/examples/vite/threejs/hex-shell/src/models/model.ts index 5260fda4..863ca35f 100644 --- a/examples/vite/threejs/hex-shell/src/models/model.ts +++ b/examples/vite/threejs/hex-shell/src/models/model.ts @@ -1,24 +1,51 @@ +import type { BitByBitBase, Inputs } from "@bitbybit-dev/threejs"; +import type { Scene } from "three"; + export type Model = { - uHex: number; - vHex: number; - height: number; - ellipse1MinRad: number; - ellipse1MaxRad: number; - ellipse2MinRad: number; - ellipse2MaxRad: number; - ellipse2RotX: number; - ellipse2RotY: number; - ellipse3MinRad: number; - ellipse3MaxRad: number; - ellipse3YRot: number; - drawEdges: boolean; - drawFaces: boolean; - color1: string; - color2: string; - finalPrecision: number; - rotationEnabled: boolean; - downloadSTL?: () => void; - downloadStep?: () => void; - downloadGLB?: () => void; - update?: () => void; + uHex: number; + vHex: number; + height: number; + ellipse1MinRad: number; + ellipse1MaxRad: number; + ellipse2MinRad: number; + ellipse2MaxRad: number; + ellipse2RotX: number; + ellipse2RotY: number; + ellipse3MinRad: number; + ellipse3MaxRad: number; + ellipse3YRot: number; + drawEdges: boolean; + drawFaces: boolean; + color1: string; + color2: string; + finalPrecision: number; + rotationEnabled: boolean; + downloadSTL?: (scene: Scene) => void; + downloadStep?: ( + bitbybit: BitByBitBase, + finalShape: Inputs.OCCT.TopoDSShapePointer | undefined + ) => void; + downloadGLB?: (scene: Scene) => void; + update?: () => void; }; + +export const model = { + uHex: 3, + vHex: 12, + height: 15, + ellipse1MinRad: 15, + ellipse1MaxRad: 15, + ellipse2MinRad: 25, + ellipse2MaxRad: 30, + ellipse2RotX: 15, + ellipse2RotY: 15, + ellipse3MinRad: 45, + ellipse3MaxRad: 90, + ellipse3YRot: 45, + finalPrecision: 0.05, + drawEdges: false, + drawFaces: true, + rotationEnabled: false, + color1: "#b3ccff", + color2: "#ffffff", +} as Model; diff --git a/examples/vite/threejs/hex-shell/src/workers/jscad.worker.ts b/examples/vite/threejs/hex-shell/src/workers/jscad.worker.ts index 5ee5cda1..eeed36fd 100644 --- a/examples/vite/threejs/hex-shell/src/workers/jscad.worker.ts +++ b/examples/vite/threejs/hex-shell/src/workers/jscad.worker.ts @@ -1,12 +1,12 @@ import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/jscad-worker'; +} from "@bitbybit-dev/jscad-worker"; -import('@bitbybit-dev/jscad/jscad-generated').then((s) => { +import("@bitbybit-dev/jscad/jscad-generated").then((s) => { initializationComplete(s.default()); }); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); diff --git a/examples/vite/threejs/hex-shell/src/workers/manifold.worker.ts b/examples/vite/threejs/hex-shell/src/workers/manifold.worker.ts index a7302543..889fad80 100644 --- a/examples/vite/threejs/hex-shell/src/workers/manifold.worker.ts +++ b/examples/vite/threejs/hex-shell/src/workers/manifold.worker.ts @@ -1,13 +1,13 @@ import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/manifold-worker'; -import Module from 'manifold-3d'; +} from "@bitbybit-dev/manifold-worker"; +import Module from "manifold-3d"; const init = async () => { const wasm = await Module({ locateFile: () => { - return 'https://cdn.jsdelivr.net/gh/bitbybit-dev/bitbybit-assets@0.20.2/wasm/manifold.cc2ddd38.wasm'; + return "https://cdn.jsdelivr.net/gh/bitbybit-dev/bitbybit-assets@0.20.2/wasm/manifold.cc2ddd38.wasm"; }, }); wasm.setup(); @@ -16,6 +16,6 @@ const init = async () => { init(); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); diff --git a/examples/vite/threejs/hex-shell/src/workers/occt.worker.ts b/examples/vite/threejs/hex-shell/src/workers/occt.worker.ts index f613669d..492dfd44 100644 --- a/examples/vite/threejs/hex-shell/src/workers/occt.worker.ts +++ b/examples/vite/threejs/hex-shell/src/workers/occt.worker.ts @@ -1,14 +1,14 @@ -import initOpenCascade from '@bitbybit-dev/occt/bitbybit-dev-occt/cdn'; -import type { OpenCascadeInstance } from '@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.js'; +import initOpenCascade from "@bitbybit-dev/occt/bitbybit-dev-occt/cdn"; +import type { OpenCascadeInstance } from "@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.js"; import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/occt-worker'; +} from "@bitbybit-dev/occt-worker"; initOpenCascade().then((occ: OpenCascadeInstance) => { initializationComplete(occ, undefined); }); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); From d3746fc6732c9c8fd9021c0f59f6f0925e64b730 Mon Sep 17 00:00:00 2001 From: Matas Ubarevicius Date: Sat, 31 May 2025 00:26:12 +0300 Subject: [PATCH 5/7] update hex shell babylonjs project --- examples/vite/babylonjs/hex-shell/index.html | 4 +- .../babylonjs/hex-shell/package-lock.json | 1297 ++++++++++++++--- .../hex-shell/src/helpers/create-gui.ts | 94 ++ .../src/{ => helpers}/create-shape.ts | 34 +- .../hex-shell/src/helpers/downloads.ts | 39 + .../hex-shell/src/helpers/gui-helper.ts | 31 + .../babylonjs/hex-shell/src/helpers/index.ts | 7 + .../hex-shell/src/helpers/init-babylonjs.ts | 77 + .../hex-shell/src/helpers/init-kernels.ts | 125 ++ examples/vite/babylonjs/hex-shell/src/main.ts | 373 +---- .../babylonjs/hex-shell/src/models/current.ts | 13 +- .../babylonjs/hex-shell/src/models/index.ts | 3 + .../hex-shell/src/models/kernel-options.ts | 5 + .../babylonjs/hex-shell/src/models/model.ts | 33 +- .../hex-shell/src/workers/jscad.worker.ts | 6 +- .../hex-shell/src/workers/manifold.worker.ts | 8 +- .../hex-shell/src/workers/occt.worker.ts | 8 +- 17 files changed, 1589 insertions(+), 568 deletions(-) create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/create-gui.ts rename examples/vite/babylonjs/hex-shell/src/{ => helpers}/create-shape.ts (96%) create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/downloads.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/gui-helper.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/index.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/init-babylonjs.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/helpers/init-kernels.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/models/index.ts create mode 100644 examples/vite/babylonjs/hex-shell/src/models/kernel-options.ts diff --git a/examples/vite/babylonjs/hex-shell/index.html b/examples/vite/babylonjs/hex-shell/index.html index c7a81179..00deb7c0 100644 --- a/examples/vite/babylonjs/hex-shell/index.html +++ b/examples/vite/babylonjs/hex-shell/index.html @@ -4,7 +4,7 @@ - Bitbybit & ThreeJS CAD Example + Bitbybit & ThreeJS All Kernels Example
support the mission - subscribe
-
+ diff --git a/examples/vite/babylonjs/hex-shell/package-lock.json b/examples/vite/babylonjs/hex-shell/package-lock.json index bd467c19..01ce8597 100644 --- a/examples/vite/babylonjs/hex-shell/package-lock.json +++ b/examples/vite/babylonjs/hex-shell/package-lock.json @@ -1,7 +1,7 @@ { "name": "vite-typescript-starter", "version": "0.0.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -20,12 +20,14 @@ "node_modules/@babylonjs/core": { "version": "8.9.1", "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-8.9.1.tgz", - "integrity": "sha512-YJvsQgjEtBIKDJXCi+6rhPH5UJ46QbaMknO5fQGg8tT2PI5L6D+vfrhdZc1YNnzDrOmLkrkXF/Uy2CGdXFdT9Q==" + "integrity": "sha512-YJvsQgjEtBIKDJXCi+6rhPH5UJ46QbaMknO5fQGg8tT2PI5L6D+vfrhdZc1YNnzDrOmLkrkXF/Uy2CGdXFdT9Q==", + "license": "Apache-2.0" }, "node_modules/@babylonjs/gui": { "version": "8.9.1", "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-8.9.1.tgz", "integrity": "sha512-kYxPJ8C3HlNYrsKn3fPXJhQ8/BFUxMksBSNKQD+AsduEFWsMSlViYPdcMFh3oGpXEFZsqefoBoQe9xwN9L7brw==", + "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^8.0.0" } @@ -34,6 +36,7 @@ "version": "1.3.10", "resolved": "https://registry.npmjs.org/@babylonjs/havok/-/havok-1.3.10.tgz", "integrity": "sha512-ddF0LPBVmg+rmPaMmwTPA9FcHyUnrSsQqFoBbYbN51WMhEJQ+7gRFW3J5lML6lN9M/fbknh6bh1ZirZ2bU2B/w==", + "license": "MIT", "dependencies": { "@types/emscripten": "^1.39.6" } @@ -42,6 +45,7 @@ "version": "8.9.1", "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-8.9.1.tgz", "integrity": "sha512-8UolyusbjHoVVD2nNrqMMNS0a6OIiGrxPyzs6LYqCRFuXKXNhnFIPYCNU3WEBeD5Uc3+UQXgSaQpZudtjflFMw==", + "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^8.0.0", "babylonjs-gltf2interface": "^8.0.0" @@ -51,6 +55,7 @@ "version": "8.9.1", "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-8.9.1.tgz", "integrity": "sha512-/Ey/Kkb9JcqM1eJ7HpOcvMhCbE2CAPRJRBhTCe6jUQ08eG/nuOJHs5SRUBdP4X4DRxgDQWY0owFP2nLLWQKM6A==", + "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^8.6.0" } @@ -59,6 +64,7 @@ "version": "8.9.1", "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-8.9.1.tgz", "integrity": "sha512-iGsizPwkQp00PaBzZing+5/CBR/x2yCkGu7GsOx2uFfoutihtn8zy+u51rarE2O6TO2sNjxp/KxCMng48c8KWA==", + "license": "Apache-2.0", "peerDependencies": { "@babylonjs/core": "^8.0.0", "babylonjs-gltf2interface": "^8.0.0" @@ -68,6 +74,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-0.20.4.tgz", "integrity": "sha512-tn+1VYQgz+6c2i16HpkIgWnIIRdnUCQKFdA701QGcKB59zJ67rU7Y8TIVTSVgPwJ9mJLpg1Co3bCVYEAyGCYXw==", + "license": "MIT", "dependencies": { "@babylonjs/core": "8.9.1", "@babylonjs/gui": "8.9.1", @@ -82,12 +89,14 @@ "node_modules/@bitbybit-dev/base": { "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-0.20.4.tgz", - "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==" + "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==", + "license": "MIT" }, "node_modules/@bitbybit-dev/core": { "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-0.20.4.tgz", "integrity": "sha512-T2hOHzvI+ikNxQRvhDyk/TeMCBhjZPY+wLmRSbYHiWnNGP5+3GCesZyb672XfEwPIWRH2kBS4vyp9R9fRnJujQ==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4", "@bitbybit-dev/jscad-worker": "0.20.4", @@ -102,6 +111,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-0.20.4.tgz", "integrity": "sha512-e7/7Ag796rwn58H6Nu0lzhDkim+rJTqMWCqFZquNswoX2qqZXCv8azyOFE2LqfTvyIsEeJr/VEWIy2nvmtJnmg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4", "@jscad/3mf-serializer": "2.1.12", @@ -115,6 +125,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-0.20.4.tgz", "integrity": "sha512-DsjL2YO6urR8B/8LKYRrk4q9hAJE8oB+e5m+LDDBXbl7Vl0CHdC5ogPm6w07RcAHdSbMJouf2Ow7nGP/oOcjEg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/jscad": "0.20.4", "rxjs": "7.5.5" @@ -124,6 +135,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-0.20.4.tgz", "integrity": "sha512-rEGO8wOd/RUWPIRWdyE70w79JXhQ1iV6mACBuOH8/UD7+vf9wkk3KLWAYCzVPJP1nvx4+/SKCvU7e1JxEzq0Qw==", + "license": "MIT", "dependencies": { "manifold-3d": "3.0.0" } @@ -132,6 +144,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-0.20.4.tgz", "integrity": "sha512-mwU87fg8M3p472dn/RiuveiPtq/IuOWCcoG0uismEE2g+rnciMrCSUSkXMkfXDCk9l0ZqoVfYg+dHVx0KBHBUg==", + "license": "MIT", "dependencies": { "@bitbybit-dev/manifold": "0.20.4", "rxjs": "7.5.5" @@ -141,6 +154,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-0.20.4.tgz", "integrity": "sha512-Lxx4wsToS3EIiS2L3KjUh6Jpgvxsyxbh2Jt4raWhIbD9PSy1zRfMww9K7xFlawSMgq12WN1a0lV8ydKs1f5/zw==", + "license": "MIT", "dependencies": { "@bitbybit-dev/base": "0.20.4" } @@ -149,6 +163,7 @@ "version": "0.20.4", "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-0.20.4.tgz", "integrity": "sha512-R5fiGteBSitv89Pz3XVgs+Vv0c1uH477oihkw1EUWLDTa7ypiXOohpjlKYFd/qAy3QCe8GEF3jDT+TK3dsQ+FA==", + "license": "MIT", "dependencies": { "@bitbybit-dev/occt": "0.20.4", "rxjs": "7.5.5" @@ -158,12 +173,13 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ "ppc64" ], @@ -177,9 +193,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", "cpu": [ "arm" ], @@ -193,9 +209,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", "cpu": [ "arm64" ], @@ -209,9 +225,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", "cpu": [ "x64" ], @@ -225,9 +241,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", "cpu": [ "arm64" ], @@ -241,9 +257,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", "cpu": [ "x64" ], @@ -257,9 +273,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", "cpu": [ "arm64" ], @@ -273,9 +289,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", "cpu": [ "x64" ], @@ -289,9 +305,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", "cpu": [ "arm" ], @@ -305,9 +321,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", "cpu": [ "arm64" ], @@ -321,9 +337,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", "cpu": [ "ia32" ], @@ -337,9 +353,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", "cpu": [ "loong64" ], @@ -353,9 +369,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", "cpu": [ "mips64el" ], @@ -369,9 +385,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", "cpu": [ "ppc64" ], @@ -385,9 +401,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", "cpu": [ "riscv64" ], @@ -401,9 +417,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", "cpu": [ "s390x" ], @@ -417,9 +433,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", "cpu": [ "x64" ], @@ -433,9 +449,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", "cpu": [ "arm64" ], @@ -449,9 +465,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", "cpu": [ "x64" ], @@ -465,9 +481,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", "cpu": [ "arm64" ], @@ -481,9 +497,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", "cpu": [ "x64" ], @@ -497,9 +513,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", "cpu": [ "x64" ], @@ -513,9 +529,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", "cpu": [ "arm64" ], @@ -529,9 +545,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", "cpu": [ "ia32" ], @@ -545,9 +561,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", "cpu": [ "x64" ], @@ -564,6 +580,7 @@ "version": "2.1.12", "resolved": "https://registry.npmjs.org/@jscad/3mf-serializer/-/3mf-serializer-2.1.12.tgz", "integrity": "sha512-+rxAIKIHCpaplupwwsdXtG1IdimPXFFB45nrjy6gdFHi36bEQW6y/RQD/ngenRiKnYSxu7/M0LatHcjve8z64A==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3", @@ -574,12 +591,14 @@ "node_modules/@jscad/array-utils": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@jscad/array-utils/-/array-utils-2.1.4.tgz", - "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==" + "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==", + "license": "MIT" }, "node_modules/@jscad/dxf-serializer": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/@jscad/dxf-serializer/-/dxf-serializer-2.1.18.tgz", "integrity": "sha512-T5Qe2jbEphcWAk7GaOY8PCMD4DPhTm6gWk/MPJCExphhnUwJqcU/1RiMb5hiD+N6hHzmlxD59I8QTjlp9LbLSA==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3" @@ -588,17 +607,20 @@ "node_modules/@jscad/io-utils": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/@jscad/io-utils/-/io-utils-2.0.28.tgz", - "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==" + "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==", + "license": "MIT" }, "node_modules/@jscad/modeling": { "version": "2.12.3", "resolved": "https://registry.npmjs.org/@jscad/modeling/-/modeling-2.12.3.tgz", - "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==" + "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==", + "license": "MIT" }, "node_modules/@jscad/stl-serializer": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/@jscad/stl-serializer/-/stl-serializer-2.1.18.tgz", "integrity": "sha512-pz++TRjHI7jBPnnxQUi4B/uYUG3yCDsKlw8+xL2kumwjb+auc6Ng6Rnr/GqUTkgHrnGut08wg/8AekyWjvBwYg==", + "license": "MIT", "dependencies": { "@jscad/array-utils": "2.1.4", "@jscad/modeling": "2.12.3" @@ -608,6 +630,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -619,6 +642,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", "engines": { "node": ">= 10.16.0" }, @@ -627,9 +651,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz", - "integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", "cpu": [ "arm" ], @@ -640,9 +664,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz", - "integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", "cpu": [ "arm64" ], @@ -653,9 +677,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz", - "integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", "cpu": [ "arm64" ], @@ -666,9 +690,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz", - "integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", "cpu": [ "x64" ], @@ -679,9 +703,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz", - "integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", "cpu": [ "arm64" ], @@ -692,9 +716,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz", - "integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", "cpu": [ "x64" ], @@ -705,9 +729,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz", - "integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", "cpu": [ "arm" ], @@ -718,9 +742,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz", - "integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", "cpu": [ "arm" ], @@ -731,9 +755,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz", - "integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", "cpu": [ "arm64" ], @@ -744,9 +768,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz", - "integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", "cpu": [ "arm64" ], @@ -757,9 +781,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz", - "integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", "cpu": [ "loong64" ], @@ -770,9 +794,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz", - "integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", "cpu": [ "ppc64" ], @@ -783,9 +807,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz", - "integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", "cpu": [ "riscv64" ], @@ -796,9 +820,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz", - "integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", "cpu": [ "riscv64" ], @@ -809,9 +833,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz", - "integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", "cpu": [ "s390x" ], @@ -822,9 +846,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz", - "integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", "cpu": [ "x64" ], @@ -835,9 +859,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz", - "integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", "cpu": [ "x64" ], @@ -848,9 +872,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz", - "integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", "cpu": [ "arm64" ], @@ -861,9 +885,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz", - "integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", "cpu": [ "ia32" ], @@ -874,9 +898,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz", - "integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", "cpu": [ "x64" ], @@ -890,12 +914,14 @@ "version": "23.1.3", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/emscripten": { "version": "1.40.1", "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.40.1.tgz", - "integrity": "sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==" + "integrity": "sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==", + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.7", @@ -904,16 +930,18 @@ "dev": true }, "node_modules/@types/stats.js": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", - "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==", - "dev": true + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/three": { "version": "0.176.0", "resolved": "https://registry.npmjs.org/@types/three/-/three-0.176.0.tgz", "integrity": "sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw==", "dev": true, + "license": "MIT", "dependencies": { "@dimforge/rapier3d-compat": "^0.12.0", "@tweenjs/tween.js": "~23.1.3", @@ -928,30 +956,35 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/webxr": { "version": "0.5.22", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.22.tgz", "integrity": "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@webgpu/types": { "version": "0.1.60", "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/babylonjs-gltf2interface": { - "version": "8.9.1", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.9.1.tgz", - "integrity": "sha512-7GjEcvwL+d/lJ058J7rYTM96reekIq/kjg6SkM7NG6+Krj7UM3HMeJkAhwj22dCBfOs2/RzjFSGleEhh5qjq5g==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.10.0.tgz", + "integrity": "sha512-ExGp0TqBzX9ZnWryYSccNZJnFHAby4XHYhwvsCkOJy+3+uDb56x9Q7Ao1eGuncepzclSbzrxohuOhalPgm6dAw==", + "license": "Apache-2.0", "peer": true }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" @@ -960,12 +993,13 @@ "node_modules/earcut": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz", - "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" + "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==", + "license": "ISC" }, "node_modules/esbuild": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, "bin": { @@ -975,31 +1009,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.4", - "@esbuild/android-arm": "0.25.4", - "@esbuild/android-arm64": "0.25.4", - "@esbuild/android-x64": "0.25.4", - "@esbuild/darwin-arm64": "0.25.4", - "@esbuild/darwin-x64": "0.25.4", - "@esbuild/freebsd-arm64": "0.25.4", - "@esbuild/freebsd-x64": "0.25.4", - "@esbuild/linux-arm": "0.25.4", - "@esbuild/linux-arm64": "0.25.4", - "@esbuild/linux-ia32": "0.25.4", - "@esbuild/linux-loong64": "0.25.4", - "@esbuild/linux-mips64el": "0.25.4", - "@esbuild/linux-ppc64": "0.25.4", - "@esbuild/linux-riscv64": "0.25.4", - "@esbuild/linux-s390x": "0.25.4", - "@esbuild/linux-x64": "0.25.4", - "@esbuild/netbsd-arm64": "0.25.4", - "@esbuild/netbsd-x64": "0.25.4", - "@esbuild/openbsd-arm64": "0.25.4", - "@esbuild/openbsd-x64": "0.25.4", - "@esbuild/sunos-x64": "0.25.4", - "@esbuild/win32-arm64": "0.25.4", - "@esbuild/win32-ia32": "0.25.4", - "@esbuild/win32-x64": "0.25.4" + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" } }, "node_modules/fdir": { @@ -1019,12 +1053,14 @@ "node_modules/fflate": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", - "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" + "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==", + "license": "MIT" }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", "optional": true }, "node_modules/fsevents": { @@ -1045,6 +1081,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", "engines": { "node": ">= 10.16.0" } @@ -1053,6 +1090,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.1.0.tgz", "integrity": "sha512-gHfV1IYqH8uJHYVTs8BJX1XKy2/rR93+f8QQi0xhx95aCiXn1ettYAd5T+7FU6wfqyDoX/wy0pm/fL3jOKJ9Lg==", + "license": "MIT", "dependencies": { "@jsep-plugin/assignment": "^1.2.1", "@jsep-plugin/regex": "^1.0.3", @@ -1069,23 +1107,27 @@ "node_modules/lil-gui": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.20.0.tgz", - "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==" + "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==", + "license": "MIT" }, "node_modules/manifold-3d": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/manifold-3d/-/manifold-3d-3.0.0.tgz", - "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==" + "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==", + "license": "Apache-2.0" }, "node_modules/meshoptimizer": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nan": { "version": "2.22.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "license": "MIT", "optional": true }, "node_modules/nanoid": { @@ -1110,6 +1152,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/onml/-/onml-1.2.0.tgz", "integrity": "sha512-olqYAg18XoHAhm7tK9DdBCOVdts70DGmMgCNLOWyqZokht2utgGSKBB4JHi6pBZpmioAhcYlxK+91L3tsrz+GA==", + "license": "MIT", "dependencies": { "sax": "^1.2.1" } @@ -1161,9 +1204,9 @@ } }, "node_modules/rollup": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", - "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", "dev": true, "dependencies": { "@types/estree": "1.0.7" @@ -1176,26 +1219,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.0", - "@rollup/rollup-android-arm64": "4.41.0", - "@rollup/rollup-darwin-arm64": "4.41.0", - "@rollup/rollup-darwin-x64": "4.41.0", - "@rollup/rollup-freebsd-arm64": "4.41.0", - "@rollup/rollup-freebsd-x64": "4.41.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.0", - "@rollup/rollup-linux-arm-musleabihf": "4.41.0", - "@rollup/rollup-linux-arm64-gnu": "4.41.0", - "@rollup/rollup-linux-arm64-musl": "4.41.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-gnu": "4.41.0", - "@rollup/rollup-linux-riscv64-musl": "4.41.0", - "@rollup/rollup-linux-s390x-gnu": "4.41.0", - "@rollup/rollup-linux-x64-gnu": "4.41.0", - "@rollup/rollup-linux-x64-musl": "4.41.0", - "@rollup/rollup-win32-arm64-msvc": "4.41.0", - "@rollup/rollup-win32-ia32-msvc": "4.41.0", - "@rollup/rollup-win32-x64-msvc": "4.41.0", + "@rollup/rollup-android-arm-eabi": "4.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", "fsevents": "~2.3.2" } }, @@ -1203,6 +1246,7 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -1210,7 +1254,8 @@ "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/source-map-js": { "version": "1.2.1", @@ -1240,7 +1285,8 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/typescript": { "version": "5.8.3", @@ -1259,14 +1305,15 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/verb-nurbs-web/-/verb-nurbs-web-2.1.3.tgz", "integrity": "sha512-2PvI2bx7dn0r3kWtk+JuDIDZ+p7I5Piu8y6/ZNhUVpilOyHKK1nNzLHtgown+dFOmBnKnuAKIMh1xn/5kzrxZA==", + "license": "MIT", "optionalDependencies": { "webworker-threads": "^0.7.12" } }, "node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -1342,6 +1389,7 @@ "resolved": "https://registry.npmjs.org/webworker-threads/-/webworker-threads-0.7.17.tgz", "integrity": "sha512-Y2w2aXBbDLk9IzTEb9u+MsODC3s4YlGI7g4h0t+1OAwIO8yBI9rQL35ZYlyayiCuWu1dZMH/P7kGU8OwW7YsyA==", "hasInstallScript": true, + "license": "(MIT AND Apache-2.0)", "optional": true, "dependencies": { "bindings": "^1.3.0", @@ -1351,5 +1399,824 @@ "node": ">= 0.10.16" } } + }, + "dependencies": { + "@babylonjs/core": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-8.9.1.tgz", + "integrity": "sha512-YJvsQgjEtBIKDJXCi+6rhPH5UJ46QbaMknO5fQGg8tT2PI5L6D+vfrhdZc1YNnzDrOmLkrkXF/Uy2CGdXFdT9Q==" + }, + "@babylonjs/gui": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/@babylonjs/gui/-/gui-8.9.1.tgz", + "integrity": "sha512-kYxPJ8C3HlNYrsKn3fPXJhQ8/BFUxMksBSNKQD+AsduEFWsMSlViYPdcMFh3oGpXEFZsqefoBoQe9xwN9L7brw==", + "requires": {} + }, + "@babylonjs/havok": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@babylonjs/havok/-/havok-1.3.10.tgz", + "integrity": "sha512-ddF0LPBVmg+rmPaMmwTPA9FcHyUnrSsQqFoBbYbN51WMhEJQ+7gRFW3J5lML6lN9M/fbknh6bh1ZirZ2bU2B/w==", + "requires": { + "@types/emscripten": "^1.39.6" + } + }, + "@babylonjs/loaders": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-8.9.1.tgz", + "integrity": "sha512-8UolyusbjHoVVD2nNrqMMNS0a6OIiGrxPyzs6LYqCRFuXKXNhnFIPYCNU3WEBeD5Uc3+UQXgSaQpZudtjflFMw==", + "requires": {} + }, + "@babylonjs/materials": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-8.9.1.tgz", + "integrity": "sha512-/Ey/Kkb9JcqM1eJ7HpOcvMhCbE2CAPRJRBhTCe6jUQ08eG/nuOJHs5SRUBdP4X4DRxgDQWY0owFP2nLLWQKM6A==", + "requires": {} + }, + "@babylonjs/serializers": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/@babylonjs/serializers/-/serializers-8.9.1.tgz", + "integrity": "sha512-iGsizPwkQp00PaBzZing+5/CBR/x2yCkGu7GsOx2uFfoutihtn8zy+u51rarE2O6TO2sNjxp/KxCMng48c8KWA==", + "requires": {} + }, + "@bitbybit-dev/babylonjs": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/babylonjs/-/babylonjs-0.20.4.tgz", + "integrity": "sha512-tn+1VYQgz+6c2i16HpkIgWnIIRdnUCQKFdA701QGcKB59zJ67rU7Y8TIVTSVgPwJ9mJLpg1Co3bCVYEAyGCYXw==", + "requires": { + "@babylonjs/core": "8.9.1", + "@babylonjs/gui": "8.9.1", + "@babylonjs/havok": "1.3.10", + "@babylonjs/loaders": "8.9.1", + "@babylonjs/materials": "8.9.1", + "@babylonjs/serializers": "8.9.1", + "@bitbybit-dev/core": "0.20.4", + "earcut": "2.2.3" + } + }, + "@bitbybit-dev/base": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/base/-/base-0.20.4.tgz", + "integrity": "sha512-yMsOkUFrm9JIGC3Bs49bu1I/gqwQNK8nVO3XgesOpzZvVQOF5OTxCheiQnrqiUw9DiiPuKw1T0gXBMwThzwdOw==" + }, + "@bitbybit-dev/core": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/core/-/core-0.20.4.tgz", + "integrity": "sha512-T2hOHzvI+ikNxQRvhDyk/TeMCBhjZPY+wLmRSbYHiWnNGP5+3GCesZyb672XfEwPIWRH2kBS4vyp9R9fRnJujQ==", + "requires": { + "@bitbybit-dev/base": "0.20.4", + "@bitbybit-dev/jscad-worker": "0.20.4", + "@bitbybit-dev/manifold-worker": "0.20.4", + "@bitbybit-dev/occt-worker": "0.20.4", + "jsonpath-plus": "10.1.0", + "rxjs": "7.5.5", + "verb-nurbs-web": "2.1.3" + } + }, + "@bitbybit-dev/jscad": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad/-/jscad-0.20.4.tgz", + "integrity": "sha512-e7/7Ag796rwn58H6Nu0lzhDkim+rJTqMWCqFZquNswoX2qqZXCv8azyOFE2LqfTvyIsEeJr/VEWIy2nvmtJnmg==", + "requires": { + "@bitbybit-dev/base": "0.20.4", + "@jscad/3mf-serializer": "2.1.12", + "@jscad/dxf-serializer": "2.1.18", + "@jscad/io-utils": "2.0.28", + "@jscad/modeling": "2.12.3", + "@jscad/stl-serializer": "2.1.18" + } + }, + "@bitbybit-dev/jscad-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/jscad-worker/-/jscad-worker-0.20.4.tgz", + "integrity": "sha512-DsjL2YO6urR8B/8LKYRrk4q9hAJE8oB+e5m+LDDBXbl7Vl0CHdC5ogPm6w07RcAHdSbMJouf2Ow7nGP/oOcjEg==", + "requires": { + "@bitbybit-dev/jscad": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@bitbybit-dev/manifold": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold/-/manifold-0.20.4.tgz", + "integrity": "sha512-rEGO8wOd/RUWPIRWdyE70w79JXhQ1iV6mACBuOH8/UD7+vf9wkk3KLWAYCzVPJP1nvx4+/SKCvU7e1JxEzq0Qw==", + "requires": { + "manifold-3d": "3.0.0" + } + }, + "@bitbybit-dev/manifold-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/manifold-worker/-/manifold-worker-0.20.4.tgz", + "integrity": "sha512-mwU87fg8M3p472dn/RiuveiPtq/IuOWCcoG0uismEE2g+rnciMrCSUSkXMkfXDCk9l0ZqoVfYg+dHVx0KBHBUg==", + "requires": { + "@bitbybit-dev/manifold": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@bitbybit-dev/occt": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt/-/occt-0.20.4.tgz", + "integrity": "sha512-Lxx4wsToS3EIiS2L3KjUh6Jpgvxsyxbh2Jt4raWhIbD9PSy1zRfMww9K7xFlawSMgq12WN1a0lV8ydKs1f5/zw==", + "requires": { + "@bitbybit-dev/base": "0.20.4" + } + }, + "@bitbybit-dev/occt-worker": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/@bitbybit-dev/occt-worker/-/occt-worker-0.20.4.tgz", + "integrity": "sha512-R5fiGteBSitv89Pz3XVgs+Vv0c1uH477oihkw1EUWLDTa7ypiXOohpjlKYFd/qAy3QCe8GEF3jDT+TK3dsQ+FA==", + "requires": { + "@bitbybit-dev/occt": "0.20.4", + "rxjs": "7.5.5" + } + }, + "@dimforge/rapier3d-compat": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", + "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==", + "dev": true + }, + "@esbuild/aix-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "dev": true, + "optional": true + }, + "@jscad/3mf-serializer": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@jscad/3mf-serializer/-/3mf-serializer-2.1.12.tgz", + "integrity": "sha512-+rxAIKIHCpaplupwwsdXtG1IdimPXFFB45nrjy6gdFHi36bEQW6y/RQD/ngenRiKnYSxu7/M0LatHcjve8z64A==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3", + "fflate": "0.7.3", + "onml": "1.2.0" + } + }, + "@jscad/array-utils": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@jscad/array-utils/-/array-utils-2.1.4.tgz", + "integrity": "sha512-c31r4zSKsE+4Xfwk2V8monDA0hx5G89QGzaakWVUvuGNowYS9WSsYCwHiTIXodjR+HEnDu4okQ7k/whmP0Ne2g==" + }, + "@jscad/dxf-serializer": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@jscad/dxf-serializer/-/dxf-serializer-2.1.18.tgz", + "integrity": "sha512-T5Qe2jbEphcWAk7GaOY8PCMD4DPhTm6gWk/MPJCExphhnUwJqcU/1RiMb5hiD+N6hHzmlxD59I8QTjlp9LbLSA==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3" + } + }, + "@jscad/io-utils": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/@jscad/io-utils/-/io-utils-2.0.28.tgz", + "integrity": "sha512-spXh37wAgmwjKztoH/HANLgImcqRHX5+H/cRIxPfpqDIWvu7I5bRg2ZTwh25SYlKIzxPk4qX5Nu7Ax5+Kg+QXQ==" + }, + "@jscad/modeling": { + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/@jscad/modeling/-/modeling-2.12.3.tgz", + "integrity": "sha512-DnAacXq3zhlYWIixGlFD7RMpgZAMuCaMZNQov0NaoFfs2GaBuTC5eqkqKcEVbhEerBmTllbjjF5IXjJMt9jcOA==" + }, + "@jscad/stl-serializer": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@jscad/stl-serializer/-/stl-serializer-2.1.18.tgz", + "integrity": "sha512-pz++TRjHI7jBPnnxQUi4B/uYUG3yCDsKlw8+xL2kumwjb+auc6Ng6Rnr/GqUTkgHrnGut08wg/8AekyWjvBwYg==", + "requires": { + "@jscad/array-utils": "2.1.4", + "@jscad/modeling": "2.12.3" + } + }, + "@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "requires": {} + }, + "@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "requires": {} + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", + "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", + "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", + "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", + "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", + "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", + "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", + "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", + "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", + "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", + "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", + "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", + "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", + "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", + "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", + "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", + "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", + "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", + "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", + "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", + "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", + "dev": true, + "optional": true + }, + "@tweenjs/tween.js": { + "version": "23.1.3", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", + "dev": true + }, + "@types/emscripten": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.40.1.tgz", + "integrity": "sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==" + }, + "@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true + }, + "@types/stats.js": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true + }, + "@types/three": { + "version": "0.176.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.176.0.tgz", + "integrity": "sha512-FwfPXxCqOtP7EdYMagCFePNKoG1AGBDUEVKtluv2BTVRpSt7b+X27xNsirPCTCqY1pGYsPUzaM3jgWP7dXSxlw==", + "dev": true, + "requires": { + "@dimforge/rapier3d-compat": "^0.12.0", + "@tweenjs/tween.js": "~23.1.3", + "@types/stats.js": "*", + "@types/webxr": "*", + "@webgpu/types": "*", + "fflate": "~0.8.2", + "meshoptimizer": "~0.18.1" + }, + "dependencies": { + "fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true + } + } + }, + "@types/webxr": { + "version": "0.5.22", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.22.tgz", + "integrity": "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==", + "dev": true + }, + "@webgpu/types": { + "version": "0.1.60", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.60.tgz", + "integrity": "sha512-8B/tdfRFKdrnejqmvq95ogp8tf52oZ51p3f4QD5m5Paey/qlX4Rhhy5Y8tgFMi7Ms70HzcMMw3EQjH/jdhTwlA==", + "dev": true + }, + "babylonjs-gltf2interface": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.10.0.tgz", + "integrity": "sha512-ExGp0TqBzX9ZnWryYSccNZJnFHAby4XHYhwvsCkOJy+3+uDb56x9Q7Ao1eGuncepzclSbzrxohuOhalPgm6dAw==", + "peer": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "earcut": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz", + "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" + }, + "esbuild": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" + } + }, + "fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "requires": {} + }, + "fflate": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", + "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==" + }, + "jsonpath-plus": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.1.0.tgz", + "integrity": "sha512-gHfV1IYqH8uJHYVTs8BJX1XKy2/rR93+f8QQi0xhx95aCiXn1ettYAd5T+7FU6wfqyDoX/wy0pm/fL3jOKJ9Lg==", + "requires": { + "@jsep-plugin/assignment": "^1.2.1", + "@jsep-plugin/regex": "^1.0.3", + "jsep": "^1.3.9" + } + }, + "lil-gui": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.20.0.tgz", + "integrity": "sha512-k7Ipr0ztqslMA2XvM5z5ZaWhxQtnEOwJBfI/hmSuRh6q4iMG9L0boqqrnZSzBR1jzyJ28OMl47l65ILzRe1TdA==" + }, + "manifold-3d": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/manifold-3d/-/manifold-3d-3.0.0.tgz", + "integrity": "sha512-6XxRf5LH4s7WIlRrvtzLMg+CHio5TznIE0w0PU/Ad8IzD36QLjb64QdSeQp9ISrk4tGtIqVAycevpPe1ExGTKg==" + }, + "meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "dev": true + }, + "nan": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", + "optional": true + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + }, + "onml": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/onml/-/onml-1.2.0.tgz", + "integrity": "sha512-olqYAg18XoHAhm7tK9DdBCOVdts70DGmMgCNLOWyqZokht2utgGSKBB4JHi6pBZpmioAhcYlxK+91L3tsrz+GA==", + "requires": { + "sax": "^1.2.1" + } + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, + "postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "requires": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "rollup": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", + "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.40.1", + "@rollup/rollup-android-arm64": "4.40.1", + "@rollup/rollup-darwin-arm64": "4.40.1", + "@rollup/rollup-darwin-x64": "4.40.1", + "@rollup/rollup-freebsd-arm64": "4.40.1", + "@rollup/rollup-freebsd-x64": "4.40.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.1", + "@rollup/rollup-linux-arm-musleabihf": "4.40.1", + "@rollup/rollup-linux-arm64-gnu": "4.40.1", + "@rollup/rollup-linux-arm64-musl": "4.40.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-gnu": "4.40.1", + "@rollup/rollup-linux-riscv64-musl": "4.40.1", + "@rollup/rollup-linux-s390x-gnu": "4.40.1", + "@rollup/rollup-linux-x64-gnu": "4.40.1", + "@rollup/rollup-linux-x64-musl": "4.40.1", + "@rollup/rollup-win32-arm64-msvc": "4.40.1", + "@rollup/rollup-win32-ia32-msvc": "4.40.1", + "@rollup/rollup-win32-x64-msvc": "4.40.1", + "@types/estree": "1.0.7", + "fsevents": "~2.3.2" + } + }, + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "requires": { + "tslib": "^2.1.0" + } + }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true + }, + "tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "requires": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + } + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true + }, + "verb-nurbs-web": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/verb-nurbs-web/-/verb-nurbs-web-2.1.3.tgz", + "integrity": "sha512-2PvI2bx7dn0r3kWtk+JuDIDZ+p7I5Piu8y6/ZNhUVpilOyHKK1nNzLHtgown+dFOmBnKnuAKIMh1xn/5kzrxZA==", + "requires": { + "webworker-threads": "^0.7.12" + } + }, + "vite": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz", + "integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==", + "dev": true, + "requires": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "fsevents": "~2.3.3", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + } + }, + "webworker-threads": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/webworker-threads/-/webworker-threads-0.7.17.tgz", + "integrity": "sha512-Y2w2aXBbDLk9IzTEb9u+MsODC3s4YlGI7g4h0t+1OAwIO8yBI9rQL35ZYlyayiCuWu1dZMH/P7kGU8OwW7YsyA==", + "optional": true, + "requires": { + "bindings": "^1.3.0", + "nan": "^2.11.0" + } + } } } diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/create-gui.ts b/examples/vite/babylonjs/hex-shell/src/helpers/create-gui.ts new file mode 100644 index 00000000..ab17589f --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/create-gui.ts @@ -0,0 +1,94 @@ +import GUI from "lil-gui"; +import type { Current, Model } from "../models"; +import { Color3, PBRMetallicRoughnessMaterial } from "@babylonjs/core"; + +export const createGui = ( + current: Current, + model: Model, + updateShape: (lod: boolean) => void +) => { + model.update = () => updateShape(true); + const gui = new GUI(); + current.gui = gui; + gui.$title.innerHTML = "Pattern"; + + gui + .add(model, "uHex", 1, 14, 1) + .name("Hexagons U") + .onFinishChange((value: number) => { + model.uHex = value; + updateShape(false); + }); + + gui + .add(model, "vHex", 8, 36, 2) + .name("Hexagons V") + .onFinishChange((value: number) => { + model.vHex = value; + updateShape(false); + }); + + gui + .add(model, "height", 15, 25, 1) + .name("Height") + .onFinishChange((value: number) => { + model.height = value; + updateShape(false); + }); + + gui + .add(model, "ellipse2RotX", 0, 15, 0.1) + .name("Angle Guide") + .onFinishChange((value: number) => { + model.ellipse2RotX = value; + updateShape(false); + }); + + gui + .add(model, "finalPrecision", 0.01, 1, 0.01) + .name("Final Precision") + .onFinishChange((value: number) => { + model.finalPrecision = value; + }); + + gui + .add(model, "rotationEnabled") + .name("Rotation Enabled") + .onFinishChange((value: boolean) => { + model.rotationEnabled = value; + }); + + gui + .add(model, "drawEdges") + .name("Draw Edges") + .onFinishChange((value: boolean) => { + model.drawEdges = value; + }); + + gui + .addColor(model, "color1") + .name("Color 1") + .onChange((value: string) => { + current.group1?.getChildren().forEach((c1) => { + const children = c1.getChildMeshes(); + const mat = children[0].material as PBRMetallicRoughnessMaterial; + mat.baseColor = Color3.FromHexString(value); + }); + }); + + gui + .addColor(model, "color2") + .name("Color 2") + .onChange((value: string) => { + current.group2?.getChildren().forEach((c1) => { + const children = c1.getChildMeshes(); + const mat = children[0].material as PBRMetallicRoughnessMaterial; + mat.baseColor = Color3.FromHexString(value); + }); + }); + + gui.add(model, "update").name("Finalize"); + gui.add(model, "downloadSTL").name("Download STL"); + gui.add(model, "downloadStep").name("Download STEP"); + gui.add(model, "downloadGLB").name("Download GLB"); +}; diff --git a/examples/vite/babylonjs/hex-shell/src/create-shape.ts b/examples/vite/babylonjs/hex-shell/src/helpers/create-shape.ts similarity index 96% rename from examples/vite/babylonjs/hex-shell/src/create-shape.ts rename to examples/vite/babylonjs/hex-shell/src/helpers/create-shape.ts index 55ea07ee..59dcf154 100644 --- a/examples/vite/babylonjs/hex-shell/src/create-shape.ts +++ b/examples/vite/babylonjs/hex-shell/src/helpers/create-shape.ts @@ -1,13 +1,13 @@ -import type { BitByBitBase } from '@bitbybit-dev/babylonjs'; +import type { BitByBitBase } from "@bitbybit-dev/babylonjs"; import { Color3, Mesh, PBRMetallicRoughnessMaterial, Scene, -} from '@babylonjs/core'; -import { Inputs } from '@bitbybit-dev/babylonjs'; -import type { Current } from './models/current'; -import type { Model } from './models/model'; +} from "@babylonjs/core"; +import { Inputs } from "@bitbybit-dev/babylonjs"; +import type { Current } from "../models/current"; +import type { Model } from "../models/model"; export const createShapeLod2 = async ( bitbybit: BitByBitBase | undefined, @@ -296,10 +296,10 @@ export const createShapeLod2 = async ( options.drawFaces = model.drawFaces; options.drawVertices = false; options.edgeWidth = 20; - options.edgeColour = '#000000'; + options.edgeColour = "#000000"; const mat = new PBRMetallicRoughnessMaterial( - 'mat1', + "mat1", bitbybit.context.scene ); mat.baseColor = Color3.FromHexString(model.color1); @@ -313,7 +313,7 @@ export const createShapeLod2 = async ( ); const mat2 = new PBRMetallicRoughnessMaterial( - 'mat2', + "mat2", bitbybit.context.scene ); mat2.baseColor = Color3.FromHexString(model.color2); @@ -329,10 +329,10 @@ export const createShapeLod2 = async ( const groups1 = await Promise.all(groups1Promises); const groups2 = await Promise.all(groups2Promises); - const group1 = new Mesh('group1', bitbybit.context.scene); + const group1 = new Mesh("group1", bitbybit.context.scene); groups1.forEach((g) => (g.parent = group1)); - const group2 = new Mesh('group2', bitbybit.context.scene); + const group2 = new Mesh("group2", bitbybit.context.scene); groups2.forEach((g) => (g.parent = group2)); current.group1 = group1; @@ -420,9 +420,9 @@ export const createShapeLod1 = async ( options.drawVertices = false; options.edgeWidth = 30; - options.edgeColour = '#ff00ff'; + options.edgeColour = "#ff00ff"; - const mat = new PBRMetallicRoughnessMaterial('mat', bitbybit.context.scene); + const mat = new PBRMetallicRoughnessMaterial("mat", bitbybit.context.scene); mat.baseColor = Color3.FromHexString(model.color1); mat.zOffset = 2; mat.backFaceCulling = false; @@ -433,7 +433,7 @@ export const createShapeLod1 = async ( }); const mat2 = new PBRMetallicRoughnessMaterial( - 'mat2', + "mat2", bitbybit.context.scene ); mat2.baseColor = Color3.FromHexString(model.color2); @@ -446,7 +446,7 @@ export const createShapeLod1 = async ( }); const dimOpt = new Inputs.Draw.DrawOcctShapeOptions(); - dimOpt.edgeColour = '#000000'; + dimOpt.edgeColour = "#000000"; dimOpt.edgeWidth = 20; dimOpt.drawFaces = false; const dimensionsGroup = await bitbybit.draw.drawAnyAsync({ @@ -457,10 +457,10 @@ export const createShapeLod1 = async ( // just to match chunked data structure of LOD2 - const group1 = new Mesh('group1', bitbybit.context.scene); + const group1 = new Mesh("group1", bitbybit.context.scene); grp1.parent = group1; - const group2 = new Mesh('group2', bitbybit.context.scene); + const group2 = new Mesh("group2", bitbybit.context.scene); grp2.parent = group2; current.group1 = group1; @@ -550,7 +550,7 @@ async function createDimensions( linearOptions.labelSize = 3; linearOptions.labelOffset = 3; linearOptions.crossingSize = 1; - linearOptions.labelSuffix = '(m)'; + linearOptions.labelSuffix = "(m)"; const dimLength = await dimensions.simpleLinearLengthDimension(linearOptions); shapesToClean.push(dimLength); diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/downloads.ts b/examples/vite/babylonjs/hex-shell/src/helpers/downloads.ts new file mode 100644 index 00000000..6875dc3f --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/downloads.ts @@ -0,0 +1,39 @@ +import type { BitByBitBase, Inputs } from "@bitbybit-dev/babylonjs"; + +export const downloadStep = async ( + bitbybit: BitByBitBase, + finalShape: Inputs.OCCT.TopoDSShapePointer | undefined +) => { + if (bitbybit && finalShape) { + await bitbybit.occt.io.saveShapeSTEP({ + shape: finalShape, + fileName: "shape", + adjustYtoZ: true, + tryDownload: true, + }); + } +}; + +export const downloadSTL = ( + bitbybit: BitByBitBase, + finalShape: Inputs.OCCT.TopoDSShapePointer | undefined +) => { + if (bitbybit && finalShape) { + bitbybit.occt.io.saveShapeStl({ + fileName: "bitbybit-hex-shell.stl", + shape: finalShape, + adjustYtoZ: true, + tryDownload: true, + precision: 0.01, + }); + } +}; + +export const downloadGLB = (bitbybit: BitByBitBase) => { + if (bitbybit) { + bitbybit.babylon.io.exportGLB({ + fileName: "bitbybit-hex-shell.glb", + discardSkyboxAndGrid: true, + }); + } +}; diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/gui-helper.ts b/examples/vite/babylonjs/hex-shell/src/helpers/gui-helper.ts new file mode 100644 index 00000000..df077efa --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/gui-helper.ts @@ -0,0 +1,31 @@ +export function disableGUI() { + const lilGui = document.getElementsByClassName("lil-gui")[0] as HTMLElement; + lilGui.style.pointerEvents = "none"; + lilGui.style.opacity = "0.5"; +} + +export function enableGUI() { + const lilGui = document.getElementsByClassName("lil-gui")[0] as HTMLElement; + lilGui.style.pointerEvents = "all"; + lilGui.style.opacity = "1"; +} + +export function showSpinner() { + const element = document.createElement("div"); + element.id = "spinner"; + element.className = "lds-ellipsis"; + element.innerHTML = ` +
+
+
+`; + + document.body.appendChild(element); +} + +export function hideSpinner() { + const el = document.getElementById("spinner"); + if (el) { + el.remove(); + } +} diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/index.ts b/examples/vite/babylonjs/hex-shell/src/helpers/index.ts new file mode 100644 index 00000000..b717f152 --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/index.ts @@ -0,0 +1,7 @@ +export * from "./create-gui"; +export * from "./create-shape"; +export * from "./init-kernels"; +export * from "./init-babylonjs"; +export * from "./downloads"; +export * from "./gui-helper"; +export * from "./downloads"; diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/init-babylonjs.ts b/examples/vite/babylonjs/hex-shell/src/helpers/init-babylonjs.ts new file mode 100644 index 00000000..ee9d78a1 --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/init-babylonjs.ts @@ -0,0 +1,77 @@ +import { + Scene, + TransformNode, + ArcRotateCamera, + Vector3, + HemisphericLight, + Color3, + Engine, + Color4, + Light, + MeshBuilder, + PBRMetallicRoughnessMaterial, +} from "@babylonjs/core"; +import type { Current } from "../models"; +import { Inputs, type BitByBitBase } from "@bitbybit-dev/babylonjs"; + +export function initBabylonJS() { + const canvas = document.getElementById("babylon-canvas") as HTMLCanvasElement; + canvas.addEventListener("wheel", (evt) => evt.preventDefault()); + const engine = new Engine(canvas, true); + engine.setHardwareScalingLevel(0.5); + const scene = new Scene(engine); + scene.clearColor = Color4.FromHexString("#8888ff"); + new TransformNode("root", scene); + const camera = new ArcRotateCamera( + "Camera", + 0, + 10, + 10, + new Vector3(0, 0, 0), + scene + ); + const camPos = new Vector3(150, 15, 60); + camera.setPosition(camPos); + const camTarget = new Vector3(0, 5, 0); + camera.setTarget(camTarget); + camera.attachControl(canvas, true); + camera.lowerRadiusLimit = 0; + camera.minZ = 3; + const light = new HemisphericLight("HemiLight", new Vector3(0, 1, 0), scene); + light.intensityMode = Light.INTENSITYMODE_ILLUMINANCE; + light.intensity = 1; + + scene.ambientColor = Color3.FromHexString("#ffffff"); + scene.metadata = { shadowGenerators: [] }; + + window.onresize = () => { + engine.resize(); + }; + + return { scene, engine, camera }; +} + +export function createDirLightsAndGround( + bitbybit: BitByBitBase, + current: Current +) { + const dirLightOpt = new Inputs.BabylonScene.DirectionalLightDto(); + dirLightOpt.intensity = 3; + dirLightOpt.shadowGeneratorMapSize = 4000; + dirLightOpt.shadowBias = 0.001; + dirLightOpt.direction = [50, -50, -100]; + bitbybit.babylon.scene.drawDirectionalLight(dirLightOpt); + + const matGround = new PBRMetallicRoughnessMaterial("ground"); + matGround.baseColor = Color3.FromHexString("#8888ff"); + matGround.zOffset = 2; + const ground = MeshBuilder.CreateCylinder("ground", { + diameter: 250, + height: 3, + tessellation: 300, + }); + ground.position.y = -1.5; + ground.material = matGround; + ground.receiveShadows = true; + current.ground = ground; +} diff --git a/examples/vite/babylonjs/hex-shell/src/helpers/init-kernels.ts b/examples/vite/babylonjs/hex-shell/src/helpers/init-kernels.ts new file mode 100644 index 00000000..cb319e39 --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/helpers/init-kernels.ts @@ -0,0 +1,125 @@ +import type { BitByBitBase } from "@bitbybit-dev/babylonjs"; +import type { Scene } from "@babylonjs/core"; +import type { KernelOptions } from "../models"; +import { first, firstValueFrom, tap } from "rxjs"; +import { OccStateEnum } from "@bitbybit-dev/occt-worker"; +import { JscadStateEnum } from "@bitbybit-dev/jscad-worker"; +import { ManifoldStateEnum } from "@bitbybit-dev/manifold-worker"; + +export async function initKernels( + scene: Scene, + bitbybit: BitByBitBase, + options: KernelOptions +): Promise<{ message: string }> { + let occtWorkerInstance: Worker | undefined; + let jscadWorkerInstance: Worker | undefined; + let manifoldWorkerInstance: Worker | undefined; + + // 1. Conditionally create worker instances + if (options.enableOCCT) { + occtWorkerInstance = new Worker( + new URL("../workers/occt.worker.ts", import.meta.url), + { name: "OCC_WORKER", type: "module" } + ); + } + if (options.enableJSCAD) { + jscadWorkerInstance = new Worker( + new URL("../workers/jscad.worker.ts", import.meta.url), + { name: "JSCAD_WORKER", type: "module" } + ); + } + if (options.enableManifold) { + manifoldWorkerInstance = new Worker( + new URL("../workers/manifold.worker.ts", import.meta.url), + { name: "MANIFOLD_WORKER", type: "module" } + ); + } + + // 2. Initialize Bitbybit + await bitbybit.init( + scene, + occtWorkerInstance, + jscadWorkerInstance, + manifoldWorkerInstance + ); + + // 3. Collect promises for kernel initializations + const initializationPromises: Promise[] = []; + let anyKernelSelectedForInit = false; + + if (options.enableOCCT) { + anyKernelSelectedForInit = true; + if (bitbybit.occtWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.occtWorkerManager.occWorkerState$.pipe( + first((s) => s.state === OccStateEnum.initialised), + tap(() => console.log("OCCT Initialized")) + ) + ).then(() => {}) // Ensure the promise resolves to void for Promise.all + ); + } else { + console.warn( + "OCCT enabled in options, but occtWorkerManager not found after init." + ); + } + } + + if (options.enableJSCAD) { + anyKernelSelectedForInit = true; + if (bitbybit.jscadWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.jscadWorkerManager.jscadWorkerState$.pipe( + first((s) => s.state === JscadStateEnum.initialised), + tap(() => console.log("JSCAD Initialized")) + ) + ).then(() => {}) + ); + } else { + console.warn( + "JSCAD enabled in options, but jscadWorkerManager not found after init." + ); + } + } + + if (options.enableManifold) { + anyKernelSelectedForInit = true; + if (bitbybit.manifoldWorkerManager) { + initializationPromises.push( + firstValueFrom( + bitbybit.manifoldWorkerManager.manifoldWorkerState$.pipe( + first((s) => s.state === ManifoldStateEnum.initialised), + tap(() => console.log("Manifold Initialized")) + ) + ).then(() => {}) + ); + } else { + console.warn( + "Manifold enabled in options, but manifoldWorkerManager not found after init." + ); + } + } + + // 4. Wait for selected & available kernels or handle no selection/availability + if (!anyKernelSelectedForInit) { + console.log("No kernels selected for initialization."); + return { message: "No kernels selected for initialization." }; + } + + if (initializationPromises.length === 0) { + // Kernels were selected, but none were awaitable (e.g., managers missing for all selected) + console.log( + "Kernels were selected, but none had managers available for awaiting initialization." + ); + return { + message: "Selected kernels were not awaitable for initialization state.", + }; + } + + await Promise.all(initializationPromises); + console.log("Selected and awaitable kernels initialized:", options); + return { + message: "Selected and awaitable kernels initialized successfully.", + }; +} diff --git a/examples/vite/babylonjs/hex-shell/src/main.ts b/examples/vite/babylonjs/hex-shell/src/main.ts index 9820b934..f2f49e50 100644 --- a/examples/vite/babylonjs/hex-shell/src/main.ts +++ b/examples/vite/babylonjs/hex-shell/src/main.ts @@ -1,66 +1,48 @@ import './style.css'; -import { BitByBitBase } from '@bitbybit-dev/babylonjs'; -import { OccStateEnum } from '@bitbybit-dev/occt-worker'; -import { Inputs } from '@bitbybit-dev/babylonjs'; -import { GUI } from 'lil-gui'; -import { createShapeLod2, createShapeLod1 } from './create-shape'; -import type { Current } from './models/current'; -import type { Model } from './models/model'; +import { BitByBitBase, Inputs } from '@bitbybit-dev/babylonjs'; +import { model, type KernelOptions, current } from './models'; import { - Scene, - ArcRotateCamera, - Engine, - WebGPUEngine, - Vector3, - Color4, - Color3, - TransformNode, - HemisphericLight, - Light, - PBRMetallicRoughnessMaterial, - MeshBuilder, -} from '@babylonjs/core'; + initKernels, + initBabylonJS, + createGui, + createShapeLod1, + createShapeLod2, + createDirLightsAndGround, + disableGUI, + enableGUI, + hideSpinner, + showSpinner, + downloadGLB, + downloadSTL, + downloadStep, +} from './helpers'; + +const kernelOptions: KernelOptions = { + enableOCCT: true, + enableJSCAD: false, + enableManifold: false, +}; + +start(); + +async function start() { + const { scene, engine } = initBabylonJS(); + + const bitbybit = new BitByBitBase(); + bitbybit.context.scene = scene; + bitbybit.context.engine = engine; + createDirLightsAndGround(bitbybit, current); + + await initKernels(scene, bitbybit, kernelOptions); -document.querySelector('#app')!.innerHTML = ` - - -`; + let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; + let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; -function component() { - let current: Current = { - group1: undefined, - group2: undefined, - dimensions: undefined, - ground: undefined, - light1: undefined, - gui: undefined, - }; + model.downloadStep = () => downloadStep(bitbybit, finalShape); + model.downloadGLB = () => downloadGLB(bitbybit); + model.downloadSTL = () => downloadSTL(bitbybit, finalShape); - const model = { - uHex: 3, - vHex: 12, - height: 15, - ellipse1MinRad: 15, - ellipse1MaxRad: 15, - ellipse2MinRad: 25, - ellipse2MaxRad: 30, - ellipse2RotX: 15, - ellipse2RotY: 15, - ellipse3MinRad: 45, - ellipse3MaxRad: 90, - ellipse3YRot: 45, - finalPrecision: 0.05, - drawEdges: false, - drawFaces: true, - rotationEnabled: false, - color1: '#ffffff', - color2: '#8000ff', - } as Model; - - let shapesToClean: Inputs.OCCT.TopoDSShapePointer[] = []; - let finalShape: Inputs.OCCT.TopoDSShapePointer | undefined; - let bitbybit: BitByBitBase | undefined; - let scene: Scene | undefined; + createGui(current, model, updateShape); const rotationSpeed = 0.0005; const rotateGroup = () => { @@ -70,49 +52,27 @@ function component() { current.group2 && current.dimensions ) { - current.group1.rotation.y += rotationSpeed; - current.group2.rotation.y += rotationSpeed; - current.dimensions.rotation.y += rotationSpeed; - } - }; - - const downloadStep = async () => { - if (bitbybit && finalShape) { - await bitbybit.occt.io.saveShapeSTEP({ - shape: finalShape, - fileName: 'shape', - adjustYtoZ: true, - tryDownload: true, - }); + current.group1.rotation.y -= rotationSpeed; + current.group2.rotation.y -= rotationSpeed; + current.dimensions.rotation.y -= rotationSpeed; } }; - const downloadSTL = () => { - if (scene && bitbybit && finalShape) { - bitbybit.occt.io.saveShapeStl({ - fileName: 'bitbybit-hex-shell.stl', - shape: finalShape, - adjustYtoZ: true, - tryDownload: true, - precision: 0.01, - }); - } - }; + scene.onBeforeRenderObservable.add(() => rotateGroup()); - const downloadGLB = () => { - if (scene && bitbybit) { - bitbybit.babylon.io.exportGLB({ - fileName: 'bitbybit-hex-shell.glb', - discardSkyboxAndGrid: true, - }); - } - }; + engine.runRenderLoop(() => { + scene.render(true, false); + }); - model.downloadGLB = downloadGLB; - model.downloadSTL = downloadSTL; - model.downloadStep = downloadStep; + finalShape = await createShapeLod1( + bitbybit, + scene, + model, + shapesToClean, + current + ); - const updateShape = async (finish: boolean) => { + async function updateShape(finish: boolean) { disableGUI(); showSpinner(); current.group1?.dispose(false, true); @@ -138,228 +98,5 @@ function component() { } hideSpinner(); enableGUI(); - }; - - model.update = () => updateShape(true); - - const init = async () => { - bitbybit = new BitByBitBase(); - - const occt = new Worker(new URL('./workers/occt.worker', import.meta.url), { - name: 'OCC', - type: 'module', - }); - - const canvas = document.getElementById( - 'babylon-canvas' - ) as HTMLCanvasElement; - canvas.addEventListener('wheel', (evt) => evt.preventDefault()); - const engine = new Engine(canvas, true); - engine.setHardwareScalingLevel(0.5); - const { scn } = initScene(bitbybit, engine, canvas); - scene = scn; - - bitbybit.init(scene, occt); - - const dirLightOpt = new Inputs.BabylonScene.DirectionalLightDto(); - dirLightOpt.intensity = 3; - dirLightOpt.shadowGeneratorMapSize = 4000; - dirLightOpt.shadowBias = 0.001; - dirLightOpt.direction = [50, -50, -100]; - bitbybit.babylon.scene.drawDirectionalLight(dirLightOpt); - - const matGround = new PBRMetallicRoughnessMaterial('ground'); - matGround.baseColor = Color3.FromHexString('#8888ff'); - matGround.zOffset = 2; - const ground = MeshBuilder.CreateCylinder('ground', { - diameter: 250, - height: 3, - tessellation: 300, - }); - ground.position.y = -1.5; - ground.material = matGround; - ground.receiveShadows = true; - current.ground = ground; - - window.onresize = () => { - engine.resize(); - }; - - bitbybit.occtWorkerManager.occWorkerState$.subscribe(async (s) => { - if (s.state === OccStateEnum.initialised) { - finalShape = await createShapeLod1( - bitbybit, - scene, - model, - shapesToClean, - current - ); - - createGui(); - } - }); - - engine.runRenderLoop(() => { - bitbybit?.context.scene?.render(true, false); - rotateGroup(); - }); - }; - - function initScene( - bitbybit: BitByBitBase, - engine: Engine | WebGPUEngine, - canvas: HTMLCanvasElement - ) { - const scn = new Scene(engine); - scn.clearColor = Color4.FromHexString('#8888ff'); - new TransformNode('root', scn); - const camera = new ArcRotateCamera( - 'Camera', - 0, - 10, - 10, - new Vector3(0, 0, 0), - scn - ); - const camPos = new Vector3(150, 15, 60); - camera.setPosition(camPos); - const camTarget = new Vector3(0, 5, 0); - camera.setTarget(camTarget); - camera.attachControl(canvas, true); - camera.lowerRadiusLimit = 0; - camera.minZ = 3; - const light = new HemisphericLight('HemiLight', new Vector3(0, 1, 0), scn); - light.intensityMode = Light.INTENSITYMODE_ILLUMINANCE; - light.intensity = 1; - - scn.ambientColor = Color3.FromHexString('#ffffff'); - scn.metadata = { shadowGenerators: [] }; - - bitbybit.context.scene = scn; - bitbybit.context.engine = engine; - - return { scn, camera }; - } - - const disableGUI = () => { - const lilGui = document.getElementsByClassName('lil-gui')[0] as HTMLElement; - lilGui.style.pointerEvents = 'none'; - lilGui.style.opacity = '0.5'; - }; - - const enableGUI = () => { - const lilGui = document.getElementsByClassName('lil-gui')[0] as HTMLElement; - lilGui.style.pointerEvents = 'all'; - lilGui.style.opacity = '1'; - }; - - function showSpinner() { - const element = document.createElement('div'); - element.id = 'spinner'; - element.className = 'lds-ellipsis'; - element.innerHTML = ` -
-
-
- `; - - document.body.appendChild(element); } - - function hideSpinner() { - const el = document.getElementById('spinner'); - if (el) { - el.remove(); - } - } - - const createGui = () => { - const gui = new GUI(); - current.gui = gui; - gui.$title.innerHTML = 'Pattern'; - - gui - .add(model, 'uHex', 1, 14, 1) - .name('Hexagons U') - .onFinishChange((value: number) => { - model.uHex = value; - updateShape(false); - }); - - gui - .add(model, 'vHex', 8, 36, 2) - .name('Hexagons V') - .onFinishChange((value: number) => { - model.vHex = value; - updateShape(false); - }); - - gui - .add(model, 'height', 15, 25, 1) - .name('Height') - .onFinishChange((value: number) => { - model.height = value; - updateShape(false); - }); - - gui - .add(model, 'ellipse2RotX', 0, 15, 0.1) - .name('Angle Guide') - .onFinishChange((value: number) => { - model.ellipse2RotX = value; - updateShape(false); - }); - - gui - .add(model, 'finalPrecision', 0.01, 1, 0.01) - .name('Final Precision') - .onFinishChange((value: number) => { - model.finalPrecision = value; - }); - - gui - .add(model, 'rotationEnabled') - .name('Rotation Enabled') - .onFinishChange((value: boolean) => { - model.rotationEnabled = value; - }); - - gui - .add(model, 'drawEdges') - .name('Draw Edges') - .onFinishChange((value: boolean) => { - model.drawEdges = value; - }); - - gui - .addColor(model, 'color1') - .name('Color 1') - .onChange((value: string) => { - current.group1?.getChildren().forEach((c1) => { - const children = c1.getChildMeshes(); - const mat = children[0].material as PBRMetallicRoughnessMaterial; - mat.baseColor = Color3.FromHexString(value); - }); - }); - - gui - .addColor(model, 'color2') - .name('Color 2') - .onChange((value: string) => { - current.group2?.getChildren().forEach((c1) => { - const children = c1.getChildMeshes(); - const mat = children[0].material as PBRMetallicRoughnessMaterial; - mat.baseColor = Color3.FromHexString(value); - }); - }); - - gui.add(model, 'update').name('Finalize'); - gui.add(model, 'downloadSTL').name('Download STL'); - gui.add(model, 'downloadStep').name('Download STEP'); - gui.add(model, 'downloadGLB').name('Download GLB'); - }; - - init(); } - -component(); diff --git a/examples/vite/babylonjs/hex-shell/src/models/current.ts b/examples/vite/babylonjs/hex-shell/src/models/current.ts index 1531172f..78a0459f 100644 --- a/examples/vite/babylonjs/hex-shell/src/models/current.ts +++ b/examples/vite/babylonjs/hex-shell/src/models/current.ts @@ -1,5 +1,5 @@ -import { DirectionalLight, Mesh } from '@babylonjs/core'; -import { GUI } from 'lil-gui'; +import { DirectionalLight, Mesh } from "@babylonjs/core"; +import { GUI } from "lil-gui"; export type Current = { group1: Mesh | undefined; @@ -9,3 +9,12 @@ export type Current = { ground: Mesh | undefined; gui: GUI | undefined; }; + +export const current: Current = { + group1: undefined, + group2: undefined, + dimensions: undefined, + ground: undefined, + light1: undefined, + gui: undefined, +}; diff --git a/examples/vite/babylonjs/hex-shell/src/models/index.ts b/examples/vite/babylonjs/hex-shell/src/models/index.ts new file mode 100644 index 00000000..23e3b232 --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/models/index.ts @@ -0,0 +1,3 @@ +export * from "./current"; +export * from "./kernel-options"; +export * from "./model"; diff --git a/examples/vite/babylonjs/hex-shell/src/models/kernel-options.ts b/examples/vite/babylonjs/hex-shell/src/models/kernel-options.ts new file mode 100644 index 00000000..613e4575 --- /dev/null +++ b/examples/vite/babylonjs/hex-shell/src/models/kernel-options.ts @@ -0,0 +1,5 @@ +export interface KernelOptions { + enableOCCT: boolean; + enableJSCAD: boolean; + enableManifold: boolean; +} diff --git a/examples/vite/babylonjs/hex-shell/src/models/model.ts b/examples/vite/babylonjs/hex-shell/src/models/model.ts index 5260fda4..64b2f15c 100644 --- a/examples/vite/babylonjs/hex-shell/src/models/model.ts +++ b/examples/vite/babylonjs/hex-shell/src/models/model.ts @@ -1,3 +1,6 @@ +import type { BitByBitBase, Inputs } from "@bitbybit-dev/babylonjs"; +import type { Scene } from "@babylonjs/core"; + export type Model = { uHex: number; vHex: number; @@ -17,8 +20,32 @@ export type Model = { color2: string; finalPrecision: number; rotationEnabled: boolean; - downloadSTL?: () => void; - downloadStep?: () => void; - downloadGLB?: () => void; + downloadSTL?: (scene: Scene) => void; + downloadStep?: ( + bitbybit: BitByBitBase, + finalShape: Inputs.OCCT.TopoDSShapePointer | undefined + ) => void; + downloadGLB?: (scene: Scene) => void; update?: () => void; }; + +export const model = { + uHex: 3, + vHex: 12, + height: 15, + ellipse1MinRad: 15, + ellipse1MaxRad: 15, + ellipse2MinRad: 25, + ellipse2MaxRad: 30, + ellipse2RotX: 15, + ellipse2RotY: 15, + ellipse3MinRad: 45, + ellipse3MaxRad: 90, + ellipse3YRot: 45, + finalPrecision: 0.05, + drawEdges: false, + drawFaces: true, + rotationEnabled: false, + color1: "#b3ccff", + color2: "#ffffff", +} as Model; diff --git a/examples/vite/babylonjs/hex-shell/src/workers/jscad.worker.ts b/examples/vite/babylonjs/hex-shell/src/workers/jscad.worker.ts index 5ee5cda1..eeed36fd 100644 --- a/examples/vite/babylonjs/hex-shell/src/workers/jscad.worker.ts +++ b/examples/vite/babylonjs/hex-shell/src/workers/jscad.worker.ts @@ -1,12 +1,12 @@ import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/jscad-worker'; +} from "@bitbybit-dev/jscad-worker"; -import('@bitbybit-dev/jscad/jscad-generated').then((s) => { +import("@bitbybit-dev/jscad/jscad-generated").then((s) => { initializationComplete(s.default()); }); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); diff --git a/examples/vite/babylonjs/hex-shell/src/workers/manifold.worker.ts b/examples/vite/babylonjs/hex-shell/src/workers/manifold.worker.ts index a7302543..889fad80 100644 --- a/examples/vite/babylonjs/hex-shell/src/workers/manifold.worker.ts +++ b/examples/vite/babylonjs/hex-shell/src/workers/manifold.worker.ts @@ -1,13 +1,13 @@ import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/manifold-worker'; -import Module from 'manifold-3d'; +} from "@bitbybit-dev/manifold-worker"; +import Module from "manifold-3d"; const init = async () => { const wasm = await Module({ locateFile: () => { - return 'https://cdn.jsdelivr.net/gh/bitbybit-dev/bitbybit-assets@0.20.2/wasm/manifold.cc2ddd38.wasm'; + return "https://cdn.jsdelivr.net/gh/bitbybit-dev/bitbybit-assets@0.20.2/wasm/manifold.cc2ddd38.wasm"; }, }); wasm.setup(); @@ -16,6 +16,6 @@ const init = async () => { init(); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); diff --git a/examples/vite/babylonjs/hex-shell/src/workers/occt.worker.ts b/examples/vite/babylonjs/hex-shell/src/workers/occt.worker.ts index f613669d..492dfd44 100644 --- a/examples/vite/babylonjs/hex-shell/src/workers/occt.worker.ts +++ b/examples/vite/babylonjs/hex-shell/src/workers/occt.worker.ts @@ -1,14 +1,14 @@ -import initOpenCascade from '@bitbybit-dev/occt/bitbybit-dev-occt/cdn'; -import type { OpenCascadeInstance } from '@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.js'; +import initOpenCascade from "@bitbybit-dev/occt/bitbybit-dev-occt/cdn"; +import type { OpenCascadeInstance } from "@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.js"; import { initializationComplete, onMessageInput, -} from '@bitbybit-dev/occt-worker'; +} from "@bitbybit-dev/occt-worker"; initOpenCascade().then((occ: OpenCascadeInstance) => { initializationComplete(occ, undefined); }); -addEventListener('message', ({ data }) => { +addEventListener("message", ({ data }) => { onMessageInput(data, postMessage); }); From ec730406f08ab846e8f13818ab6347294260ba77 Mon Sep 17 00:00:00 2001 From: Matas Ubarevicius Date: Sat, 31 May 2025 09:19:15 +0300 Subject: [PATCH 6/7] update titles of projects and css for hex shell examples --- examples/vite/babylonjs/hex-shell/index.html | 2 +- .../vite/babylonjs/hex-shell/src/style.css | 123 +++++++++--------- examples/vite/threejs/hex-shell/index.html | 2 +- 3 files changed, 64 insertions(+), 63 deletions(-) diff --git a/examples/vite/babylonjs/hex-shell/index.html b/examples/vite/babylonjs/hex-shell/index.html index 00deb7c0..729d90ab 100644 --- a/examples/vite/babylonjs/hex-shell/index.html +++ b/examples/vite/babylonjs/hex-shell/index.html @@ -4,7 +4,7 @@ - Bitbybit & ThreeJS All Kernels Example + Bitbybit & BabylonJS Hex Shell Example - Bitbybit & ThreeJS All Kernels Example + Bitbybit & ThreeJS Hex Shell Example Date: Sat, 31 May 2025 09:54:51 +0300 Subject: [PATCH 7/7] update docs for babylonjs hex shell tutorial variant --- .../advanced-parametric-3d-model.mdx | 575 +++++++++--------- .../threejs/advanced-parametric-3d-model.mdx | 2 +- 2 files changed, 301 insertions(+), 276 deletions(-) diff --git a/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx b/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx index a6ef106d..f6c7c5c2 100644 --- a/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx +++ b/docs/learn/npm-packages/babylonjs/advanced-parametric-3d-model.mdx @@ -1,8 +1,8 @@ --- sidebar_position: 3 -title: "Advanced Parametric 3D Model with Babylon.js & Bitbybit" -sidebar_label: "Parametric Model (Advanced)" -description: "Learn how to build an advanced, interactive parametric 3D model using Bitbybit with Babylon.js, OCCT, and a GUI for real-time control." +title: "Advanced Parametric 3D Model with BabylonJS & Bitbybit" +sidebar_label: "Parametric Model (BabylonJS)" +description: "Learn how to build an advanced, interactive parametric 3D model using Bitbybit with BabylonJS, OCCT, and a GUI for real-time control." tags: [npm-packages, babylonjs] --- @@ -11,9 +11,9 @@ import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; import Admonition from '@theme/Admonition'; -# Advanced Parametric 3D Model with Babylon.js & Bitbybit +# Advanced Parametric 3D Model with BabylonJS & Bitbybit -This tutorial explores a more advanced example of creating an interactive, parametric 3D model using Bitbybit's Babylon.js integration. We'll build a configurable 3D shape whose geometry is driven by parameters controlled via a GUI (Graphical User Interface), leveraging the OpenCascade (OCCT) kernel for robust CAD operations. +This tutorial explores building a sophisticated, interactive parametric 3D model utilizing Bitbybit's robust integration with the BabylonJS rendering engine. We will construct a configurable "Hex Shell" 3D shape, where its geometry is dynamically controlled by parameters from a `lil-gui` interface. The underlying complex CAD operations will be handled by the OpenCascade (OCCT) kernel, accessed via Bitbybit. You can see what the results of this app look like (rendered in Unreal Engine):
@@ -28,20 +28,21 @@ You can see what the results of this app look like (rendered in Unreal Engine):
-This example demonstrates: -* Setting up a Babylon.js scene. -* Initializing Bitbybit with specific geometry kernels (OCCT in this case). -* Creating parametric geometry using Bitbybit's OCCT API. -* Using `lil-gui` to create a simple UI for controlling model parameters. -* Dynamically updating the 3D model in response to UI changes. -* Implementing Level of Detail (LOD) for shape generation (a simpler version for quick updates, a more detailed one for finalization). -* Handling 3D model exports (STEP, STL, GLB). +Through this example, you will learn to: + +* Set up a BabylonJS scene and rendering engine. +* Initialize Bitbybit with specific geometry kernels (OCCT in this case) for a BabylonJS environment. +* Create intricate parametric geometry using Bitbybit's OCCT API. +* Employ `lil-gui` to generate a user interface for real-time control over model parameters. +* Dynamically update the 3D model in the BabylonJS scene as UI parameters change. +* Implement a Level of Detail (LOD) strategy for efficient shape generation during interaction and finalization. +* Integrate functionality to export the 3D model in common formats like STEP, STL, and GLB. We are providing a higher level explanations of the codebase below, but for working reference always check this live example on StackBlitz, which, as platform evolves could change slightly.

6xPXz#X74*BR1B_&q_~ERX_*0h1-PyokIoL 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�=dsY!q(B_r6Snr3;hJo%t`^n>FYda7sW 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�=}l~>q+vI}F> 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 z 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�ChnTU^>+oyhs{}mQ@XD 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