<peepsalot>
ASCII STL is actually the dumbest most ill conceived 3D format. Things should have standardized on PLY imo
<ccox_>
PLY has both ASCII and binary versions.
<peepsalot>
yes
<ccox_>
Though, yes, STL is the most boneheaded format possible for 3D data.
<ccox_>
OBJ would have been a better choice.
walterwhip has joined #openscad
<InPhase>
OlivierChafik[m]: Yeah. I wrote the stl binary exporter following the internationally accepted standards document called Wikipedia.
<ccox_>
this happens a lot.
<ccox_>
even in commercial software.
<InPhase>
OlivierChafik[m]: Although it's probably for the best that it's single precision, as this is plenty sufficient, and achieves the core benefit of that format over ascii, which is much smaller files. 64-bit would cut the benefit in half.
<InPhase>
It's currently about a 4X gain switching to binary, and we'd get only 2X with doubles.
<peepsalot>
i can't remember, the binary format at least doesn't store redundant normals, does it?
walterwhip has quit [Ping timeout: 256 seconds]
<ccox_>
yes, STL binary still stores normals per face.
<ccox_>
REAL32[3] – Normal vector
<ccox_>
REAL32[3] – Vertex 1
<ccox_>
REAL32[3] – Vertex 2
<ccox_>
REAL32[3] – Vertex 3
<ccox_>
UINT16 – Attribute byte count (zero or FFFF)
<ccox_>
plus the unused "attribute" field
<peepsalot>
ugh, just wtf
ferdna has joined #openscad
<InPhase>
Right, I forgot about the attribute space waster. I suppose that could be used for something useful if there were actually some way to assign meaning to it. But I guess you'd have to somehow shove it into the 80-byte header and make up your own standard for describing attributes.
<ccox_>
yeah, there is an art to designing file formats that are expandable enough, without being wasteful.
<peepsalot>
so at least 28% of the binary format is garbage data
<ccox_>
Then there is another art to preventing committees from taking over and redesigning the format poorly.
<ccox_>
peepsalot: yeah, but at least it's smaller than the ASCII files.
walterwhip has joined #openscad
<InPhase>
peepsalot: I suppose technically the normal vector is redundant, but it probably simplifies some calculations to have it specified up front.
<InPhase>
Oh. Actually, that should just be done by the winding order. Nevermind.
<ccox_>
apparently it saved some time on the original 3D systems printer hardware (in the 90s).
<InPhase>
Yes, 28% is wasted space.
<InPhase>
ccox_: After wasting how much time reading that extra data in from a floppy disk? ;)
<InPhase>
It used to take quite a while to read a full MB of data in.
<OlivierChafik[m]>
InPhase: not sure how big OpenSCAD's user base is, but maybe export_stl.cc *is* the new internationally accepted STL standard ;-)
<InPhase>
OlivierChafik[m]: So I can start regarding the regular stream of "STL export messed up my design" bug reports as "the compiler messed up" reports? ;)
<ccox_>
InPhase - I don't know, it's not my format or hardware...
<InPhase>
ccox_: Yeah. I was just reminiscing in my head about the days of carrying a 3.5" floppy around in my pocket when I went to school, and that slow fvwerp fvwerp sound as it did its reading.
<OlivierChafik[m]>
InPhase: I'd say totally working as (coded) intended
<ccox_>
InPhose - highschool was AppleII, and college was mostly networked unix systems. I only carried floppies when I needed to use a Mac that wasn't on the network.
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
walterwhip has joined #openscad
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
walterwhip has joined #openscad
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
walterwhip has joined #openscad
walterwhip has quit [Client Quit]
walterwhip has joined #openscad
walterwhip has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
<teepee>
quite a number of cases with: [fast-csg-remesh] Skipping remeshing of patch with 364 faces as it seems to have holes.
<teepee>
one case of ERROR: [fast-csg-remesh] Failed to collect path around patch faces, invalid mesh!
<teepee>
but looks like all producing a good final result mesh
TheAssassin has joined #openscad
<teepee>
interesting, slightly longer time needed, but 1/3rd of faces in the final mesh - for (a = [0:1:359]) rotate(a) translate([50, 0, 0]) sphere(10);
<teepee>
0:02:44.768 vs. 0:03:25.113
ferdna has quit [Quit: Leaving]
ur5us_ has joined #openscad
lastrodamo has quit [Quit: Leaving]
extor has quit [Ping timeout: 268 seconds]
veverak has quit [Quit: WeeChat 3.0]
la1yv_b has quit [Read error: Connection reset by peer]
la1yv_b has joined #openscad
extor has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
<J2222>
hmm i thought the rands function was fixed .. but it is not possible to have random numbers with and without seed
<J2222>
except for the first refresh
<J2222>
so as soon as one seed is not a random seed but a fixed -- all other rands with no seed get fixed https://bpa.st/IFCA that can't be right!
<J2222>
and fast CSG fails when rands has no seed as the render uses the data from preview
ur5us_ has quit [Remote host closed the connection]