<InPhase>
J24k71: I have been running memory profiling on every OpenSCAD model I've used for about 3 years. I have a log with 1360 entries.
<InPhase>
J24k71: I'm not really sure what to do with this data, but I have it. ;)
<InPhase>
J24k71: I figured I'd accumulate it, because it's free (no load) and maybe someday it will solve a problem.
<J24k71>
InPhase so now we need to run them on different platforms/CPU to get benchmarks
<InPhase>
UltimateCodeWarr: AMD and Intel are honestly about equal for most purposes, except that AMD tends to be a bit more energy efficient and slightly better performance per price for what, 3-4 years now? So for a laptop, get AMD, because thermal throttling will be less. For a desktop, either can do fine, and for higher end servers, I think Intel is still making the beefiest high end industrial grade
<InPhase>
options.
<InPhase>
J24k71: I don't think memory consumption would differ meaningfully.
<InPhase>
J24k71: But also, I don't actually have a memory profiler for Windows. I'm using a Linux tool to do it.
<UltimateCodeWarr>
I got an I9, works fairly well, was just wondering if I shot myself in the foot for not getting NVidia GPU.
<J24k71>
.. came to my mind after writing - if there is not render time included
<J24k71>
probably big change when switching to manifold
<InPhase>
J24k71: I just always launch openscad with one of my vim-paired scripts, so inside of it I always launch openscad with log_scad_mem, which is the second script in that paste. That script just uses /usr/bin/time to launch it, and it grabs the "Maximum resident set size" output after the program closes, and logs that.
<InPhase>
J24k71: This is a course measurement. Technically the maximum resident set size will vary a bit based on what you do in the gui, and could go up to different values based on edits you make to the file (or customizer settings) while it's open.
<InPhase>
s/course/coarse/
<InPhase>
J24k71: But, it's the free way to measure this under real-world usage. :)
<InPhase>
I'd endorse someone doing automated testing as well.
<InPhase>
For me, I saw an opportunity to track memory consumption under organic natural usage, and thought that could have its own value.
<InPhase>
For example, it might be interesting to take all those values, and histogram them.
<InPhase>
I run OpenSCAD with more RAM than most people, so I could make a histogram of my RAM requirements for all the things I run when doing things naturally, as I just go about my business, and have at least one measurement of the distribution of what sort of RAM requirements natural OpenSCAD usage has.
<InPhase>
That is, for anyone whose natural usage matches mine. :)
<J24k71>
i think it is safe to assume that your usage is quite uniqe
<InPhase>
It's true that the last few entries in my usage log are some special snowflakes.
califax has quit [Remote host closed the connection]
snaked has quit [Remote host closed the connection]
snaked has joined #openscad
<InPhase>
J24k58: I added a few extra words of explanation and two more echo's for the early bits.
<InPhase>
J24k58: Big picture pedagogically, it's hitting a difficult topic. I think probably the hardest part to grasp in it is going to be the intrinsically hardest part of polyhedron, which is the faces. Although I'm getting sleepy and am not entirely sure what a good way is to improve the explanation of the way that the faces are matched up to the points.
<InPhase>
J24k58: But perhaps a little more text could be added explaining more carefully the mental process you go through to construct those for loops. As-is, I bet the majority of readers will view them as magic, which will make it hard for them to make their own loops like that.
<InPhase>
J24k58: There is an underlying mental process you use of looking at the arrangements of points, finding the patterns of the right indices, and turning that into a loop over indices to make a whole set of faces. And that thing, is the thing that should be somehow written out. If they are guided through an example of that, then they might be able to do the same.
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<othx>
J24k58 linked to YouTube video "what the hell were you thinking?! || edge of tomorrow || edward maya & vika jigulina - stereo love" => 1 IRC mentions
yogadude has quit [Ping timeout: 276 seconds]
yogadude has joined #openscad
J24k58 has quit [Quit: Client closed]
J24k58 has joined #openscad
TheCoffeMaker has quit [Ping timeout: 245 seconds]
TheCoffeMaker has joined #openscad
J24k58 has quit [Quit: Client closed]
J24k58 has joined #openscad
mmu_man has joined #openscad
Guest0101 has quit [Quit: Konversation terminated!]
mtm has quit [Ping timeout: 248 seconds]
mtm has joined #openscad
snaked has quit [Remote host closed the connection]
<pca006132>
(this is a simple cylinder with a small detent, for fixed angle rotation)
<InPhase>
pca006132: Does color support fully work in render now with manifold? I've kind of been waiting on this to start exploring that area myself.
<InPhase>
pca006132: Because the most interesting aspect of compliant mechanisms to me with 3D printing is the capacity to potentially print flexible and rigid materials in an interlaced manner.
<InPhase>
I just haven't sorted out carefully really how to do it, given that this is a volumetric question and we give ourselves surface descriptions.
<pca006132>
not sure, I rarely use color, and from what I know it doesn't have special support for volumetric coloring
<InPhase>
I feel like this is one of the big outstanding problems in 3D modeling design.
<InPhase>
Yeah. I'm not really expecting manifold to suddenly do volumes.
<InPhase>
But at least being able to propagate color to rendered results would be like a step 1 to being able to think about this from a modeling perspective with existing approaches.
<pca006132>
I'm thinking if it would be better to do volume with csg tree instead of mesh properties
<pca006132>
i.e. handle each material individually
<InPhase>
Long term I do think it needs a fully volumetric approach. In fact the thing that keeps rattling in my head for it is straight sdf to slicer.
<InPhase>
But I thought I might start with multi-color openscad rendering and get a multi-filament printer to explore it. Then expand outward from there.
<InPhase>
Although there's nothing about the OpenSCAD language that is incompatible with this. It would just require some sort of way of handling the boolean operations on two different color objects that preserves the colors of components.
<InPhase>
It's just that this is a weird notion given the way we also require overlap, meaning the outcome is always poorly defined. :)
<pca006132>
true
<pca006132>
and a fully volumetric approach probably requires refactoring the geometry evaluator thing... can be a bit painful
<InPhase>
SDF has a slightly better grasp on the notion of making that properly defined, either in terms of gradients or thresholds, where a > b is your switching point.
<pca006132>
SDF is great if it is a proper SDF, but most of the time it is not...
* InPhase
nods.
<InPhase>
Actually for multi-color though, you wouldn't always want an SDF to be properly defined. :)
<pca006132>
for manifold, we plan to improve sdf support and hopefully to make our sdf code more useful
mmu_man has quit [Ping timeout: 252 seconds]
<InPhase>
Because the "leaky abstraction" bits away from the surface would inform about the proper material selection inside of a volume.
<InPhase>
Which would make for a bit more nuance in how you define functions for certain objects. But it offers precisely the flexibility one needs to have this sort of control.
<pca006132>
hmmm, I guess I need an example to understand this
<pca006132>
for preserving volumetric color in csg though, I think avoid combining parts with different color is the simplest way to fix the issue... and we don't really care about union with overlap this way
<pca006132>
at the end of the day you want to export multiple objects to the slicer to print as multiple material
<pca006132>
so this is quite natural
<pca006132>
and just define the semantics for difference and intersection, e.g. use the color of the first operand
J24k58 has quit [Quit: Client closed]
J24k58 has joined #openscad
<pca006132>
manifold can probably support this better, but will need to think about how to do this properly...
<pca006132>
without breaking the API
<InPhase>
pca006132: Yeah, preferencing the first operand is the simplest path for all three boolean operations.
<InPhase>
pca006132: One can then choose ordering for union accordingly, and get some control.
student has quit [Quit: WeeChat 3.8]
l__k has joined #openscad
l__k is now known as student
J24k58 has quit [Quit: Client closed]
J24k58 has joined #openscad
othx has quit [Read error: Connection reset by peer]
othx has joined #openscad
othx has joined #openscad
othx has quit [Changing host]
califax has quit [Ping timeout: 264 seconds]
califax has joined #openscad
aiyion has quit [Ping timeout: 264 seconds]
aiyion has joined #openscad
mmu_man has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 264 seconds]
teepee_ is now known as teepee
mmu_man has quit [Ping timeout: 265 seconds]
mmu_man has joined #openscad
<teepee>
InPhase: by accident lazy union + 3mf = multi-color-printing
<teepee>
the actual color of the object is totally irrelevant in that case
J24k58 has quit [Quit: Client closed]
J24k58 has joined #openscad
foul_owl has quit [Quit: WeeChat 3.8]
foul_owl has joined #openscad
mmu_man has quit [Ping timeout: 244 seconds]
yogadude` has joined #openscad
yogadude has quit [Ping timeout: 252 seconds]
mmu_man has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
<teepee>
InPhase: just run the comment formatter I've used for the earlier parts too
<InPhase>
Hmm?
<InPhase>
Are you talking about the tutorials?
<teepee>
missing "I" at the beginning :)
<teepee>
I did in vi :'<,'>!fmt -p "// "
<teepee>
and yes, tutorial, cool one in multiple meanings :D
<InPhase>
I'm not entirely sure what the logic is behind fmt, but I guess the results are pretty.
<InPhase>
Some lines appear to be reformatted to keep the right side less staggered, rather than to match a line length target.
<InPhase>
And in one case, a sentence is brought down to start on the next line, even though the first word will fit on the last line just fine without staggering. But that sentence is one to emphasize, so I guess it's wise to bring it down anyway.
<InPhase>
So it seems to be some complicated logic or something, but works okay.
<teepee>
yeah, it sometimes produces a bit strane results
<teepee>
*strange
<InPhase>
Pushed for tutorial 13.
<teepee>
oh, you did too. sorry I missed typing the I in the first message :-)
<InPhase>
"cool one in multiple meanings" made me think you were not talking about the tutorial originally. So I was still confused about what you were saying. ;)
* teepee
cannot type well lying on the back holding the notebook with 3 fingers, typing with 6 ;-)
<InPhase>
Use the tongue.
<InPhase>
To hold the notebook of course. That frees up your fingers.
Guest71 has quit [Client Quit]
<InPhase>
Guest71 is like "I need to get out of here."
<teepee>
aha, indeed, both fmt runs agree 100%
<InPhase>
Well, good. :)
<teepee>
synced to fileserver, so we are ready for opening door 18 in 15 minutes
<teepee>
yeah, crazy talk about tongues... where am I, imagine that in real life
* teepee
eyes the index file...
<teepee>
one tutorial and 2 "normal" doors empty
<teepee>
should be doable
<teepee>
well, the interesting one is 24 of course, so far we always had a very impressive one
<teepee>
maybe kintel would have some fun idea?
<InPhase>
I might have free space to think about 24 later if no one else scoops it up. First is finishing ordering Christmas presents before it's too late.
<InPhase>
I had a wild idea, but it might take 3 hours.
<InPhase>
Like total, not like I'm going to do it in 3 hours. Almost certainly not working on any such thing today.
<teepee>
I was thinking on taking the last tutorial with some sort of multi part object showing some assembly stuff
<InPhase>
Cool. I was feeling out of tutorial ideas.
<InPhase>
You two filled in good stuff while I was distracted for a stretch.
<InPhase>
But I was happy I got attention back in time to do the snowflakes.
<InPhase>
I was also pretty pleased with how pretty and varied the snowflakes got with such minimalism.
<InPhase>
I kind of had it like that in my head, but you never quite know how something like that will evaluate out. :)