three-slicer 0.4.1 → 0.4.3
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/CHANGELOG.md +58 -0
- package/README.md +1 -1
- package/data/README.md +1 -1
- package/data/config-schema-lean.json +1 -1
- package/data/config-schema.json +51 -51
- package/data/ui-tree-keys.json +1 -1
- package/data/ui-tree.json +215 -81
- package/engine/PARAMS.md +6 -3
- package/engine/src/slicer.worker.js +7 -0
- package/engine/src/slicer_core.js +0 -0
- package/engine/src/slicer_core.mt.js +1 -1
- package/engine/src/slicer_core.mt.wasm +0 -0
- package/engine/src/slicer_core.wasm +0 -0
- package/package.json +2 -2
- package/types/settings-keys.d.ts +40 -40
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.3 — 2026-11-07
|
|
4
|
+
|
|
5
|
+
Performance work measured in Firefox and Chromium, and the changes that let the browser extension be listed on
|
|
6
|
+
Firefox Add-ons (AMO).
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- The single-threaded kernel ships its wasm as a file, `engine/src/slicer_core.wasm`, as the threaded one already did.
|
|
11
|
+
Inlined, the glue was a 7.2MB script, and AMO's validator refuses any JS file over 5MB; it is 85KB now. Vite and
|
|
12
|
+
webpack emit the wasm as an asset. A host that serves the package files itself has to serve this file as
|
|
13
|
+
`application/wasm` too, and from another origin with `Cross-Origin-Resource-Policy: cross-origin`. G-code is
|
|
14
|
+
byte-identical to the inlined build.
|
|
15
|
+
- A plate's toolpaths are skipped when the plate is off screen. Zoomed onto one of 28 sliced plates (Hylian Shield,
|
|
16
|
+
M5 Pro, DPR 2), GPU time per frame went from 16.0 to 1.4 ms in Chromium and from 17.8 to 2.1 ms in Firefox. The
|
|
17
|
+
whole-bed view is unchanged at about 14 ms.
|
|
18
|
+
- Hover, the paint brush and Measure pick through a per-mesh grid instead of testing every facet. Hover picks at most
|
|
19
|
+
once per frame and not while a button is held, so an orbit or a drag no longer raycasts the scene.
|
|
20
|
+
- Slice progress and the plate tabs' run state re-render once per frame, however many pool workers report.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- `npm run pack:firefox` in `web/extension` builds the zip for an AMO upload.
|
|
25
|
+
|
|
26
|
+
## 0.4.2 — 2026-11-03
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- Object tools in the ribbon: Arrange, Orient, Measure, Boolean, Cut, Negative part, Text, Seam painting and Variable
|
|
31
|
+
layers. Boolean, Cut, negative parts and engraving run on the kernel's CGAL (`mesh_boolean`); a non-solid input is
|
|
32
|
+
refused with a typed `MESH_BOOLEAN_…` code. Arrange and Orient are this package's own algorithms.
|
|
33
|
+
- Seam paint reaches the kernel as `seam_enforcers` / `seam_blockers`, on classic, Arachne and multi-material walls, and
|
|
34
|
+
round-trips through a 3mf as `paint_seam`.
|
|
35
|
+
- Variable layer height (`variable_layer_heights`, Z bands). It is refused with support, raft, spiral mode and several
|
|
36
|
+
filaments (`UNSUPPORTED_VARIABLE_LAYERS`), and a band under 0.01 mm is `INVALID_VARIABLE_LAYERS`.
|
|
37
|
+
- `textFonts` prop: fonts the Text tool offers beside its built-in Latin one. The demo binds Noto Sans CJK for Korean,
|
|
38
|
+
Japanese, Simplified and Traditional; a `.ttf` or `.otf` upload lasts for the session.
|
|
39
|
+
- Fine adjust: holding Alt (Option) opens typed position, angle and size for the gizmo's mode, with fine drag snap; a
|
|
40
|
+
Hold button keeps it on.
|
|
41
|
+
- Measure snaps to corners and edges while Ctrl (Cmd) is held, and previews the second point under the pointer.
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- The window is a title row with the menu bar, a labelled ribbon, the canvas and a task pane; sidebar sections are
|
|
46
|
+
collapsible boxes, and the plate tabs sit over a split slice button that fills with each plate's progress.
|
|
47
|
+
- The gizmo stands outside the selection and is sized by it. A rotate ring turns by the angle the pointer sweeps around
|
|
48
|
+
it (a 30 degree sweep measured 56 to 146 degrees before).
|
|
49
|
+
- In move mode a left drag on a model or inside its box moves it on the bed; the right button and empty space orbit.
|
|
50
|
+
The right-click menu opens on release, on an object only.
|
|
51
|
+
- The arrow keys follow the gizmo's mode: 10 mm, 15 degrees, 5% (Shift 1 mm, 5 degrees, 1%), and move every selected
|
|
52
|
+
object.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- Text placed low on a wall went under the bed, and the kernel's seat lifted the whole plate by that much (a 20 mm cube
|
|
57
|
+
sliced as 138 layers).
|
|
58
|
+
- An undo after moving a multi-selection restored pivot-relative positions and moved nothing.
|
|
59
|
+
- A copy, a duplicate and a split keep the object's filament.
|
|
60
|
+
|
|
3
61
|
## 0.4.1 — 2026-10-28
|
|
4
62
|
|
|
5
63
|
### Added
|
package/README.md
CHANGED
|
@@ -705,7 +705,7 @@ Without those headers, the engine falls back to the single-threaded kernel.
|
|
|
705
705
|
The multithreaded kernel's wasm is a file beside its glue, `engine/src/slicer_core.mt.wasm`, reached through
|
|
706
706
|
`new URL('slicer_core.mt.wasm', import.meta.url)`; Vite and webpack emit it as an asset. Serve it as
|
|
707
707
|
`application/wasm`, and from another origin (a CDN) with `Cross-Origin-Resource-Policy: cross-origin`, or the
|
|
708
|
-
cross-origin isolated page cannot load it. The single-threaded kernel
|
|
708
|
+
cross-origin isolated page cannot load it. The single-threaded kernel does the same with `engine/src/slicer_core.wasm`.
|
|
709
709
|
|
|
710
710
|
## Data Files
|
|
711
711
|
|
package/data/README.md
CHANGED
|
@@ -6,7 +6,7 @@ OrcaSlicer configuration metadata extracted from the original C++ sources, shipp
|
|
|
6
6
|
|---|---|
|
|
7
7
|
| `config-schema.json` | 976 print options: type, label, category, tooltip, min/max, mode, enum values/labels, defaults, source line numbers |
|
|
8
8
|
| `config-schema-builddump.json` | Build-verified cross-check: the real `print_config_def` (817 options) dumped from a WASM compile of the original `PrintConfig.cpp` — repo-only, excluded from the npm tarball |
|
|
9
|
-
| `ui-tree.json` | Tab → page → group → option tree from `Tab.cpp` (34 pages,
|
|
9
|
+
| `ui-tree.json` | Tab → page → group → option tree from `Tab.cpp` (34 pages, 674 option references — the SLA tabs included) |
|
|
10
10
|
| `toggle-rules.json` | 231 enable/disable rules with original C++ `enable_if` condition source |
|
|
11
11
|
| `invalidation-map.json` | Option-change → re-slice step mapping (Print/PrintObject invalidation branches) |
|
|
12
12
|
| `preset-keys.json` | The option keys belonging to each preset type (`machine`/`process`/`filament`) — what `presetOptionKeys(type)` reads |
|