three-slicer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE.txt +661 -0
  2. package/README.md +44 -0
  3. package/components/README.md +39 -0
  4. package/components/dist/SettingsPanel.js +180 -0
  5. package/components/styles.css +84 -0
  6. package/data/README.md +22 -0
  7. package/data/config-schema-builddump.json +12921 -0
  8. package/data/config-schema.json +12685 -0
  9. package/data/invalidation-map.json +631 -0
  10. package/data/toggle-rules.json +2277 -0
  11. package/data/ui-tree.json +1586 -0
  12. package/engine/README.md +52 -0
  13. package/engine/examples/headless.mjs +37 -0
  14. package/engine/index.d.ts +29 -0
  15. package/engine/index.js +45 -0
  16. package/engine/src/settings.js +130 -0
  17. package/engine/src/slicer.worker.js +73 -0
  18. package/engine/src/slicer_core.js +0 -0
  19. package/engine/src/slicer_core.mt.js +0 -0
  20. package/engine/src/toggle_eval.js +78 -0
  21. package/package.json +74 -0
  22. package/viewer/README.md +68 -0
  23. package/viewer/dist/Viewport.js +1108 -0
  24. package/viewer/dist/make_worker.js +9 -0
  25. package/viewer/dist/model_loaders.js +144 -0
  26. package/viewer/dist/toolpath_gpu.js +386 -0
  27. package/viewer/src/Viewport.jsx +1353 -0
  28. package/viewer/src/assets/add.svg +1 -0
  29. package/viewer/src/assets/arrange.svg +1 -0
  30. package/viewer/src/assets/boolean.svg +1 -0
  31. package/viewer/src/assets/cut.svg +1 -0
  32. package/viewer/src/assets/delete.svg +1 -0
  33. package/viewer/src/assets/deleteall.svg +1 -0
  34. package/viewer/src/assets/duplicate.svg +1 -0
  35. package/viewer/src/assets/measure.svg +1 -0
  36. package/viewer/src/assets/mmu.svg +1 -0
  37. package/viewer/src/assets/move.svg +1 -0
  38. package/viewer/src/assets/negative.svg +1 -0
  39. package/viewer/src/assets/onbed.svg +1 -0
  40. package/viewer/src/assets/open.svg +1 -0
  41. package/viewer/src/assets/orient.svg +1 -0
  42. package/viewer/src/assets/paint.svg +1 -0
  43. package/viewer/src/assets/rotate.svg +1 -0
  44. package/viewer/src/assets/scale.svg +1 -0
  45. package/viewer/src/assets/seam.svg +1 -0
  46. package/viewer/src/assets/split.svg +1 -0
  47. package/viewer/src/assets/textmark.svg +1 -0
  48. package/viewer/src/assets/varlayer.svg +1 -0
  49. package/viewer/src/icons.js +23 -0
  50. package/viewer/src/make_worker.js +9 -0
  51. package/viewer/src/model_loaders.js +178 -0
  52. package/viewer/src/shadow_host.jsx +30 -0
  53. package/viewer/src/toolpath_gpu.js +430 -0
  54. package/viewer/styles.css +231 -0
@@ -0,0 +1,631 @@
1
+ {
2
+ "Print": [
3
+ {
4
+ "keys": [
5
+ "skirt_type",
6
+ "skirt_loops",
7
+ "skirt_speed",
8
+ "skirt_height",
9
+ "min_skirt_length",
10
+ "single_loop_draft_shield",
11
+ "draft_shield",
12
+ "skirt_distance",
13
+ "skirt_start_angle",
14
+ "ooze_prevention",
15
+ "wipe_tower_x",
16
+ "wipe_tower_y",
17
+ "wipe_tower_rotation_angle"
18
+ ],
19
+ "steps": [
20
+ "psSkirtBrim"
21
+ ],
22
+ "special": [],
23
+ "line": 270
24
+ },
25
+ {
26
+ "keys": [
27
+ "slicing_pipeline_plugin",
28
+ "initial_layer_print_height",
29
+ "nozzle_diameter",
30
+ "filament_shrink",
31
+ "filament_shrinkage_compensation_z",
32
+ "resolution",
33
+ "precise_z_height",
34
+ "spiral_mode"
35
+ ],
36
+ "steps": [
37
+ "posSlice"
38
+ ],
39
+ "special": [],
40
+ "line": 285
41
+ },
42
+ {
43
+ "keys": [
44
+ "print_sequence",
45
+ "filament_type",
46
+ "chamber_temperature",
47
+ "nozzle_temperature_initial_layer",
48
+ "filament_minimal_purge_on_wipe_tower",
49
+ "filament_max_volumetric_speed",
50
+ "filament_adaptive_volumetric_speed",
51
+ "filament_loading_speed",
52
+ "filament_loading_speed_start",
53
+ "filament_unloading_speed",
54
+ "filament_unloading_speed_start",
55
+ "filament_toolchange_delay",
56
+ "filament_cooling_moves",
57
+ "filament_stamping_loading_speed",
58
+ "filament_stamping_distance",
59
+ "filament_cooling_initial_speed",
60
+ "filament_cooling_final_speed",
61
+ "filament_ramming_parameters",
62
+ "filament_multitool_ramming",
63
+ "filament_multitool_ramming_volume",
64
+ "filament_multitool_ramming_flow",
65
+ "filament_max_volumetric_speed",
66
+ "gcode_flavor",
67
+ "single_extruder_multi_material",
68
+ "nozzle_temperature",
69
+ "supertack_plate_temp",
70
+ "cool_plate_temp",
71
+ "textured_cool_plate_temp",
72
+ "eng_plate_temp",
73
+ "hot_plate_temp",
74
+ "textured_plate_temp",
75
+ "enable_prime_tower",
76
+ "enable_wrapping_detection",
77
+ "prime_tower_enable_framework",
78
+ "prime_tower_width",
79
+ "prime_tower_brim_width",
80
+ "wipe_tower_type",
81
+ "prime_tower_skip_points",
82
+ "prime_tower_flat_ironing",
83
+ "enable_tower_interface_features",
84
+ "first_layer_print_sequence",
85
+ "other_layers_print_sequence",
86
+ "other_layers_print_sequence_nums",
87
+ "toolchange_ordering",
88
+ "extruder_ams_count",
89
+ "extruder_nozzle_stats",
90
+ "filament_map_mode",
91
+ "filament_map",
92
+ "filament_nozzle_map",
93
+ "filament_volume_map",
94
+ "filament_adhesiveness_category",
95
+ "filament_tower_interface_pre_extrusion_dist",
96
+ "filament_tower_interface_pre_extrusion_length",
97
+ "filament_tower_ironing_area",
98
+ "filament_tower_interface_purge_volume",
99
+ "filament_tower_interface_print_temp",
100
+ "wipe_tower_bridging",
101
+ "wipe_tower_extra_flow",
102
+ "wipe_tower_no_sparse_layers",
103
+ "flush_volumes_matrix",
104
+ "prime_volume",
105
+ "flush_into_infill",
106
+ "flush_into_support",
107
+ "initial_layer_infill_speed",
108
+ "travel_speed",
109
+ "travel_speed_z",
110
+ "initial_layer_speed",
111
+ "initial_layer_travel_speed",
112
+ "initial_layer_travel_acceleration",
113
+ "initial_layer_travel_jerk",
114
+ "slow_down_layers",
115
+ "idle_temperature",
116
+ "wipe_tower_cone_angle",
117
+ "wipe_tower_extra_spacing",
118
+ "wipe_tower_max_purge_speed",
119
+ "wipe_tower_wall_type",
120
+ "wipe_tower_extra_rib_length",
121
+ "wipe_tower_rib_width",
122
+ "wipe_tower_fillet_wall",
123
+ "wipe_tower_filament",
124
+ "wiping_volumes_extruders",
125
+ "enable_filament_ramming",
126
+ "tool_change_on_wipe_tower",
127
+ "purge_in_prime_tower",
128
+ "z_offset",
129
+ "support_multi_bed_types"
130
+ ],
131
+ "steps": [
132
+ "psSkirtBrim",
133
+ "psWipeTower"
134
+ ],
135
+ "special": [],
136
+ "line": 298
137
+ },
138
+ {
139
+ "keys": [
140
+ "filament_soluble",
141
+ "filament_is_support",
142
+ "filament_printable",
143
+ "filament_change_length",
144
+ "independent_support_layer_height"
145
+ ],
146
+ "steps": [
147
+ "posSimplifySupportPath",
148
+ "posSupportMaterial",
149
+ "psWipeTower"
150
+ ],
151
+ "special": [],
152
+ "line": 389
153
+ },
154
+ {
155
+ "keys": [
156
+ "initial_layer_line_width",
157
+ "min_layer_height",
158
+ "max_layer_height",
159
+ "resolution",
160
+ "enable_arc_fitting",
161
+ "print_order",
162
+ "wall_sequence"
163
+ ],
164
+ "steps": [
165
+ "posEstimateCurledExtrusions",
166
+ "posInfill",
167
+ "posPerimeters",
168
+ "posSimplifyInfill",
169
+ "posSimplifyPath",
170
+ "posSimplifySupportPath",
171
+ "posSupportMaterial",
172
+ "psSkirtBrim"
173
+ ],
174
+ "special": [],
175
+ "line": 400
176
+ },
177
+ {
178
+ "keys": [
179
+ "z_hop_types"
180
+ ],
181
+ "steps": [
182
+ "posDetectOverhangsForLift"
183
+ ],
184
+ "special": [],
185
+ "line": 418
186
+ }
187
+ ],
188
+ "PrintObject": [
189
+ {
190
+ "keys": [
191
+ "brim_width",
192
+ "brim_object_gap",
193
+ "brim_use_efc_outline",
194
+ "brim_type",
195
+ "brim_ears_max_angle",
196
+ "brim_ears_detection_length",
197
+ "outer_wall_speed",
198
+ "small_perimeter_speed",
199
+ "small_perimeter_threshold",
200
+ "small_support_perimeter_speed",
201
+ "small_support_perimeter_threshold",
202
+ "sparse_infill_speed",
203
+ "inner_wall_speed",
204
+ "support_speed",
205
+ "internal_solid_infill_speed",
206
+ "top_surface_speed"
207
+ ],
208
+ "steps": [
209
+ "posPerimeters",
210
+ "posSupportMaterial"
211
+ ],
212
+ "special": [],
213
+ "line": 1170
214
+ },
215
+ {
216
+ "keys": [
217
+ "wall_loops",
218
+ "alternate_extra_wall",
219
+ "top_one_wall_type",
220
+ "min_width_top_surface",
221
+ "only_one_wall_first_layer",
222
+ "extra_perimeters_on_overhangs",
223
+ "detect_overhang_wall",
224
+ "initial_layer_line_width",
225
+ "inner_wall_line_width",
226
+ "infill_wall_overlap",
227
+ "top_bottom_infill_wall_overlap",
228
+ "seam_gap",
229
+ "role_based_wipe_speed",
230
+ "wipe_on_loops",
231
+ "wipe_speed"
232
+ ],
233
+ "steps": [
234
+ "posPerimeters"
235
+ ],
236
+ "special": [],
237
+ "line": 1197
238
+ },
239
+ {
240
+ "keys": [
241
+ "small_area_infill_flow_compensation_model"
242
+ ],
243
+ "steps": [
244
+ "posSlice"
245
+ ],
246
+ "special": [],
247
+ "line": 1214
248
+ },
249
+ {
250
+ "keys": [
251
+ "gap_infill_speed"
252
+ ],
253
+ "steps": [],
254
+ "special": [],
255
+ "line": 1222
256
+ },
257
+ {
258
+ "keys": [
259
+ "layer_height",
260
+ "mmu_segmented_region_max_width",
261
+ "mmu_segmented_region_interlocking_depth",
262
+ "raft_layers",
263
+ "raft_contact_distance",
264
+ "slice_closing_radius",
265
+ "slicing_mode",
266
+ "slowdown_for_curled_perimeters",
267
+ "make_overhang_printable",
268
+ "make_overhang_printable_angle",
269
+ "make_overhang_printable_hole_size",
270
+ "interlocking_beam",
271
+ "interlocking_orientation",
272
+ "interlocking_beam_layer_count",
273
+ "interlocking_depth",
274
+ "interlocking_boundary_avoidance",
275
+ "interlocking_beam_width"
276
+ ],
277
+ "steps": [
278
+ "posSlice"
279
+ ],
280
+ "special": [],
281
+ "line": 1238
282
+ },
283
+ {
284
+ "keys": [
285
+ "elefant_foot_compensation",
286
+ "elefant_foot_compensation_layers",
287
+ "elefant_foot_layers_density",
288
+ "support_top_z_distance",
289
+ "support_bottom_z_distance",
290
+ "xy_hole_compensation",
291
+ "xy_contour_compensation",
292
+ "support_type",
293
+ "bridge_no_support",
294
+ "max_bridge_length",
295
+ "support_interface_top_layers",
296
+ "support_critical_regions_only",
297
+ "hole_to_polyhole",
298
+ "hole_to_polyhole_threshold",
299
+ "hole_to_polyhole_twisted",
300
+ "hole_to_polyhole_max_edges"
301
+ ],
302
+ "steps": [
303
+ "posSlice"
304
+ ],
305
+ "special": [],
306
+ "line": 1257
307
+ },
308
+ {
309
+ "keys": [
310
+ "enable_support"
311
+ ],
312
+ "steps": [
313
+ "posSlice",
314
+ "posSupportMaterial"
315
+ ],
316
+ "special": [],
317
+ "line": 1277
318
+ },
319
+ {
320
+ "keys": [
321
+ "support_type",
322
+ "support_angle",
323
+ "support_on_build_plate_only",
324
+ "support_critical_regions_only",
325
+ "support_remove_small_overhang",
326
+ "enforce_support_layers",
327
+ "support_filament",
328
+ "support_line_width",
329
+ "support_interface_top_layers",
330
+ "support_interface_bottom_layers",
331
+ "support_interface_pattern",
332
+ "support_interface_loop_pattern",
333
+ "support_interface_filament",
334
+ "support_interface_not_for_body",
335
+ "support_interface_spacing",
336
+ "support_bottom_interface_spacing",
337
+ "support_base_pattern",
338
+ "support_style",
339
+ "support_object_xy_distance",
340
+ "support_object_first_layer_gap",
341
+ "support_base_pattern_spacing",
342
+ "support_expansion",
343
+ "independent_support_layer_height",
344
+ "support_threshold_angle",
345
+ "support_threshold_overlap",
346
+ "support_ironing",
347
+ "support_ironing_pattern",
348
+ "support_ironing_flow",
349
+ "support_ironing_spacing",
350
+ "raft_expansion",
351
+ "raft_first_layer_density",
352
+ "raft_first_layer_expansion",
353
+ "bridge_no_support",
354
+ "max_bridge_length",
355
+ "initial_layer_line_width",
356
+ "tree_support_auto_brim",
357
+ "tree_support_brim_width",
358
+ "tree_support_top_rate",
359
+ "tree_support_branch_distance",
360
+ "tree_support_branch_distance_organic",
361
+ "tree_support_tip_diameter",
362
+ "tree_support_branch_diameter",
363
+ "tree_support_branch_diameter_organic",
364
+ "tree_support_branch_diameter_angle",
365
+ "tree_support_branch_angle",
366
+ "tree_support_branch_angle_organic",
367
+ "tree_support_angle_slow",
368
+ "tree_support_wall_count"
369
+ ],
370
+ "steps": [
371
+ "posSupportMaterial"
372
+ ],
373
+ "special": [],
374
+ "line": 1286
375
+ },
376
+ {
377
+ "keys": [
378
+ "bottom_shell_layers",
379
+ "top_shell_layers"
380
+ ],
381
+ "steps": [
382
+ "posSlice"
383
+ ],
384
+ "special": [],
385
+ "line": 1336
386
+ },
387
+ {
388
+ "keys": [
389
+ "interface_shells",
390
+ "infill_multiline",
391
+ "infill_combination",
392
+ "infill_combination_max_layer_height",
393
+ "bottom_shell_thickness",
394
+ "top_shell_thickness",
395
+ "top_surface_expansion",
396
+ "top_surface_expansion_margin",
397
+ "top_surface_expansion_direction",
398
+ "minimum_sparse_infill_area",
399
+ "sparse_infill_filament_id",
400
+ "internal_solid_filament_id",
401
+ "top_surface_filament_id",
402
+ "bottom_surface_filament_id",
403
+ "sparse_infill_line_width",
404
+ "skin_infill_line_width",
405
+ "skeleton_infill_line_width",
406
+ "infill_direction",
407
+ "solid_infill_direction",
408
+ "top_layer_direction",
409
+ "bottom_layer_direction",
410
+ "align_infill_direction_to_model",
411
+ "extra_solid_infills",
412
+ "ensure_vertical_shell_thickness",
413
+ "bridge_angle",
414
+ "internal_bridge_angle",
415
+ "relative_bridge_angle",
416
+ "bridge_line_width",
417
+ "bridge_density",
418
+ "internal_bridge_density"
419
+ ],
420
+ "steps": [
421
+ "posPrepareInfill"
422
+ ],
423
+ "special": [],
424
+ "line": 1358
425
+ },
426
+ {
427
+ "keys": [
428
+ "top_surface_pattern",
429
+ "bottom_surface_pattern",
430
+ "top_surface_fill_order",
431
+ "bottom_surface_fill_order",
432
+ "internal_solid_infill_pattern",
433
+ "external_fill_link_max_length",
434
+ "infill_anchor",
435
+ "infill_anchor_max",
436
+ "top_surface_line_width",
437
+ "top_surface_density",
438
+ "bottom_surface_density",
439
+ "center_of_surface_pattern",
440
+ "separated_infills",
441
+ "initial_layer_line_width",
442
+ "small_area_infill_flow_compensation",
443
+ "lateral_lattice_angle_1",
444
+ "lateral_lattice_angle_2",
445
+ "infill_overhang_angle"
446
+ ],
447
+ "steps": [
448
+ "posInfill"
449
+ ],
450
+ "special": [],
451
+ "line": 1391
452
+ },
453
+ {
454
+ "keys": [
455
+ "sparse_infill_pattern",
456
+ "symmetric_infill_y_axis",
457
+ "infill_shift_step",
458
+ "sparse_infill_rotate_template",
459
+ "solid_infill_rotate_template",
460
+ "lightning_overhang_angle",
461
+ "lightning_prune_angle",
462
+ "lightning_straightening_angle",
463
+ "skeleton_infill_density",
464
+ "skin_infill_density",
465
+ "infill_lock_depth",
466
+ "skin_infill_depth"
467
+ ],
468
+ "steps": [
469
+ "posPrepareInfill"
470
+ ],
471
+ "special": [],
472
+ "line": 1411
473
+ },
474
+ {
475
+ "keys": [
476
+ "sparse_infill_density"
477
+ ],
478
+ "steps": [
479
+ "posPerimeters",
480
+ "posPrepareInfill"
481
+ ],
482
+ "special": [],
483
+ "line": 1424
484
+ },
485
+ {
486
+ "keys": [
487
+ "internal_solid_infill_line_width"
488
+ ],
489
+ "steps": [
490
+ "posPerimeters",
491
+ "posPrepareInfill"
492
+ ],
493
+ "special": [],
494
+ "line": 1435
495
+ },
496
+ {
497
+ "keys": [
498
+ "outer_wall_line_width",
499
+ "outer_wall_filament_id",
500
+ "inner_wall_filament_id",
501
+ "fuzzy_skin",
502
+ "fuzzy_skin_thickness",
503
+ "fuzzy_skin_point_distance",
504
+ "fuzzy_skin_first_layer",
505
+ "fuzzy_skin_mode",
506
+ "fuzzy_skin_noise_type",
507
+ "fuzzy_skin_scale",
508
+ "fuzzy_skin_octaves",
509
+ "fuzzy_skin_persistence",
510
+ "detect_overhang_wall",
511
+ "overhang_reverse",
512
+ "overhang_reverse_internal_only",
513
+ "overhang_reverse_threshold",
514
+ "wall_direction",
515
+ "enable_overhang_speed",
516
+ "detect_thin_wall",
517
+ "precise_outer_wall"
518
+ ],
519
+ "steps": [
520
+ "posPerimeters",
521
+ "posSupportMaterial"
522
+ ],
523
+ "special": [],
524
+ "line": 1439
525
+ },
526
+ {
527
+ "keys": [
528
+ "bridge_flow",
529
+ "internal_bridge_flow"
530
+ ],
531
+ "steps": [
532
+ "posInfill",
533
+ "posPerimeters",
534
+ "posSupportMaterial"
535
+ ],
536
+ "special": [],
537
+ "line": 1462
538
+ },
539
+ {
540
+ "keys": [
541
+ "wall_generator",
542
+ "wall_transition_length",
543
+ "wall_transition_filter_deviation",
544
+ "wall_transition_angle",
545
+ "wall_distribution_count",
546
+ "wall_maximum_resolution",
547
+ "wall_maximum_deviation",
548
+ "min_feature_size",
549
+ "min_length_factor",
550
+ "min_bead_width"
551
+ ],
552
+ "steps": [
553
+ "posSlice"
554
+ ],
555
+ "special": [],
556
+ "line": 1470
557
+ },
558
+ {
559
+ "keys": [
560
+ "seam_position",
561
+ "seam_slope_type",
562
+ "seam_slope_conditional",
563
+ "scarf_angle_threshold",
564
+ "scarf_overhang_threshold",
565
+ "scarf_joint_speed",
566
+ "seam_slope_start_height",
567
+ "seam_slope_entire_loop",
568
+ "seam_slope_min_length",
569
+ "seam_slope_steps",
570
+ "seam_slope_inner_walls",
571
+ "support_speed",
572
+ "support_interface_speed",
573
+ "overhang_1_4_speed",
574
+ "overhang_2_4_speed",
575
+ "overhang_3_4_speed",
576
+ "overhang_4_4_speed",
577
+ "bridge_speed",
578
+ "internal_bridge_speed",
579
+ "outer_wall_speed",
580
+ "small_perimeter_speed",
581
+ "small_perimeter_threshold",
582
+ "small_support_perimeter_speed",
583
+ "small_support_perimeter_threshold",
584
+ "sparse_infill_speed",
585
+ "inner_wall_speed",
586
+ "internal_solid_infill_speed",
587
+ "top_surface_speed",
588
+ "bed_mesh_min",
589
+ "bed_mesh_max",
590
+ "adaptive_bed_mesh_margin",
591
+ "bed_mesh_probe_distance",
592
+ "print_flow_ratio",
593
+ "first_layer_flow_ratio",
594
+ "top_solid_infill_flow_ratio",
595
+ "bottom_solid_infill_flow_ratio",
596
+ "outer_wall_flow_ratio",
597
+ "inner_wall_flow_ratio",
598
+ "overhang_flow_ratio",
599
+ "sparse_infill_flow_ratio",
600
+ "internal_solid_infill_flow_ratio",
601
+ "gap_fill_flow_ratio",
602
+ "support_flow_ratio",
603
+ "support_interface_flow_ratio",
604
+ "brim_flow_ratio",
605
+ "filament_flow_ratio",
606
+ "scarf_joint_flow_ratio",
607
+ "spiral_starting_flow_ratio",
608
+ "spiral_finishing_flow_ratio"
609
+ ],
610
+ "steps": [
611
+ "psGCodeExport"
612
+ ],
613
+ "special": [],
614
+ "line": 1482
615
+ },
616
+ {
617
+ "keys": [
618
+ "flush_into_infill",
619
+ "flush_into_objects",
620
+ "flush_into_support"
621
+ ],
622
+ "steps": [
623
+ "psGCodeExport",
624
+ "psWipeTower"
625
+ ],
626
+ "special": [],
627
+ "line": 1533
628
+ }
629
+ ],
630
+ "note": "조건에 없는 opt_key(기본 분기)는 전체 무효화. steps는 분기 블록에서 참조된 단계 토큰."
631
+ }