<kintel>
pca006132 In terms of the the Next Release project, I like that PRs are "under review", but we should still make sure to leave the corresponding issue somewhere, to distinguish between a Blocker and a Wishlist item
<kintel>
..since "under review" can easily last well past the next release for certain topics
<gbruno>
[github] kintel pushed 9 modifications (Remove -direct and -prealloc features. These are now always enabled. The main reason for enabling them is that glBufferSubData() is quite slow on macOS, so we'll standardize on one common, fast, code path.) https://github.com/openscad/openscad/commit/6fd354cd55bc318032e5ca7db4eb7b3cb517c077
<kintel>
right, just no subtractions, intersections or any stuff that could slow down the renderer
fling has quit [Remote host closed the connection]
fling has joined #openscad
<pca006132_>
yes
<kintel>
I'm seeing the same symptom here
<pca006132_>
the weird thing is that VertexArray got created and deleted 10k times for 1 frame
<pca006132_>
I thought it is something for all vertex, instead of per vertex
<pca006132_>
and draw_triangle in the old renderer code got called only about 300 times for the same model
<pca006132_>
while create_vertex was called for 10k times
<kintel>
Yeah, that's what I thought too. Still trying to clean up some of that code as it's really hard to read
<pca006132_>
and I think the tracy patch may be useful to you, even though opengl profiling does not work on mac
<pca006132_>
I cannot get the opengl profiling work on my machine as well
<kintel>
CPU profiling is probably useful here.
<kintel>
I've been using apitrace to look at GL calls, which I think works everywhere
<JordanBrown>
J23k43 WRT that customizer issue... remember that the assignment was param="a". If you wanted numbers, it should be param=0 (or 1 or 5 or 27)
<JordanBrown>
guso78k who said that the diagnostic modifiers had to be unary operators? They could be ignore(...) or highlight(...) or background(...) or only(...) or appropriate namespace-modified variants.
<J23k95>
JordanBrown no if numbers are always converted to strings - you can't get a number all you get would be a string but if "1" give a string and 1 gave a number you can have both
<pca006132_>
btw do you think I should open a PR to push the tracy integration upstream?
<JordanBrown>
yeah, I suppose, but it seems unobvious and the use case for sometimes-a-numbers-sometimes-a-string seems pretty weak.
<JordanBrown>
but really the answer should be "whatever 2021.01 does, unless it's really stupid"
mmu_man has quit [Ping timeout: 264 seconds]
<JordanBrown>
https://bpa.st/Q5ZQ in 2021.01 follows the type of the variable, and behaves entirely sensibly.
<JordanBrown>
The only case it can't do is a value that is sometimes a string and sometimes a number, and that doesn't seem like a very useful case.
<kintel>
pca006132 it wouldn't hurt having the tracy tool available. At least having a PR allows us to let it soak for a bit
<JordanBrown>
guso78k or maybe obj.highlight() or obj.background() or obj.ignore() or obj.only()
<JordanBrown>
Given that Python has only three unary operators (not counting "not", which can't be used because it always returns boolean), and OpenSCAD has four diagnostic modifiers, something's got to give.
pca006132_ has quit [Quit: Client closed]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
misterfish has joined #openscad
misterfish has quit [Ping timeout: 276 seconds]
misterfish has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
misterfish has quit [Ping timeout: 264 seconds]
misterfish has joined #openscad
pca006132 has quit [Remote host closed the connection]
<pca006132>
I saw similar stuff before, but the shape varies
<pca006132>
I think they are advertised as helping the student to learn how the correct way of holding their pen
pca006132 has quit [Remote host closed the connection]
pca006132 has joined #openscad
mmu_man has quit [Ping timeout: 255 seconds]
mmu_man has joined #openscad
L29Ah has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
misterfish has quit [Ping timeout: 246 seconds]
ali1234 has joined #openscad
J23k95 has quit [Quit: Client closed]
J23k95 has joined #openscad
mmu_man has quit [Ping timeout: 256 seconds]
mmu_man has joined #openscad
L29Ah has quit [Read error: Connection reset by peer]
J23k95 has quit [Quit: Client closed]
J23k95 has joined #openscad
misterfish has joined #openscad
snaked has quit [Quit: Leaving]
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
mmu_man has quit [Ping timeout: 276 seconds]
hyperair has quit [Ping timeout: 256 seconds]
mmu_man has joined #openscad
Guest83 has joined #openscad
kintel has joined #openscad
<kintel>
pca006132 for the tracy stuff, I still have to install stacy separately, start a server etc., right? Would be awesome with a "HOW TO trace" section somewhere to get a trace going without reading the tracy docs (which also don't include a quick start guide..)
Guest83 has quit [Quit: Client closed]
mmu_man has quit [Ping timeout: 252 seconds]
<pca006132>
sure, will add that section
<pca006132>
I agree that tracy documentation is... not very good to be honest
hyperair has joined #openscad
<JordanBrown_>
InPhase, teepee I would think of the advent calendar as for decorative items, not functional ones.
<InPhase>
Historically we've had a bit of a mix, primarily decorative, but a few practical ones. Some that are both.
<InPhase>
Broader outreach and including more people also has its own value.
<InPhase>
I just wanted to make sure before we consider it that it was a culturally favorable item according to a local, and not some thing that would be mocked by people in the know. :) Best to check.
<teepee>
this years advent calender is a bit more themed "printable", but that's mostly because that's the designes we have :)
Guest47 has quit [Client Quit]
<JordanBrown_>
printable doesn't mean not decorative. Decorative *and* printable is great!
<teepee>
I don't have any objections to that :)
<teepee>
what's the initial question? that suggested thingy from reddit?
<JordanBrown_>
y
<J23k95>
if we over 24 entries we could start to select - Ü
mmu_man has joined #openscad
<teepee>
yep, as long as we have empty doors, I'd stick to ideally just restrict by license and being self-contained
<teepee>
there's one offer with BOSL2, which may be an option if needed, but it would be better to not have dependencies
mmu_man has quit [Ping timeout: 246 seconds]
<InPhase>
Yeah, best not to break the self-contained example criteria.
<InPhase>
That one I think is an important calendar entry virtue.
RoyK has quit [Ping timeout: 268 seconds]
<JordanBrown_>
Would something dependent on MCAD be considered self-contained?
<InPhase>
Let's say no.
<teepee>
if it's a small script with fitting license it might be possible to directly include
<JordanBrown_>
Of course, I posed the question because the answer isn't obvious.
<JordanBrown_>
While I find a certain ... purity ... in working only with the primitives, some might reasonably say that it's just masochistic and leads to programs that are far more complex than they "need" to be.
<JordanBrown_>
I'd say the dividing line should be "does it require you to download and install anything", and by that dividing line MCAD (or any future hypothetical bundled library) would be included.
RoyK has joined #openscad
<JordanBrown_>
Take almost anything that's curvy and not elliptical (so you can't derive it easily from a circle or sphere). Tends to be significant advanced math. That's a turn-off for many. It would be good to be able to say/show "see, there are tools that will let you easily make these beautiful curves".
<J23k95>
just put the math into a module and use it - this also allow to use the script as library
<InPhase>
JordanBrown_: In a few cases I embedded excerpts from library code, but I think it's only a good example if it fits the size scale after embedding.
mmu_man has joined #openscad
<JordanBrown_>
(Sorry, babysitting and investigating a bug too.)
<JordanBrown_>
If you include the math, then the reader says "oh, ugly math, scary".
<JordanBrown_>
If you include a hundred-line library module, the reader will see only that and not the one-line invocation, and will be scared.
<JordanBrown_>
You want the reader to look at the program and say "I could do that!".
<J23k95>
let's be honest - if anyone see scad code he either is able to work with it - or is already scared away
<J23k95>
or she
<J23k95>
and you can use some »»•••••«« so separate your module call from the modules which can be "hidden" below
<JordanBrown_>
First, remember that the discussion point is MCAD, which is bundled. So your comments would say "You don't need to understand the stuff below. It would be supplied by a library, and you would just say 'use <MCAD/whatever.scad>'. ". Right? So why include it at all? Why not just say 'use
<JordanBrown_>
r with how much can be done in a handful of lines; don't show them the guts that are not directly related to the task at hand.
<JordanBrown_>
<MCAD/whatever.scad>' in the first place? Impress the use
<J23k95>
IMHO the point of the calendar is to show what is under the hood.
<JordanBrown_>
Why?
<JordanBrown_>
We don't show them how union() works, do we?
<JordanBrown_>
I think we want to show the reader *what they could do*.
<JordanBrown_>
By all means show them the stuff that's about how to make this specific design. It's no good to say "include <snowflake.scad> / snowflake();". That doesn't tell them anything useful. But "include <MCAD/sweep.scad> / points=whatever / shape=whatever / sweep(points, shape);" tells them how to make
<JordanBrown_>
te.
<JordanBrown_>
that shape using tools that they don't have to wri
<J23k95>
You miss that using libraries may be easy for you but can be quite difficult to understand for someone without programming skills - having everything it the same file is less complex to grasp
<JordanBrown_>
Of course, MCAD is in lousy shape and few if any people use it. But that's a bug that should be fixed.
<J23k95>
it already start with the knowledge where the program is installed and where are the libraries used - how they get there and how to know how to use the modules from a library you can't see
<J23k95>
If you include a library you normally also open the library to see what variables need or can be set for that module you like to use
<JordanBrown_>
I only look at the source to libraries when the documentation fails.
<JordanBrown_>
If you want to describe the library function in comments, go for it. But if you don't describe it, and it's a complicated function, giving them the source won't help them understand it because the function is beyond them.
<JordanBrown_>
In fact, side note, one thing that I have to occasionally pound into junior programmers is that they *must not* look at the library source, because stuff that they discover there that isn't in the documentation isn't guaranteed to work in the next release.
<JordanBrown_>
OK, maybe not "must not", but "must be very careful, and connect it back to what the documentation says".
<J23k95>
wait you think the rookie scad user reading documentation? Or comments?
J23k65 has joined #openscad
J23k95 has quit [Ping timeout: 250 seconds]
<JordanBrown_>
Well, if the function is complicated (like, say, a sweep), they better either read documentation or comments, because reading the function isn't going to help them.
mmu_man has quit [Ping timeout: 264 seconds]
<JordanBrown_>
pca006132 Why does Manifold use single precision? My impression was that on modern systems there was no performance advantage to single precision because you do everything in hardware and the hardware is all double-precision.
fling has quit [Ping timeout: 240 seconds]
fling_ has joined #openscad
<pca006132>
this is some technical debt
<pca006132>
originally manifold is designed to allow CUDA acceleration
<pca006132>
and consumer GPUs can't really do double-precision due to vendor limitation
<pca006132>
they want people doing scientific computation stuff to buy their more expensive PRO versions
<pca006132>
we should move to double-precision, but so far no one really tried...
<pca006132>
probably not too hard, but things like the number of bits in the morton code needs to be changed
fling_ has quit [Ping timeout: 240 seconds]
<peeps[work]>
its possible that single precision is still a bit faster due to more localized data, more cpu cache hits etc
<pca006132>
yes, I think it has significant impact for manifold
<pca006132>
we are so fast that it becomes memory bandwidth limited
<pca006132>
at least in some of the functions
<pca006132>
but I think the performance difference should be acceptable
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
L29Ah has joined #openscad
fling has joined #openscad
snaked has joined #openscad
mmu_man has joined #openscad
kintel has joined #openscad
misterfish has joined #openscad
nils__ has joined #openscad
J23k65 has quit [Quit: Client closed]
J23k65 has joined #openscad
JordanBrown_ has quit [Quit: Always try to be modest, and be proud about it!]
JordanBrown has joined #openscad
L29Ah has quit [Ping timeout: 264 seconds]
nils__ has quit [Quit: Leaving]
ccox_ has joined #openscad
ccox has quit [Ping timeout: 245 seconds]
<lf94>
Does anyone know where the first mentions of union/intersect/difference came from in a CAD context?
<lf94>
I guess it's purely historical
<lf94>
from the development of geometry
J23k65 has quit [Quit: Client closed]
J23k65 has joined #openscad
L29Ah has joined #openscad
<JordanBrown>
and sets
misterfish has quit [Ping timeout: 256 seconds]
<JordanBrown>
Kind of surprisingly, I don't find anything in Wikipedia about the history of sets. I find something about an important 1800s set theory work, but that's on (roughly) infinite sets; one would think that finite sets would have been discussed first. Maybe sets have been known for so long that nobody
<JordanBrown>
o write math articles for Wikipedia aren't interested in history.
<JordanBrown>
knows when they were invented, or maybe people wh
snaked has quit [Quit: Leaving]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
greenbigfrog has quit [Ping timeout: 276 seconds]
mmu_man has quit [Ping timeout: 256 seconds]
greenbigfrog has joined #openscad
<teepee>
argh, payment providers really need a firm kick into the a**
<teepee>
daily
peeps[work] has quit [Quit: Leaving]
<InPhase>
JordanBrown: " Set theory, however, was founded by a single paper in 1874 by Georg Cantor: "On a Property of the Collection of All Real Algebraic Numbers". https://en.wikipedia.org/wiki/Set_theory
<InPhase>
It's a pretty important history, since it rapidly became the foundation of modern mathematics.
<InPhase>
I'm not convinced this is for the best. But it has yielded results.
<InPhase>
JordanBrown: As for MCAD mentioned above, I think that's a good example of how not to do OpenSCAD libraries, but we don't have a replacement system yet. It became a catch-all that because it was included people were reluctant to break the API of it, and I think that led to it being de facto deprecated long ago, even though we have not officially done so. But at some point we're going to come up with a
teepee_ has joined #openscad
<InPhase>
proper library system, and then MCAD as an include should probably be deprecated.
mmu_man has joined #openscad
teepee has quit [Ping timeout: 240 seconds]
teepee_ is now known as teepee
kintel has joined #openscad
<kintel>
teepee: Meh, Open Collective's virtual credit card agreement got cancelled by Stripe : (
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]