occt-wasm 3.4.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,7 +33,7 @@ To set expectations, this library deliberately does not:
33
33
 
34
34
  - **Provide a higher-level CAD modeling API** — parametric sketching, constraints, feature trees, and ergonomic modeling belong in [brepjs](https://github.com/andymai/brepjs), which wraps occt-wasm for that purpose
35
35
  - **Manage memory automatically beyond arena handles** — shapes are freed when the kernel is disposed or you call `release()`; there is no per-shape garbage collection
36
- - **Support non-WASM-SIMD browsers** — the build requires WASM SIMD (baseline `-msimd128`), tail calls, and wasm exceptions; Firefox lacks tail call support as of v130. Relaxed-SIMD is intentionally not used: some Safari/iOS WebKit builds fail to compile relaxed-SIMD modules, and it made geometry non-reproducible across CPUs
36
+ - **Support non-WASM-SIMD browsers** — the build requires WASM SIMD (baseline `-msimd128`), tail calls, and wasm exceptions, so it needs a recent engine (see [Browser Compatibility](#browser-compatibility)). Relaxed-SIMD is intentionally not used: some Safari/iOS WebKit builds fail to compile relaxed-SIMD modules, and it made geometry non-reproducible across CPUs
37
37
  - **Include OCCT visualization or display modules** — TKV3d, TKHLR (except the HLR facade), and the AIS interactive context are excluded; bring your own renderer (Three.js, Babylon.js, etc.)
38
38
  - **Support IGES import/export** -- TKDEIGES is excluded from the link; use STEP for interchange
39
39
 
@@ -324,7 +324,7 @@ Generate full docs locally: `cd ts && npm run docs` (TypeDoc output).
324
324
  ## Architecture
325
325
 
326
326
  ```
327
- OCCT V8.0.0 C++ (git submodule)
327
+ OCCT V8.0.0.p1 C++ (git submodule)
328
328
  -> emcmake cmake (static libs)
329
329
  -> C++ facade (OcctKernel class, arena-based u32 IDs)
330
330
  -> Embind bindings
@@ -377,29 +377,32 @@ npm run docker:dist # Build + copy dist/ artifacts to host
377
377
 
378
378
  occt-wasm requires modern browsers with WASM SIMD, tail calls, and exception
379
379
  handling. WASM **tail calls** are the newest and therefore binding requirement —
380
- they gate the minimum versions below and are the reason Firefox is unsupported.
381
- The versions listed are the lowest combinations verified to load the kernel:
380
+ they gate the minimum versions below. The versions listed are the lowest
381
+ combinations verified to load the kernel:
382
382
 
383
383
  | Browser | Minimum (verified) | Notes |
384
384
  | ------- | ------------------ | ------------------------------------------- |
385
385
  | Chrome | 114+ | Tail calls landed in 112; 114 is verified |
386
386
  | Edge | 114+ | Same engine as Chrome |
387
387
  | Safari | 17.2+ | Earliest WebKit verified to load the kernel |
388
- | Firefox | Not supported | No WASM tail call support as of Firefox 130 |
388
+ | Firefox | 121+ | Tail calls shipped in 121; 146 is verified |
389
389
 
390
390
  Node.js 22+ is recommended (tail calls via V8). Node.js 18+ works if your V8 version supports the required WASM features.
391
391
 
392
392
  ## Known Limitations
393
393
 
394
- These are upstream OCCT V8.0.0 issues, not occt-wasm bugs:
394
+ These are upstream OCCT V8.0.0.p1 issues, not occt-wasm bugs:
395
395
 
396
396
  - **IGES** -- TKDEIGES excluded from link; no IGES import/export
397
397
  - **Zero-length extrusion** -- WASM exception escapes JS catch boundary (1 test skip)
398
398
  - **Single WASM thread** -- each kernel instance is single-threaded; use `OcctWorker` (see above) to move work off the main thread
399
- - **Firefox** -- not supported due to missing WASM tail call support
400
399
 
401
400
  These will be addressed as upstream OCCT and browser support improve.
402
401
 
402
+ OCCT V8.0.0.p1 (2026-06) resolved several upstream hangs and crashes that
403
+ affected modeling here: infinite-loop guards in `IntWalk_IWalking` and
404
+ `BRepFill_CompatibleWires`, and a null-curve guard in `BRepExtrema_DistanceSS`.
405
+
403
406
  ## Contributing
404
407
 
405
408
  This project is open source. Bug reports and feature requests are welcome via GitHub Issues. For pull requests, please open an issue first to discuss the change.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "occt-wasm",
3
- "version": "3.4.0",
3
+ "version": "3.5.1",
4
4
  "description": "OpenCascade (OCCT) compiled to WebAssembly with a clean TypeScript API",
5
5
  "type": "module",
6
6
  "exports": {