califax has quit [Remote host closed the connection]
califax has joined #openscad
GNUmoon2 has quit [Remote host closed the connection]
GNUmoon2 has joined #openscad
LordOfBikes has quit [Ping timeout: 252 seconds]
LordOfBikes has joined #openscad
J1A8479 has joined #openscad
J1A84 has quit [Ping timeout: 252 seconds]
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 268 seconds]
teepee_ is now known as teepee
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
aiyion has quit [Remote host closed the connection]
aiyion has joined #openscad
Guest907 has joined #openscad
<InPhase>
We really should improve the performance of typos.
<InPhase>
I was testing my BBox on some real world examples. Worked fine except for the one that I ran on pointarras instead of pointarrays, which rather than 1 second of bounding box calculation for 163,172 points, it launched into 100% cpu for like 10 minutes before I killed it.
<InPhase>
And unfortunately, this happens a lot.
<InPhase>
Drop in some typo, you get undef, you propagate that undef through a bunch of involved calculations, and suddenly the runtime increases by more than a factor of 1000.
Guest907 has quit [Quit: Client closed]
<peepsalot>
InPhase: stop on first warning?
<peepsalot>
really instead of a checkbox I think we should just have a number entry "Allow up to __ warnings before halting."
<peepsalot>
the error log gets increasingly slow after thousands of entries
<peepsalot>
that was the biggest slowdown I observed anyways
<peepsalot>
i remember profiling that when I was working on Console optimizations
TheAssassin has quit [Remote host closed the connection]
TheAssassin has joined #openscad
<J1A8479>
afaik if calculating points you always get a list of all points that failed to calc (even with stop on first warning)
<InPhase>
peepsalot: Yeah, a numerical entry would probably do it.
<InPhase>
One is not enough for me. 100 would be plenty.
<InPhase>
I probably had closer to 2 million being generated in that model, which would never be useful for anyone.
<lf94>
is smooth union in openscad yet
CuffLimbs has joined #openscad
emanuele6 has quit [Ping timeout: 245 seconds]
ur5us has joined #openscad
ur5us has quit [Quit: Leaving]
fling has quit [Ping timeout: 268 seconds]
fling has joined #openscad
teepee has quit [Remote host closed the connection]
TheAssassin has quit [Remote host closed the connection]
califax has quit [Read error: Connection reset by peer]
GNUmoon2 has quit [Remote host closed the connection]
aiyion has quit [Read error: Connection reset by peer]
aiyion has joined #openscad
GNUmoon2 has joined #openscad
califax has joined #openscad
TheAssassin has joined #openscad
teepee has joined #openscad
CuffLimbs has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<peepsalot>
weird i thought i closed it when i marked as duplicate
<teepee>
github is acting strange a bit, I had to reload 3 times to actually comment
<joseph_>
teepee InPhase: Yesterday and today I've been focusing on investigating the failing tests. I'll let you know when I have produced some fixes or run into a substantial block that I need advice about. I have not been focusing much more on the WASM build issue yet because I didn't hear whether I'll be able to find the dummy class elsewhere in the codebase already, or if it requires special knowledge from a community member
<InPhase>
joseph_: Ok. Feel free to discuss intermediate bits of the work with more detail as well, so that you do not get stuck on confusing parts for long.
<InPhase>
joseph_: It's not guaranteed anyone will know the answer to a specific question, but the price of asking is smaller than the price of long confusion.
<teepee>
joseph_: looking at CMakeList.txt it's probably tied to the NULLGL define in code, which I can see in Render.cc for example
<teepee>
with the dummy stuff at the bottom of that file
<teepee>
from the error message I was guessing that class has a new method and this is not mentioned in that NULLGL case
<linext>
any recommendations for things to print on a resin printer?
<Scopeuk>
linext can't recommend specific models but anything small and high/ultra high detail is what they excel at, jewelry mock ups, figurines that sort of thing
<Friithian>
highly accurate model of a heart
<Friithian>
minis, as always
<linext>
i made the gear cube
peepsalot has quit [Quit: Connection reset by peep]
<J1A8479>
pa sure you just put the function into a translate() command to move your child or use multmatrix()
<pa>
J1A8479: well i actually meant to, for example, scale a child with such a function
<pa>
so that y wouldn't be scaled , say, 0.2, but proportionaly to x position of each point
<J1A8479>
a child(ren) is an object not a point .. you can use scale or multmatrix to independently scale xyz
<J1A8479>
you would use a loop to move (translate(p[i]) scale([i*.2+1.5, 1,1]) children(); you can also put a function into the scale that gets x of the point as input
<InPhase>
pa: You just need to embrace the matrix math.
<InPhase>
pa: Oops, that should have been $fn=24; module Foo() { multmatrix([[1,0,0,0],[0.2,1,0,0],[0,0,1,0]]) children(); } Foo() translate([2, 1, 0.5]) sphere(2);
<InPhase>
Can't count when writing that compactly.
<J1A8479>
hope i am not the bad influence that your code become unreadable like mine Ü
<InPhase>
pa: I had flushed out that multmatrix section of the manual with some info and examples a while ago, so I think it will give a good explanation of that. Although if you aren't familiar with matrix multiplication on a vector, looking up that might help.
<InPhase>
J1A8479: Hahah. Well I knew it was going to be a little long and wanted to one-line it for the paste. ;)
<linext>
2nd for 3d.design
<J1A8479>
can't belive that 3d.design doesn't exist .. probably *.design are one of these 100k domains ..
<J1A8479>
s/are/is
<InPhase>
3d.design is super memorable if you could get it. Can't beat that.
<J1A8479>
ah 2 letter .. need to be 3 .. http://ddd.design/ exist . .. and about 3 to 6 k per year
peepsalot has quit [Remote host closed the connection]
<linext>
i want to find an unused domain
peepsalot has joined #openscad
<InPhase>
3dp.design
<InPhase>
Oh, which is taken
<J1A8479>
p?
<J1A8479>
ah print
<J1A8479>
oh already tomorow .. Ü
<J1A8479>
hmm if i make an app that translate domain names into TOR adresses .. i can sell every domain name Ü
<linext>
.net or a .org seems applicable if users can allow their PCs to render other jobs
<JordanBrown>
I keep thinking that it should be possible to write a skew() function that is more directly comprehensible than multmatrix(), but I suspect that to be general it would need to take a 3x3 matrix input, at which point it's almost multmatrix().
<teepee>
isn't form3d the name of one of those first sla printers?
<teepee>
and company?
<J1A8479>
seems length to costs is anti exponential
<J1A8479>
c3d.design ..
<teepee>
ah, no formlabs and form 3 - close :)
<J1A8479>
JordanBrown i have skew in my lib .. as M(skewxz=1)
<JordanBrown>
I don't know what you mean by M(skewxz=1).
<JordanBrown>
I have at least one skew* function in my library, but I don't remember what its semantics are. I just know it wasn't a general solution.
<J1A8479>
M(skewxz=1)cube(); skews a cube along xz
<J1A8479>
you sure can also have skewzx
<JordanBrown>
It seems like having skewx(y,z), skewy(x, z), and skewz(x,y) would be more or less complete. All of them meaning "as you move in X, scale Y and Z", and so on.
<J1A8479>
the most cases will be Z axis skewed in X or Y .. for the rest you could rotate your object
<JordanBrown>
Well, sure, but that's like saying that you only need scale([x,1,1]), since you can always rotate your object into the right orientation.
<J1A8479>
you mean like rotate_extrude is always around Z ?
<JordanBrown>
Yeah, true, and linear_extrude is always into Z.
<J1A8479>
and you sure want to scale in 3D but you rarely skew in 2 or 3 dimensions
<JordanBrown>
Skewing in three dimensions hurts my head.
<J1A8479>
as said i have all 6 in one module, so you can combine them if wanted
<JordanBrown>
I haven't truly wrapped my head around what skewing deeply *means*, so I'm not sure I'm really covering all of it.
<J1A8479>
the problem is you need a 3D monitor as all this skewing lead to optical illusions
<JordanBrown>
Yes, I was noticing that simple skewed cubes didn't look right.
<J1A8479>
would be fun if like skew you could scale along a dimension like a sphere would become an egg
<J1A8479>
so having a transformation boundingBox that can also twist and bend
* J1A8479
going to sleep mode zzzzzzz
<JordanBrown>
Wearing my "not a mathematician" hat and using terms that I'm not 100% sure of the definition of, I think that's not an "affine" transformation and can't be achieved with a 4x4 matrix multiply.
<JordanBrown>
But yes, it would be nice if you could say
<JordanBrown>
newpoints = [ for (p = points) myfunction(p) ];
<JordanBrown>
and have it apply to geometry.
<JordanBrown>
Well, hmm. 4x4 can do perspective transforms, and I think that's related. But I don't think OpenSCAD does 4x4; I think it only does 3x4.
<InPhase>
J1A8479: Honestly I find "skewing" a fuzzy concept, but the matrix math is intuitive to me, so my mental mapping is "skewing is what happens when the number is there in the matrix". :)
<InPhase>
I'm not really sure where people would go and pick up an intuitive mental model of skewing without it involving these matrices.