teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | https://openscad.org/advent-calendar-2021/ | Website: http://www.openscad.org/ | FAQ: https://goo.gl/pcT7y3 | Request features / report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://bit.ly/32MfbH5
<Jack21> you know bloom? https://youtu.be/B5p2A5mazEs?t=229
<othx> Jack21 linked to YouTube video "Creating The Never-Ending Bloom" => 1 IRC mentions
<Jack21> inphase i said MEATballs  --
<Jack21> oh lets do ferro fluid
<othx> Jack21 linked to YouTube video "Ferrofluid Bluetooth Speaker - Audio Visualizer - demo1 by Ferrofluid.com" => 1 IRC mentions
ur5us has joined #openscad
<gbruno> [github] kintel pushed 1 additions 1 modifications (Support building on macOS 12 (Monterey) (#3997)). https://github.com/openscad/openscad/commit/28bf7c48248570bbac54ce2c8a932a142985fd18
<lf94> All right, day 7, let's see what you've got!
<InPhase> :)
<lf94> Hm
<lf94> Interesting shape
<lf94> I feel curv will be strong here
<lf94> I just don't know what I'm twisting lol.
<lf94> Could maybe twist two cylinders and smooth union to a sphere.
<InPhase> This was definitely the most "wait... how did you do that?" one for me of this year's set.
<lf94> Yeah I looked at the openscad code and it's pretty much non-sense to me
<lf94> circle and square are 2D operations right?
<InPhase> Yes.
<lf94> I forget so much of openscad. I can't believe I was making stuff like L-Systems in the language
<InPhase> Jack21 likes to hide the key steps with a lack of whitespace. :) In this case, the rotate_extrude is hiding to the right of the rotate([-90])
<Jack21> not intentional
<lf94> I need to implement `spiral` or something
<InPhase> Jack21: :)
<lf94> What's the render time on this one - instant?
<lf94> I would even be stuck if using cadquery for this one.
<Jack21> for me the amount of space other use makes it confusing - but i am sure i can adapt
<lf94> My brain just can't imagine how the very nice merge between the swirl and sphere happens.
<InPhase> Preview 0.115s, Render 1 min 42s with 2.3GB.
<InPhase> Yeah. That superb alignment is why my brain couldn't parse how it was done. But it falls out naturally from the symmetry of the 2D input.
<Jack21> without the offsets for rounding it is probably much faster
<Jack21> sphericon may help to understand
<lf94> I'll look
<lf94> I'm literally at a loss for what to do
<lf94> Mapping things onto spheres breaks my brain
<InPhase> It helps to extract the part that's rotate_extruded, and just do the 2D part.
<lf94> I'm going to have to open up openscad and run parts of this
<lf94> Or I create one which is not exactly this.
<lf94> Maybe that's better.
<lf94> A spiral extrude would work well here
<Jack21> keep in mind the customizer let you choose how many paths you want
<lf94> Ah ha, neat
<lf94> When you open up the scad I see exactly why you said sphericon
<Jack21> like everything it is simple when you see how
<lf94> Oh my god, looking at the 2D...wooooooooooow
<lf94> amazing
<lf94> Onehalf=true causes preview to takeforever
<Jack21> and it should be before the star .. i wouldn't need that triangles if i have the star function
<InPhase> Jack21: Confession time... Did you plan it from the beginning? :) Or were you playing around with rotate_extrude?
<Jack21> this was planned that way
<InPhase> Nice.
<Jack21> but as said it is a sphericon and there is a connection to an oloid
<lf94> I still don't get it: it's just two halves, and one half is rotated (not even twisted?!)?...
<lf94> magic
<lf94> How are the paths just lining up perfectly
<Jack21> how does the preview take longer if it is only half?
<lf94> no idea, it actually freezes
<Jack21> weird ..
<Jack21> if you turn by 90 it may be easier to understand
<Jack21> and why there is no twist as the other half is only connecting the grooves from the first
<Jack21> or disable some triangles
<InPhase> lf94: The 2D shape is a perfectly symmetric pattern, so rotating by one oscillation lines it up with the next portion.
<lf94> Is the model on the calendar the exact same as the first render in openscad?
<lf94> Ohhhhhhh.
<lf94> Makes sense when you put it that way
<Jack21> the twist value generates the different views
<lf94> Right - what is the twist value for the one in the calender? 3?
<InPhase> 1 I think.
<Jack21> 1
<Jack21> what i would guess
<Jack21> (not sure how i counted  - Ü )
<Jack21> but 0 should be equal line up
<InPhase> Seeing 0 first would have made it much easier to deduce. I think the first image I saw was twist=3
<Jack21> so 1 is an offset  that  edge 0 is conected to 1 of the other and 2 to 3 etc ..
<InPhase> twist=1 is probably the most mentally perplexing though.
<Jack21> in my original design you could have different number of edges and uneven will produce an asymetrical connection
<Jack21> so the top  two grooves are connected  while the bottom a groove ends
<lf94> Im almost scared to attempt this
<InPhase> :)
<InPhase> lf94: I don't know curv syntax, but I think coordinate transforms are the key. Wrap up the same logic backwards.
<InPhase> Start with z>0, translate xyz to a phi angle that corresponds to the rotate_extruded arc, then express the 2D shape with the phi...
<lf94> Yea exactly.
<Jack21> is there a cheat sheet for curv?
Jack2114 has joined #openscad
Jack2114 is now known as Jack21zzz
Jack21 has quit [Ping timeout: 256 seconds]
<lf94> Hm. I don't think so, but there should be.
<lf94> All documentation is in docs/
<lf94> I just do `git grep` to look what I need
<lf94> Just had some fun with `twist`. Going to do it the real way now :p
ferdna has joined #openscad
<lf94> This was really cool though. Manipulating patterns on a sphere aligning like this is ...crazy
<lf94> Having looked at the past scadvent calendars, this one feels really good
<lf94> The only things I would've changed so far is Day 2
<lf94> Day 1 couldve been a bit more funky
<lf94> Because day...3? 4? is a repeat more or less
<InPhase> lf94: Hahah. The twist looks like an angry blob monster. :)
<lf94> "Abominable snowball"
<InPhase> Meta-ornament, decorates itself with you.
<lf94> We did it fellas
<lf94> The battle is one
<lf94> won
<lf94> saoteuh
<lf94> this problem fried my little peanut brain
<lf94> Code up soon
<lf94> How do I make more twists?
<lf94> Do I just keep rotating it? It's frickin' magic.
<lf94> This is ... what the f, HOW!
<lf94> This is like that youtube video of the never ending chocolate bar
ur5us has quit [Ping timeout: 252 seconds]
<lf94> All caught up. Day 5 finished
snakedGT has joined #openscad
snaked has quit [Ping timeout: 252 seconds]
<InPhase> lf94: And in another 5 days you'll be able to get tomorrow's to render.
<lf94> lol....
PovilasCNC has quit [Read error: Connection reset by peer]
PovilasCNC has joined #openscad
ferdna has quit [Quit: Leaving]
GNUmoon has quit [Ping timeout: 276 seconds]
ur5us has joined #openscad
RichardP_ has joined #openscad
RichardPotthoff has quit [Read error: Connection reset by peer]
GNUmoon has joined #openscad
linext_ has joined #openscad
linext has quit [Ping timeout: 252 seconds]
lastrodamo has joined #openscad
Jack21zzz is now known as Jack21
<Jack21> lf94  nice work so far ..    can another offset set to get the inner radius rounded ?
ur5us has quit [Ping timeout: 265 seconds]
<Jack21> if you can import 3mf or export  we could put the models together and see if they z-fighting
mhroncok has joined #openscad
Guest496 has joined #openscad
Guest496 has quit [Client Quit]
<dTal> the scadvent calenda isn't very christmassy so far
<Jack21> we have a Star yesterday and an ornament bauble today
<Jack21> dTal could you help making it more christmassy next year?
<Scopeuk> I thought today was some sort of odd geometry gear
<Jack21> i made extra a hole in it so you could hang it with a thread
<dTal> Jack21: I helped last year and everything
<dTal> y'all gotta ask me earlier :D
<dTal> I take it you've already done them all? I can contrbute this year if you'd like
<Jack21> dTal yeah we need to start earlier next year .. i think this is so much better if more and different styles are represented
<Jack21> maybe teepee or inphase are taking registration offers?
<teepee> I have no problem creating a repo for next year already :)
mhroncok has quit [Quit: Leaving.]
mhroncok has joined #openscad
Guest82 has joined #openscad
Guest82 has quit [Client Quit]
<Jack21> maybe not a bad idea
<teepee> so who want's an invite for that? :)
* Jack21 is winking
* teepee goes fiddling with the user access setup...
<teepee> ok, I hope I did not mess up the access, now going via a team/group list
<lf94> I find this year has been very christmasy
<lf94> Except day 2. XD
<lf94> Jack21: the inner radius is rounded?
<Jack21> So my lib documentation is mainly finished - maybe a wiki would be needed for more
<Jack21> lf94 ok - looks a bit weird on the image like a big outer radius and a very small inner
<Jack21> ah no it is where both radii meet that doesn't look smooth
ToAruShiroiNeko has quit [Ping timeout: 256 seconds]
ToAruShiroiNeko has joined #openscad
<Jack21> teepee great naming !
<InPhase> We could make a calendar reservoir, and then select from it aiming for diversity of content come the season's time.
<teepee> right, good idea, if it turns out the thing is going to overflow, we can create a reservoir repo
jkent3 has joined #openscad
<InPhase> Reflecting on the nature of git history, maybe we should rename the one you just created into a reservoir, and select out of it in the other direction?
<teepee> done
<InPhase> *thumbsup*
snakedGT is now known as snaked
<JakeSays> whats a reservoir repo?
<teepee> a place to stash designs until they may be used in some other place, specifically for next years advent calendar
<JakeSays> ah ok
<InPhase> That word choice flows from me automatically from my physicist training. :) teepee's choice of "-designs" in the repository name is probably more standard.
<InPhase> It hits both ways. Once while using "implement" as a verb in ordinary speech a physics prof called me out on it as not making sense. :)
<Jack21> open the gates and flood the reservoir - Ü
mhroncok has quit [Quit: Leaving.]
<teepee> but first we admire the cool stuff from this year
<teepee> didn't I count 25 directories already, so maybe there's already one entry that could move into the pool
lagash has quit [Quit: ZNC - https://znc.in]
lagash has joined #openscad
lagash has quit [Client Quit]
ur5us has joined #openscad
lagash has joined #openscad
<Jack21> well good luck finding the one not in the script .. and how can you move a folder into another rep?
<teepee> easy, I wait till 24th and then it's the last remaining folder which is not world-readable :)
<teepee> there's probably only manual move
<teepee> it's probably the hayball though?
<Jack21> ah just found .. year
<Jack21> too late ..
<teepee> also ugh, glib2 now uses meson to build
<Jack21> i renamed hayball into ball and added some changes .. so i kept hayball so it is not causing issues if some link is not updated
<Jack21> but there is nothing worthy to move ( and i assume ball will be used in the calendar 2021)
<teepee> yep, I think so
lagash has quit [Quit: ZNC - https://znc.in]
<Jack21> ( took ages to render so i thought i should change something for a better UX )
* teepee feels watched now for some reason
lagash has joined #openscad
jkent3 has quit [Quit: jkent3]
jkent3 has joined #openscad
* Jack21 unwatches teepee
GNUmoon has quit [Ping timeout: 276 seconds]
linext_ has quit [Read error: Connection reset by peer]
jkent3 has quit [Quit: jkent3]
jkent3 has joined #openscad
<Jack21> maybe only loop 10 times ending with eyes closed - Ü
lastrodamo has quit [Quit: Leaving]
GNUmoon has joined #openscad
<ccox> profiled the F6 render of SphereEquation.scad. Literally 2 minutes out of the 6 minute time is spent calling "free".
<ccox> unfortunately it's all inside CGAL and gmp libraries.
juri_ has quit [Ping timeout: 252 seconds]
ur5us has quit [Ping timeout: 252 seconds]
<InPhase> ccox: Well that's why peeps is trying to swap in that custom malloc.
<ccox> yep
<InPhase> (If you didn't see that PR yet.)
<ccox> I've seen a lot of discussion about it. Hmm, the pull request hasn't been update in 22 days.
<InPhase> CGAL is extra wasteful because it was built by mathematicians around rationals which fundamentally require excessive allocations and can blow up on you in size. I really think the whole thing could be written with doubles if you just designed each operation a little differently.
<InPhase> I bet CGAL with all doubles all the way through would run many times faster.
<ccox> Yes, it could be written with doubles, but the edge cases that result would be insane.
<ccox> yes, it would be quite a bit faster (50% maybe).
<ccox> There are a few cases where it could be faster than that, but for most of what I've seen, the gmp and related allocations aren't more then 50%.
<InPhase> Well it's not just that. There's a massive cache overhead on the rationals.
<InPhase> This is harder to profile, but can be a massive impact.
<ccox> yes, and on all the bad data structures used in CGAL and gmp. That time is accounted for in a sampling profiler, within some statistical limit.
<InPhase> The cache effects can be leaky though, as they can drive out all the other things one wants in the cache, which in a profile can look like the other aspects slowing down.
<InPhase> It requires some significant data size to do that, but we're totally on that scale.
<ccox> No, it's not that simple. For a particular workload, the sampling process adds some time and some cache pressure, which is shown as extra time in the profile, plus any instruction waiting on cache data is shown as a slowpoint in the sampling.
<ccox> Eh, you're on the small side of data for modern processors (a few Meg). I'll spend more time worrying about cache and TLB issues when you reach Photoshop/After EFfects size data sets (GB++).
<InPhase> CGAL regularly eats multiple GB rendering simple stuff.
<InPhase> The Ornament.scad from last night was 2.3GB.
<InPhase> I think it will take 20 minutes to measure the memory consumption of tonight's (which should be just in time for when it goes live).
<InPhase> This is the sort of design that I expect to take very little memory for a while, and then explode in memory consumption toward the end. But I will try and see. (I just have to not forget and look away.)
<ccox> It's only reporting 11 Meg in geometry cache, 80 Meg in CGAL cache, 2.4 GB total usage while rendering with CGAL.
<ccox> OK, that's approaching Photoshop memory usage... in 2000.
<InPhase> Does your report say what the bulk of that 2.4GB is?
<ccox> yeah, the transient usage is insane. Worse is that it is scattered, so a lot of the pages are kept even after rendering, causing a little TLB thrashing.
<ccox> Nope, I haven't done a breakdown by allocation size/location yet.
<ccox> (save all the sampling profiles, restart with leak/memory profiling...)
<ccox> (hold crap memory profiling slows this down)