Run the manifold backend tests

This commit is contained in:
mattmcw 2026-04-19 16:39:18 -04:00
parent 15fb69630d
commit 655f6a225a
3 changed files with 272 additions and 0 deletions

View File

@ -240,3 +240,28 @@ The file size of the V3 spiral has reduced to about 30% of the V1 and V2 spirals
Faster render times mean more iteration and less time between tests.
The next part of the process to examine is slicing which has primarily been done with Cura, but other engines will be looked at for their speed, efficiency and print quality.
## V3 Updates
### Reinforced Spindles
The first in a list of intended updates to the V3 model is reinforcing the spindles.
This is acheived by adding voids for M4 bolts in the spindles with the intention of preventing them from snapping due to overtightening or perpendicular force on the threaded parts.
The bolts should be friction fit or added with a small amount of glue to adhere them inside the spindles.
* 1x 40mm M4 Hex Bolt *(Accepts 30-50mm bolts if needed)*
* 1x 16mm M4 Hex Bolt
### Manifold Backend
Another upgrade in the build script is the use of the [Manifold](https://manifoldcad.org/docs/html/) backend.
This drops the CPU render time dramatically, even after the spiral modifications in V3.
OpenSCAD has improved performance in the core backend since starting this project, but rendering using `--backend=manifold` drops even the most complex solid geometry calculations to times needed for fast design iterations.
### Canonical Renders
The next improvement was to introduce [c14n_stl.py](https://github.com/nophead/NopSCADlib/blob/master/scripts/c14n_stl.py) from [NopSCADlib](https://github.com/nophead/NopSCADlib) to sort compiled STLs consistently between renders.
Doing this *should* mean that different machines will produce identical STLs before they're converted to binary and prevent excessive diffs when small changes are made.
Previously this was left out to reduce the Python dependency but it is common enough as a default on many systems to mean that adding a library-free Python script is not a concern.

141
notes/manifold.csv Normal file
View File

@ -0,0 +1,141 @@
version,cpu,date,source,diameter,rotations,fn,size,facets,volume,time,manifold_time
2025.10.17,Apple M1,1776622016,spiral_1.scad,225,1,100,948523,3420,1801.668335,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,300,1,100,949939,3420,2399.892334,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,2,100,1474615,5438,795.789795,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,225,2,100,1893113,6828,3621.269531,1,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,300,2,100,1899358,6838,4811.797363,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,5,100,4025460,14714,2251.602783,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,225,5,100,4741083,17082,9294.232422,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,300,5,100,4745405,17078,12261.507812,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,10,100,8752808,31764,5391.847656,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,225,10,100,9484396,34152,19463.052734,0,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,300,10,100,9499460,34170,25392.556641,1,0
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,20,100,18109649,65604,14349.558594,1,1
2025.10.17,Apple M1,1776622016,spiral_1.scad,225,20,100,18981302,68330,42478.890625,1,1
2025.10.17,Apple M1,1776622016,spiral_1.scad,300,20,100,18981821,68292,54331.679688,1,1
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,40,100,18109649,65604,14349.558594,1,1
2025.10.17,Apple M1,1776622016,spiral_1.scad,47,60,100,18109649,65604,14349.558594,2,0
2025.10.17,Apple M1,1776622016,spiral_2.scad,47,1,100,1051040,3924,263.113525,0,0
2025.10.17,Apple M1,1776622016,spiral_2.scad,225,1,100,21545554,82648,1216.352783,2,1
2025.10.17,Apple M1,1776622016,spiral_2.scad,300,1,100,36376634,139876,1616.160767,4,4
2025.10.17,Apple M1,1776622016,spiral_2.scad,47,2,100,2271981,8508,549.007202,0,1
2025.10.17,Apple M1,1776622016,spiral_2.scad,225,2,100,43973063,168622,2453.300781,3,4
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,1,100,737275,2720,381.905151,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,225,1,100,948523,3420,1801.668335,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,300,1,100,949939,3420,2399.892334,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,2,100,1474615,5438,795.789795,1,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,225,2,100,1893113,6828,3621.269531,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,300,2,100,1899358,6838,4811.797363,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,5,100,4025460,14714,2251.602783,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,225,5,100,4741083,17082,9294.232422,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,300,5,100,4745405,17078,12261.507812,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,10,100,8752808,31764,5391.847656,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,225,10,100,9484396,34152,19463.052734,0,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,300,10,100,9499460,34170,25392.556641,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,20,100,18109649,65604,14349.558594,1,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,225,20,100,18981302,68330,42478.890625,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,300,20,100,18981821,68292,54331.679688,0,1
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,40,100,18109649,65604,14349.558594,2,0
2025.10.17,Apple M1,1776622074,spiral_1.scad,47,60,100,18109649,65604,14349.558594,2,0
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,1,100,1051040,3924,263.113525,0,0
2025.10.17,Apple M1,1776622074,spiral_2.scad,225,1,100,21545554,82648,1216.352783,2,2
2025.10.17,Apple M1,1776622074,spiral_2.scad,300,1,100,36376634,139876,1616.160767,4,4
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,2,100,2271981,8508,549.007202,0,0
2025.10.17,Apple M1,1776622074,spiral_2.scad,225,2,100,43973063,168622,2453.300781,3,4
2025.10.17,Apple M1,1776622074,spiral_2.scad,300,2,100,73638388,283040,3252.552979,8,9
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,5,100,7217427,27086,1540.818604,0,1
2025.10.17,Apple M1,1776622074,spiral_2.scad,225,5,100,116239927,445580,6294.632812,10,11
2025.10.17,Apple M1,1776622074,spiral_2.scad,300,5,100,186443489,716892,8292.231445,24,24
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,10,100,20695017,77870,3639.418213,1,1
2025.10.17,Apple M1,1776622074,spiral_2.scad,225,10,100,248793923,955316,13136.808594,23,24
2025.10.17,Apple M1,1776622074,spiral_2.scad,300,10,100,394923082,1519568,17131.646484,58,57
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,20,100,77196774,291720,9499.451172,4,3
2025.10.17,Apple M1,1776622074,spiral_2.scad,225,20,100,577692582,2221302,28471.851562,66,67
2025.10.17,Apple M1,1776622074,spiral_2.scad,300,20,100,901989102,3470648,36464.648438,156,155
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,40,100,77196774,291720,9499.451172,24,3
2025.10.17,Apple M1,1776622074,spiral_2.scad,47,60,100,77196774,291720,9499.451172,97,4
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,1,100,196935,804,262.170746,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,225,1,100,196158,804,1183.969727,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,300,1,100,196458,804,1572.366455,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,2,100,391450,1604,545.909607,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,225,2,100,389745,1604,2389.504639,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,300,2,100,390141,1604,3166.298828,1,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,5,100,974753,4004,1526.067627,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,225,5,100,971350,4004,6135.033203,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,300,5,100,972590,4004,8077.051270,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,10,100,1945771,8004,3589.473145,1,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,225,10,100,1942600,8004,12807.417969,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,300,10,100,1945630,8004,16691.511719,0,1
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,20,100,3881698,16004,9328.087891,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,225,20,100,3882981,16004,27764.009766,1,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,300,20,100,3890340,16004,35532.156250,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,40,100,3881698,16004,9328.087891,0,0
2025.10.17,Apple M1,1776622074,spiral_3.scad,47,60,100,3881698,16004,9328.087891,1,0
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,1,100,116175,476,283.915497,0,0
2025.10.17,Apple M1,1776622074,spiral_4.scad,225,1,100,2579129,10620,1264.975586,0,0
2025.10.17,Apple M1,1776622074,spiral_4.scad,300,1,100,4595199,18868,1679.428589,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,2,100,259323,1058,585.685364,0,0
2025.10.17,Apple M1,1776622074,spiral_4.scad,225,2,100,5286305,21646,2551.929932,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,300,2,100,9370867,38270,3381.042969,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,5,100,823587,3364,1629.683228,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,225,5,100,13971703,57170,6550.380859,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,300,5,100,24416117,99712,8623.339844,1,2
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,10,100,2349234,9604,3830.129639,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,225,10,100,30549808,124930,13673.729492,2,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,300,10,100,52234559,213272,17819.880859,3,3
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,20,100,8358379,34242,9954.084961,0,1
2025.10.17,Apple M1,1776622074,spiral_4.scad,225,20,100,72382977,295848,29639.207031,4,5
2025.10.17,Apple M1,1776622074,spiral_4.scad,300,20,100,118955586,485544,37928.593750,8,7
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,40,100,8358379,34242,9954.084961,3,0
2025.10.17,Apple M1,1776622074,spiral_4.scad,47,60,100,8358379,34242,9954.084961,7,0
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,1,100,338051,1388,260.902832,1,0
2025.10.17,Apple M1,1776622074,spiral_5.scad,225,1,100,7726646,31812,1184.960693,0,1
2025.10.17,Apple M1,1776622074,spiral_5.scad,300,1,100,13773188,56548,1573.813599,1,1
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,2,100,740716,3036,545.299683,0,0
2025.10.17,Apple M1,1776622074,spiral_5.scad,225,2,100,15755973,64820,2391.936035,2,1
2025.10.17,Apple M1,1776622074,spiral_5.scad,300,2,100,27914031,114692,3169.563965,2,3
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,5,100,2378135,9756,1528.756226,0,0
2025.10.17,Apple M1,1776622074,spiral_5.scad,225,5,100,41617914,171236,6143.295410,4,4
2025.10.17,Apple M1,1776622074,spiral_5.scad,300,5,100,72791379,298884,8087.031250,9,10
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,10,100,6860546,28188,3602.097900,1,0
2025.10.17,Apple M1,1776622074,spiral_5.scad,225,10,100,91101836,374580,12830.252930,14,13
2025.10.17,Apple M1,1776622074,spiral_5.scad,300,10,100,155863498,639748,16717.558594,34,32
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,20,100,24796370,102092,9377.504883,2,2
2025.10.17,Apple M1,1776622074,spiral_5.scad,225,20,100,216267202,888588,27831.775391,59,59
2025.10.17,Apple M1,1776622074,spiral_5.scad,300,20,100,355449738,1458412,35604.566406,154,162
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,40,100,24796370,102092,9377.504883,19,2
2025.10.17,Apple M1,1776622074,spiral_5.scad,47,60,100,24796370,102092,9377.504883,133,3
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,1,100,1693150,6464,1531.511841,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,225,1,100,1693150,6464,1531.511841,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,300,1,100,1693150,6464,1531.511841,1,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,2,100,2462435,9344,3041.319092,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,225,2,100,2462435,9344,3041.319092,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,300,2,100,2462435,9344,3041.319092,0,1
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,5,100,4389473,16544,7440.248535,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,225,5,100,4389473,16544,7440.248535,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,300,5,100,4389473,16544,7440.248535,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,10,100,7464840,28064,14337.451172,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,225,10,100,7464840,28064,14337.451172,0,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,300,10,100,7464840,28064,14337.451172,1,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,20,100,13985383,52544,26502.187500,0,1
2025.10.17,Apple M1,1776622074,spiral_6.scad,225,20,100,13985383,52544,26502.187500,1,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,300,20,100,13985383,52544,26502.187500,1,0
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,40,100,13985383,52544,26502.187500,0,1
2025.10.17,Apple M1,1776622074,spiral_6.scad,47,60,100,13985383,52544,26502.187500,1,1
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,1,100,178344,732,259.153931,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,225,1,100,189368,780,1171.729370,0,1
2025.10.17,Apple M1,1776622074,spiral_7.scad,300,1,100,191682,788,1556.346924,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,2,100,346903,1420,542.598999,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,225,2,100,375272,1548,2376.947021,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,300,2,100,378306,1556,3149.751953,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,5,100,791479,3252,1521.464111,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,225,5,100,923930,3804,6121.367188,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,300,5,100,935589,3852,8059.580566,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,10,100,1438889,5924,3581.507568,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,225,10,100,1770850,7292,12790.760742,1,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,300,10,100,1816772,7468,16671.162109,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,20,100,2574707,10620,9307.821289,0,1
2025.10.17,Apple M1,1776622074,spiral_7.scad,225,20,100,3334358,13732,27738.013672,0,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,300,20,100,3444881,14156,35502.335938,1,0
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,40,100,2574707,10620,9307.821289,0,1
2025.10.17,Apple M1,1776622074,spiral_7.scad,47,60,100,2574707,10620,9307.821289,0,0
1 version cpu date source diameter rotations fn size facets volume time manifold_time
2 2025.10.17 Apple M1 1776622016 spiral_1.scad 225 1 100 948523 3420 1801.668335 0 0
3 2025.10.17 Apple M1 1776622016 spiral_1.scad 300 1 100 949939 3420 2399.892334 0 0
4 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 2 100 1474615 5438 795.789795 0 0
5 2025.10.17 Apple M1 1776622016 spiral_1.scad 225 2 100 1893113 6828 3621.269531 1 0
6 2025.10.17 Apple M1 1776622016 spiral_1.scad 300 2 100 1899358 6838 4811.797363 0 0
7 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 5 100 4025460 14714 2251.602783 0 0
8 2025.10.17 Apple M1 1776622016 spiral_1.scad 225 5 100 4741083 17082 9294.232422 0 0
9 2025.10.17 Apple M1 1776622016 spiral_1.scad 300 5 100 4745405 17078 12261.507812 0 0
10 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 10 100 8752808 31764 5391.847656 0 0
11 2025.10.17 Apple M1 1776622016 spiral_1.scad 225 10 100 9484396 34152 19463.052734 0 0
12 2025.10.17 Apple M1 1776622016 spiral_1.scad 300 10 100 9499460 34170 25392.556641 1 0
13 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 20 100 18109649 65604 14349.558594 1 1
14 2025.10.17 Apple M1 1776622016 spiral_1.scad 225 20 100 18981302 68330 42478.890625 1 1
15 2025.10.17 Apple M1 1776622016 spiral_1.scad 300 20 100 18981821 68292 54331.679688 1 1
16 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 40 100 18109649 65604 14349.558594 1 1
17 2025.10.17 Apple M1 1776622016 spiral_1.scad 47 60 100 18109649 65604 14349.558594 2 0
18 2025.10.17 Apple M1 1776622016 spiral_2.scad 47 1 100 1051040 3924 263.113525 0 0
19 2025.10.17 Apple M1 1776622016 spiral_2.scad 225 1 100 21545554 82648 1216.352783 2 1
20 2025.10.17 Apple M1 1776622016 spiral_2.scad 300 1 100 36376634 139876 1616.160767 4 4
21 2025.10.17 Apple M1 1776622016 spiral_2.scad 47 2 100 2271981 8508 549.007202 0 1
22 2025.10.17 Apple M1 1776622016 spiral_2.scad 225 2 100 43973063 168622 2453.300781 3 4
23 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 1 100 737275 2720 381.905151 0 0
24 2025.10.17 Apple M1 1776622074 spiral_1.scad 225 1 100 948523 3420 1801.668335 0 0
25 2025.10.17 Apple M1 1776622074 spiral_1.scad 300 1 100 949939 3420 2399.892334 0 0
26 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 2 100 1474615 5438 795.789795 1 0
27 2025.10.17 Apple M1 1776622074 spiral_1.scad 225 2 100 1893113 6828 3621.269531 0 0
28 2025.10.17 Apple M1 1776622074 spiral_1.scad 300 2 100 1899358 6838 4811.797363 0 0
29 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 5 100 4025460 14714 2251.602783 0 1
30 2025.10.17 Apple M1 1776622074 spiral_1.scad 225 5 100 4741083 17082 9294.232422 0 0
31 2025.10.17 Apple M1 1776622074 spiral_1.scad 300 5 100 4745405 17078 12261.507812 0 1
32 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 10 100 8752808 31764 5391.847656 0 1
33 2025.10.17 Apple M1 1776622074 spiral_1.scad 225 10 100 9484396 34152 19463.052734 0 0
34 2025.10.17 Apple M1 1776622074 spiral_1.scad 300 10 100 9499460 34170 25392.556641 0 1
35 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 20 100 18109649 65604 14349.558594 1 0
36 2025.10.17 Apple M1 1776622074 spiral_1.scad 225 20 100 18981302 68330 42478.890625 0 1
37 2025.10.17 Apple M1 1776622074 spiral_1.scad 300 20 100 18981821 68292 54331.679688 0 1
38 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 40 100 18109649 65604 14349.558594 2 0
39 2025.10.17 Apple M1 1776622074 spiral_1.scad 47 60 100 18109649 65604 14349.558594 2 0
40 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 1 100 1051040 3924 263.113525 0 0
41 2025.10.17 Apple M1 1776622074 spiral_2.scad 225 1 100 21545554 82648 1216.352783 2 2
42 2025.10.17 Apple M1 1776622074 spiral_2.scad 300 1 100 36376634 139876 1616.160767 4 4
43 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 2 100 2271981 8508 549.007202 0 0
44 2025.10.17 Apple M1 1776622074 spiral_2.scad 225 2 100 43973063 168622 2453.300781 3 4
45 2025.10.17 Apple M1 1776622074 spiral_2.scad 300 2 100 73638388 283040 3252.552979 8 9
46 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 5 100 7217427 27086 1540.818604 0 1
47 2025.10.17 Apple M1 1776622074 spiral_2.scad 225 5 100 116239927 445580 6294.632812 10 11
48 2025.10.17 Apple M1 1776622074 spiral_2.scad 300 5 100 186443489 716892 8292.231445 24 24
49 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 10 100 20695017 77870 3639.418213 1 1
50 2025.10.17 Apple M1 1776622074 spiral_2.scad 225 10 100 248793923 955316 13136.808594 23 24
51 2025.10.17 Apple M1 1776622074 spiral_2.scad 300 10 100 394923082 1519568 17131.646484 58 57
52 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 20 100 77196774 291720 9499.451172 4 3
53 2025.10.17 Apple M1 1776622074 spiral_2.scad 225 20 100 577692582 2221302 28471.851562 66 67
54 2025.10.17 Apple M1 1776622074 spiral_2.scad 300 20 100 901989102 3470648 36464.648438 156 155
55 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 40 100 77196774 291720 9499.451172 24 3
56 2025.10.17 Apple M1 1776622074 spiral_2.scad 47 60 100 77196774 291720 9499.451172 97 4
57 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 1 100 196935 804 262.170746 0 0
58 2025.10.17 Apple M1 1776622074 spiral_3.scad 225 1 100 196158 804 1183.969727 0 0
59 2025.10.17 Apple M1 1776622074 spiral_3.scad 300 1 100 196458 804 1572.366455 0 0
60 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 2 100 391450 1604 545.909607 0 0
61 2025.10.17 Apple M1 1776622074 spiral_3.scad 225 2 100 389745 1604 2389.504639 0 0
62 2025.10.17 Apple M1 1776622074 spiral_3.scad 300 2 100 390141 1604 3166.298828 1 0
63 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 5 100 974753 4004 1526.067627 0 0
64 2025.10.17 Apple M1 1776622074 spiral_3.scad 225 5 100 971350 4004 6135.033203 0 0
65 2025.10.17 Apple M1 1776622074 spiral_3.scad 300 5 100 972590 4004 8077.051270 0 0
66 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 10 100 1945771 8004 3589.473145 1 0
67 2025.10.17 Apple M1 1776622074 spiral_3.scad 225 10 100 1942600 8004 12807.417969 0 0
68 2025.10.17 Apple M1 1776622074 spiral_3.scad 300 10 100 1945630 8004 16691.511719 0 1
69 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 20 100 3881698 16004 9328.087891 0 0
70 2025.10.17 Apple M1 1776622074 spiral_3.scad 225 20 100 3882981 16004 27764.009766 1 0
71 2025.10.17 Apple M1 1776622074 spiral_3.scad 300 20 100 3890340 16004 35532.156250 0 0
72 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 40 100 3881698 16004 9328.087891 0 0
73 2025.10.17 Apple M1 1776622074 spiral_3.scad 47 60 100 3881698 16004 9328.087891 1 0
74 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 1 100 116175 476 283.915497 0 0
75 2025.10.17 Apple M1 1776622074 spiral_4.scad 225 1 100 2579129 10620 1264.975586 0 0
76 2025.10.17 Apple M1 1776622074 spiral_4.scad 300 1 100 4595199 18868 1679.428589 0 1
77 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 2 100 259323 1058 585.685364 0 0
78 2025.10.17 Apple M1 1776622074 spiral_4.scad 225 2 100 5286305 21646 2551.929932 0 1
79 2025.10.17 Apple M1 1776622074 spiral_4.scad 300 2 100 9370867 38270 3381.042969 0 1
80 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 5 100 823587 3364 1629.683228 0 1
81 2025.10.17 Apple M1 1776622074 spiral_4.scad 225 5 100 13971703 57170 6550.380859 0 1
82 2025.10.17 Apple M1 1776622074 spiral_4.scad 300 5 100 24416117 99712 8623.339844 1 2
83 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 10 100 2349234 9604 3830.129639 0 1
84 2025.10.17 Apple M1 1776622074 spiral_4.scad 225 10 100 30549808 124930 13673.729492 2 1
85 2025.10.17 Apple M1 1776622074 spiral_4.scad 300 10 100 52234559 213272 17819.880859 3 3
86 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 20 100 8358379 34242 9954.084961 0 1
87 2025.10.17 Apple M1 1776622074 spiral_4.scad 225 20 100 72382977 295848 29639.207031 4 5
88 2025.10.17 Apple M1 1776622074 spiral_4.scad 300 20 100 118955586 485544 37928.593750 8 7
89 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 40 100 8358379 34242 9954.084961 3 0
90 2025.10.17 Apple M1 1776622074 spiral_4.scad 47 60 100 8358379 34242 9954.084961 7 0
91 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 1 100 338051 1388 260.902832 1 0
92 2025.10.17 Apple M1 1776622074 spiral_5.scad 225 1 100 7726646 31812 1184.960693 0 1
93 2025.10.17 Apple M1 1776622074 spiral_5.scad 300 1 100 13773188 56548 1573.813599 1 1
94 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 2 100 740716 3036 545.299683 0 0
95 2025.10.17 Apple M1 1776622074 spiral_5.scad 225 2 100 15755973 64820 2391.936035 2 1
96 2025.10.17 Apple M1 1776622074 spiral_5.scad 300 2 100 27914031 114692 3169.563965 2 3
97 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 5 100 2378135 9756 1528.756226 0 0
98 2025.10.17 Apple M1 1776622074 spiral_5.scad 225 5 100 41617914 171236 6143.295410 4 4
99 2025.10.17 Apple M1 1776622074 spiral_5.scad 300 5 100 72791379 298884 8087.031250 9 10
100 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 10 100 6860546 28188 3602.097900 1 0
101 2025.10.17 Apple M1 1776622074 spiral_5.scad 225 10 100 91101836 374580 12830.252930 14 13
102 2025.10.17 Apple M1 1776622074 spiral_5.scad 300 10 100 155863498 639748 16717.558594 34 32
103 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 20 100 24796370 102092 9377.504883 2 2
104 2025.10.17 Apple M1 1776622074 spiral_5.scad 225 20 100 216267202 888588 27831.775391 59 59
105 2025.10.17 Apple M1 1776622074 spiral_5.scad 300 20 100 355449738 1458412 35604.566406 154 162
106 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 40 100 24796370 102092 9377.504883 19 2
107 2025.10.17 Apple M1 1776622074 spiral_5.scad 47 60 100 24796370 102092 9377.504883 133 3
108 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 1 100 1693150 6464 1531.511841 0 0
109 2025.10.17 Apple M1 1776622074 spiral_6.scad 225 1 100 1693150 6464 1531.511841 0 0
110 2025.10.17 Apple M1 1776622074 spiral_6.scad 300 1 100 1693150 6464 1531.511841 1 0
111 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 2 100 2462435 9344 3041.319092 0 0
112 2025.10.17 Apple M1 1776622074 spiral_6.scad 225 2 100 2462435 9344 3041.319092 0 0
113 2025.10.17 Apple M1 1776622074 spiral_6.scad 300 2 100 2462435 9344 3041.319092 0 1
114 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 5 100 4389473 16544 7440.248535 0 0
115 2025.10.17 Apple M1 1776622074 spiral_6.scad 225 5 100 4389473 16544 7440.248535 0 0
116 2025.10.17 Apple M1 1776622074 spiral_6.scad 300 5 100 4389473 16544 7440.248535 0 0
117 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 10 100 7464840 28064 14337.451172 0 0
118 2025.10.17 Apple M1 1776622074 spiral_6.scad 225 10 100 7464840 28064 14337.451172 0 0
119 2025.10.17 Apple M1 1776622074 spiral_6.scad 300 10 100 7464840 28064 14337.451172 1 0
120 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 20 100 13985383 52544 26502.187500 0 1
121 2025.10.17 Apple M1 1776622074 spiral_6.scad 225 20 100 13985383 52544 26502.187500 1 0
122 2025.10.17 Apple M1 1776622074 spiral_6.scad 300 20 100 13985383 52544 26502.187500 1 0
123 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 40 100 13985383 52544 26502.187500 0 1
124 2025.10.17 Apple M1 1776622074 spiral_6.scad 47 60 100 13985383 52544 26502.187500 1 1
125 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 1 100 178344 732 259.153931 0 0
126 2025.10.17 Apple M1 1776622074 spiral_7.scad 225 1 100 189368 780 1171.729370 0 1
127 2025.10.17 Apple M1 1776622074 spiral_7.scad 300 1 100 191682 788 1556.346924 0 0
128 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 2 100 346903 1420 542.598999 0 0
129 2025.10.17 Apple M1 1776622074 spiral_7.scad 225 2 100 375272 1548 2376.947021 0 0
130 2025.10.17 Apple M1 1776622074 spiral_7.scad 300 2 100 378306 1556 3149.751953 0 0
131 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 5 100 791479 3252 1521.464111 0 0
132 2025.10.17 Apple M1 1776622074 spiral_7.scad 225 5 100 923930 3804 6121.367188 0 0
133 2025.10.17 Apple M1 1776622074 spiral_7.scad 300 5 100 935589 3852 8059.580566 0 0
134 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 10 100 1438889 5924 3581.507568 0 0
135 2025.10.17 Apple M1 1776622074 spiral_7.scad 225 10 100 1770850 7292 12790.760742 1 0
136 2025.10.17 Apple M1 1776622074 spiral_7.scad 300 10 100 1816772 7468 16671.162109 0 0
137 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 20 100 2574707 10620 9307.821289 0 1
138 2025.10.17 Apple M1 1776622074 spiral_7.scad 225 20 100 3334358 13732 27738.013672 0 0
139 2025.10.17 Apple M1 1776622074 spiral_7.scad 300 20 100 3444881 14156 35502.335938 1 0
140 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 40 100 2574707 10620 9307.821289 0 1
141 2025.10.17 Apple M1 1776622074 spiral_7.scad 47 60 100 2574707 10620 9307.821289 0 0

106
scripts/manifold.sh Normal file
View File

@ -0,0 +1,106 @@
#!/bin/bash
set -e
echo "Benchmarking GNAL spiral generation"
VERSION=`bash ./scripts/version.sh`
CPU=`bash ./scripts/cpu.sh`
DATE=`date -u +%s` #timestamp in seconds
NOTES="./notes/manifold.csv"
ROTATIONS=( 1 2 5 10 20 )
DIAMETERS=( 47 225 300 )
COMPLETE=( 40 60 )
mkdir -p benchmark
if test -f "${NOTES}"; then
echo "Benchmark file exists"
else
echo "version,cpu,date,source,diameter,rotations,fn,size,facets,volume,time,manifold_time" > $NOTES
fi
for SPIRAL in "./scad/spiral/"*".scad"
do
FILENAME=`basename ${SPIRAL}`
echo "Rendering ${SPIRAL}..."
for ROT in "${ROTATIONS[@]}"
do
:
for D in "${DIAMETERS[@]}"
do
:
echo "Rendering ${SPIRAL} for ${ROT} rotations @ ${D}mm"
#TMP=`mktemp`
TMP="benchmark/${FILENAME}_${D}_${ROT}_100"
if test -f "${TMP}.stl"; then
echo "Benchmark for ${TMP} exists"
else
start=`date +%s`
openscad -o "${TMP}.stl" -D N=${ROT} -D D=${D} -D FN=100 "${SPIRAL}"
end=`date +%s`
runtime=$((end-start))
start=`date +%s`
openscad --backend=manifold --csglimit=20000000 -o "${TMP}.stl" -D N=${ROT} -D D=${D} -D FN=100 "${SPIRAL}"
end=`date +%s`
manifold=$((end-start))
size=`wc -c < "${TMP}.stl"`
size=`echo $size | xargs`
if ! [ -x "$(command -v admesh)" ]; then
facets="N/A"
volume="N/A"
else
ao=`admesh -c "${TMP}.stl"`
facets=`echo "$ao" | grep "Number of facets" | awk '{print $5}'`
volume=`echo "$ao" | grep "Number of parts" | awk '{print $8}'`
fi
line="${VERSION},${CPU},${DATE},${FILENAME},${D},${ROT},100,$size,$facets,$volume,$runtime,$manifold"
echo $line
echo $line >> $NOTES
rm -rf "${TMP}"
fi
#rm "${TMP}.stl"
done
done
for C in "${COMPLETE[@]}"
do
:
echo "Rendering complete ${SPIRAL} with ${C} rotations"
#TMP=`mktemp`
TMP="benchmark/${FILENAME}_47_${C}_100"
if test -f "${TMP}.stl"; then
echo "Benchmark for ${TMP} exists"
else
start=`date +%s`
openscad -o "${TMP}.stl" -D N=${C} -D D=47 -D FN=100 "${SPIRAL}"
end=`date +%s`
runtime=$((end-start))
start=`date +%s`
openscad --backend=manifold --csglimit=20000000 -o "${TMP}.stl" -D N=${ROT} -D D=47 -D FN=100 "${SPIRAL}"
end=`date +%s`
manifold=$((end-start))
size=`wc -c < "${TMP}.stl"`
size=`echo $size | xargs`
ao=`admesh -c "${TMP}.stl"`
facets=`echo "$ao" | grep "Number of facets" | awk '{print $5}'`
volume=`echo "$ao" | grep "Number of parts" | awk '{print $8}'`
line="${VERSION},${CPU},${DATE},${FILENAME},47,${C},100,$size,$facets,$volume,$runtime,$manifold"
echo $line >> $NOTES
echo $line
#rm "${TMP}.stl"
fi
done
done
rm -rf benchmark