teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | 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
RoyK has quit [Ping timeout: 260 seconds]
RoyK has joined #openscad
snaked has joined #openscad
LordOfBikes has quit [Ping timeout: 260 seconds]
kintel has joined #openscad
<gbruno> [github] kintel pushed 1 modifications (Fix existing indexing bug) https://github.com/openscad/openscad/commit/85b2f85587d4b1659232c20a2766ad40f9f8a8dd
<gbruno> [github] kintel synchronize pull request #4866 (PolySetBuilder refactoring) https://github.com/openscad/openscad/pull/4866
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
LordOfBikes has joined #openscad
<gbruno> [github] kintel pushed 2 modifications (include io/import.h) https://github.com/openscad/openscad/commit/2cd41f8dfd641ec57cab8884a32854d665e4261e
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel edited pull request #4866 (PolySetBuilder refactoring) https://github.com/openscad/openscad/pull/4866
<gbruno> [github] kintel closed pull request #4866 (PolySetBuilder refactoring) https://github.com/openscad/openscad/pull/4866
<gbruno> [github] kintel pushed 20 modifications (PolySetBuilder refactoring (#4866) * Make -DENABLE_CGAL=0 work again * Fix existing indexing bug) https://github.com/openscad/openscad/commit/31b56c73d09c39124beed6ee09da1f829b6025cc
<gbruno> [github] kintel pushed 13 modifications (fix copy()) https://github.com/openscad/openscad/commit/875975b8d25cfb73881da1d3b4212183160cbfed
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
J23k82 has joined #openscad
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
J23k28 has quit [Ping timeout: 250 seconds]
mmu_man has quit [Ping timeout: 246 seconds]
<gbruno> [github] pca006132 edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
<gbruno> [github] pca006132 edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
little_blossom has quit [Ping timeout: 256 seconds]
<gbruno> [github] kintel pushed 20 modifications 1 removals (Killed a bunch more new usage) https://github.com/openscad/openscad/commit/8a3f4a71a5f489ce15bc4f370248f2c01df88c10
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel pushed 20 modifications 1 removals (Killed a bunch more new usage) https://github.com/openscad/openscad/commit/12a2422a13e895eb28401ea00c4d90821cf34593
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel ready_for_review pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
juri_ has quit [Ping timeout: 260 seconds]
juri_ has joined #openscad
pca006132 has joined #openscad
<pca006132> will review the smart pointer PR
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] kintel pushed 3 modifications (Minor cleanup) https://github.com/openscad/openscad/commit/7f59658d3233239f9329995f51ed1e00c5cb7af7
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<kintel> pca006132 thx - I'm sure this has opened up for making code more elegant in general, but I didn't take it very far - mostly focused on making Geometry pointers smarter
<pca006132> btw updated the unity build PR, want to see if it can make CI faster and speed up our workflow
<kintel> Memory usage may be the main limiting factor on the CI though
<kintel> Anyway, bedtime..
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<pca006132> linux build is 10mins faster on github ci, macos one is 5mins faster (macos one is dominated by homebrew install time, maybe we can cache that)
<pca006132> windows build somehow failed, will investigate
J23k19 has joined #openscad
J23k82 has quit [Ping timeout: 250 seconds]
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
Guest1 has joined #openscad
Guest1 has quit [Client Quit]
<gbruno> [github] pca006132 closed pull request #4643 (More precise & up to 2-5x faster STL output) https://github.com/openscad/openscad/pull/4643
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<pca006132> homebrew is really really slow comparing to package managers on linux...
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
<gbruno> [github] pca006132 synchronize pull request #4768 (add unity build support) https://github.com/openscad/openscad/pull/4768
little_blossom has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 240 seconds]
teepee_ is now known as teepee
mmu_man has joined #openscad
kintel has joined #openscad
lostapathy has quit [Ping timeout: 246 seconds]
<kintel> Not sure why homebrew is slow - it should generally install binary packages. Perhaps just not optimized/limited CDN etc
<kintel> pca006132 Thanks for the review! As you can see, we forward-declare a lot of stuff for old compile-time optimization reasons. I don't know how much of that is needed any longer
<kintel> It was mostly a way to battle CGAL'
<kintel> ..CGAL's insane use of templates
<pca006132> yeah I was not aware of that
<pca006132> indeed, CGAL is really slow to compile...
<kintel> Also, const correctness was largely retrofitted into some new code, so it's a good reminder to always second guess every interface we use
<pca006132> unity build can also improve this because those specialization will happen less
<pca006132> ok
<kintel> const is especially tricky if you look at GeometryEvaluator::ResultObject
<pca006132> not sure how CGAL does it, but for manifold we only expose an immutable interface to users to make things simpler
<kintel> ..which is another suboptimal approach to avoiding inserting too many single-use object into the cache
<kintel> oh, another candidate for PolySet/Geometry refactoring: Allow decoupling the transformation from the geometry and only resolve concrete geometry lazily. Not too clear if it's worth it though..
<pca006132> btw, as we already have PolySet as indexed mesh, should we now remove the IndexedMesh.cc?
<pca006132> from our experience in manifold, it is worth it
<kintel> We could kill IndexedMesh I think
<kintel> perhaps even ExportMesh?
<pca006132> but if the plan is to mostly use manifold, I think doing optimization for the CGAL stuff is kind of a waste of time
<pca006132> yeah, I think ExportMesh is only used because of the predictable output thing
<pca006132> it has some logic to sort the vertices and faces
<kintel> yeah, but those could be free functions on PolySet
<pca006132> yes
<kintel> also, with a decoupled transformation, polyset geometry could be made immutable I think
<kintel> anyway, there's a fine balance between refactoring for cleanliness and refactoring to support actual new features, but happy to support such activities as long as people have the energy
<kintel> I like the zen aspects of refactoring :)
<pca006132> in my understanding, I treat polyset as some sort of glue between CGAL and manifold, and also a uniform interface for IO (so there is no dependency on CGAL and manifold for IO)
<kintel> ..and rendering bridge
<pca006132> ah yes
<pca006132> so I think it is rarely transformed, but idk
<kintel> rotate(45) cube()
<pca006132> ah, constructor makes PolySet as well
<pca006132> forgot about this
<kintel> not only transformed, but also modified in-place to avoid caching cube() separately
<kintel> We could discuss creating manifold objects directly, but that requires some more careful consideration
<pca006132> yeah, the constructors in manifold behave quite differently from the ones in openscad
<kintel> also, the renderer converts manifold objects to polyset to VBO
<kintel> ..we may be able to do manifold->VBO more efficiently
<pca006132> manifold provides a MeshGL object that is flattened, and can be used for rendering easily
<kintel> ah, nice. Something to think about post-VBO merge
<kintel> I wasn't referring to geometry constructors, just about building object directly as ManifoldGeometry
<pca006132> should be simple
<pca006132> the MeshGL type provided by manifold is quite similar to PolySet, except that it is flattened
<pca006132> we also have a Mesh object that is basically PolySet with additional fields, but we plan to deprecate it, so use MeshGL would be better
<pca006132> (there will be a small cost of converting MeshGL into Manifold, due to topology tests)
<pca006132> I put the ExportMesh to PolySet task into PolySet cleanup
<gbruno> [github] pca006132 edited issue #4851 (PolySet needs cleanup) https://github.com/openscad/openscad/issues/4851
pca006132 has quit [Remote host closed the connection]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
greenbigfrog has quit [Remote host closed the connection]
greenbigfrog has joined #openscad
fling has quit [Ping timeout: 240 seconds]
fling has joined #openscad
pca006132 has joined #openscad
snaked has quit [Remote host closed the connection]
<pca006132> I was thinking about the tessellation code, I don't think the current approach can preserve manifoldness...
<pca006132> I think a better approach would be to use a triangulator that is robust w.r.t. degenerates, and remove degenerates after converting it in a lossless manner to a triangular mesh
<pca006132> the degenerate removal should preserve topological correctness
<pca006132> (which is what we do in manifold after each boolean operation, because those operations tend to generate degenerate triangles)
<pca006132> As an example, consider the touching cube example (again...) but represented as polygonal (quads) mesh. We can represent it as a manifold but self-intersecting mesh, and this manifoldness will be broken if we pass it into the current tessellator.
lostapathy has joined #openscad
<pca006132> btw I found that when we convert Nef Polyhedron to PolySet, we already triangulate each faces... what is the point of supporting polygon in PolySet anyway? we can just convert our constructors into outputting triangles instead of quads (e.g. sphere)
<guso78k> pca006132 how can i fix this error with small_vector ?
<guso78k> small_vector does not appear to come from std::
<pca006132> yeah, you need to emplace_back a small vector and insert into it
<pca006132> I can find the example for you
<gbruno> [github] pca006132 opened issue #4870 (retire fastcsg?) https://github.com/openscad/openscad/issues/4870
<pca006132> btw, I propose to remove fastcsg... https://github.com/openscad/openscad/issues/4870
<pca006132> maybe should send an email to the mailing list as well, if someone relies on fastcsg and cannot switch to manifold
<guso78k> pca006132 found the issue. instead of std::vector<int> i should strictly use IndexedFace
<pca006132> yes, that also works
<pca006132> the idea of that small_vector is to avoid allocation when you only have 3 points
<pca006132> so it will not allocate many vectors when you have a triangular mesh
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
teepee has quit [Remote host closed the connection]
teepee has joined #openscad
erectus has quit [Remote host closed the connection]
erectus has joined #openscad
L29Ah has left #openscad [#openscad]
<InPhase> pca006132: A bold proposal, but that might be sensible. We have two major experimental systems to radically improve performance contributed by the same author, and Manifold appears to be the clear winner.
<InPhase> Simplifying the number of render paths before rollout in release form could be very advantageous for future maintenance, as long as this gives us no discernible losses.
<InPhase> Or, no significant ones.
<pca006132> and it will be helpful for the refactoring work we are doing right now
<pca006132> there are many files related to fastcsg
<teepee> if anyone depends on fast-csg as user, they are on their own. I have always tried to convey the message that "experimental-feature" means exactly that. you can't rely on it to be in any next version and/or rely on it staying unchanged
<teepee> that's why I've always opposed means giving users access to the feature information inside scripts making it even more likely people ignoring the warning
<pca006132> true
<pca006132> but anyway it would be very helpful if anyone can find cases in which manifold crashed but fastcsg/Nef works fine
<teepee> I had a case some time ago with an example from nophead on the mailing list
<teepee> which was surprising as it was not that unusual code, I think it was minkowski, so maybe fixed with the latest changes
<teepee> let me see if I can find that again
<teepee> IIRC it failed with both fast-csg and manifold producing empty output where it worked fine with NEF
<gbruno> [github] pca006132 closed issue #4695 (Add another Geomtry Type e.g. PolySetIndexed) https://github.com/openscad/openscad/issues/4695
<gbruno> [github] pca006132 closed issue #4860 (can spline curves be imported to OpenSCAD) https://github.com/openscad/openscad/issues/4860
mmu_man has quit [Ping timeout: 246 seconds]
<teepee> argh, where is it...
pca006132_ has joined #openscad
<pca006132_> anyway, just remember to open an issue if you can reproduce the issue with current master
<teepee> found it I think
<teepee> the repro is still quite large unfortunately
mmu_man has joined #openscad
<pca006132_> that is fine
<teepee> I'll grab the text from email, the forum view is not very useful
L29Ah has joined #openscad
erectus has quit [Remote host closed the connection]
erectus has joined #openscad
pca006132_ has quit [Quit: Client closed]
<gbruno> [github] t-paul opened issue #4871 (Minkowski issue with Manifold enabled) https://github.com/openscad/openscad/issues/4871
<gbruno> [github] cjmayo synchronize pull request #4862 (Fix application icon not shown on Wayland) https://github.com/openscad/openscad/pull/4862
<gbruno> [github] kintel pushed 89 modifications 1 removals (Removed memory.h, use std namespace) https://github.com/openscad/openscad/commit/0fe7c16943b35c3eee5c098f6cd0926bd7d7f815
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] t-paul closed issue #4836 (Add docker builds for the Preview releases) https://github.com/openscad/openscad/issues/4836
pca006132_ has joined #openscad
mmu_man has quit [Ping timeout: 256 seconds]
<pca006132_> I am thinking about going through the list of PRs and issues, and pick out the ones that are easy to deal with
<pca006132_> seems that there are a lot of small issues left there, or things that are not really an issue but are still open
<pca006132_> will do that when I have time
<teepee> I'm confused about that minkowski issue :)
<teepee> do you think it creates invalid geometry due to the $variable stuff?
pca006132_24 has joined #openscad
<pca006132_24> no, I was saying that to nophead
pca006132_ has quit [Quit: Client closed]
<pca006132_24> btw he is saying that he really needs the fix in #4834
pca006132_24 is now known as pca006132_
<gbruno> [github] pca006132 synchronize pull request #4834 (#3781 Proof of Concept) https://github.com/openscad/openscad/pull/4834
pca006132_ has quit [Client Quit]
mmu_man has joined #openscad
pca006132_ has joined #openscad
<pca006132_> the bug is not really due to minkowski, but due to manifold unable to handle objects that large/small
<pca006132_> and by large/small, I mean the magnitude of their coordinates, as this is a limitation in the representation and precision assumption
<pca006132_> we planned to enable double precision, but that takes some time, will cause slight performance degradation, and cannot solve the issue in general (will just accept a wider range of magnitude, but you can still get to the limit)
pca006132_ has quit [Client Quit]
L29Ah has quit [Ping timeout: 255 seconds]
<teepee> oh, interesting, I was not expecting that for "normal" models to be critical
kintel has joined #openscad
<gbruno> [github] kintel pushed 2 modifications (Resolved some review comments) https://github.com/openscad/openscad/commit/5a342201b20d888ba215701656e2ddd0a5623986
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<kintel> pca006132 In terms of polyset supporting polygons: In the past we wanted to allow exporting polygon, especially quads, but that may not be such a strong wish any longer
<kintel> ..and there were some use-cases related to rendering nice polygon outlines
<kintel> ..but with Manifold not preserving polygons anyway, we might end up tidying that up a bit
<kintel> ..or make TriangleSet and PolySet separate classes to help isolate those use-cases
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<gbruno> [github] kintel pushed 9 modifications (Return polyset in a few functions which previously accepted an output argument) https://github.com/openscad/openscad/commit/7d27b59d0062dc1f403d8543c97b0c2b6178558a
L29Ah has joined #openscad
<teepee> found some christmas ornaments as public domain https://www.printables.com/model/93356-christmas-decorations
L29Ah has quit [Ping timeout: 255 seconds]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
snaked has joined #openscad
zauberfisch has quit [Ping timeout: 268 seconds]
zauberfisch has joined #openscad
<gbruno> [github] glechapelain closed issue #4436 (Output curved surfaces) https://github.com/openscad/openscad/issues/4436
<J23k19> how is it possible that render looks different from preview? https://imgur.com/a/qpqxpyl
<teepee> maybe some mesh errors while processing? anything in the console after cache-clean?
<teepee> the partial spiral is strange though
<J23k19> no .. but if i remove one object i get "ERROR: Compilation aborted by exception: Vec out of range"
<J23k19> it is like the recursion is aborted earlier
<teepee> oh, if it runs out of stack when actually creating the mesh, that's possible I suppose
<teepee> I'm not sure about the low level details in that regard
<J23k19> this is also weird https://imgur.com/a/Bi1qUfE
<gbruno> [github] TomasHubelbauer opened issue #4872 (Consider implementing a digit separator symbol for better skimmability of large numbers) https://github.com/openscad/openscad/issues/4872
<germ> <3
<germ> Thank you for attending my issue on GitHub! (The curves..)
guso78k12 has joined #openscad
<guso78k12> pca006132 i like the approach to have a public interface where other files dont need to setup the include path to import Python.h
<teepee> J23k19: that "just" an exception handling bug, due to the exception you saw it forgot to remove the previous progress bar
<guso78k12> however it appears that in my branch PyObject needs to be known in LinearExtrudeNode.h
<J23k19> i am just rendering without manifold .. takes so much longer
<guso78k12> any easiy solution to that ?
<teepee> guso78k12: depends on the definition of easy I suppose. the default answer is probably "callbacks"
<teepee> e.g. have a dedicated interface that defines how to get the required data and can be called in the general code
<teepee> have implementation in the different handlers (scad and python here I assume) doing the special handling
<guso78k12> teepee thank you for the instant answer, callbacks was my "fallback solution" . was curious to learn if there a better way
<guso78k12> right now have used void *object instead of PyObject *object. maybe it works out
guso78k has quit [Quit: Client closed]
<gbruno> [github] gsohler synchronize pull request #4841 (Squashed commit of python_pr3) https://github.com/openscad/openscad/pull/4841
L29Ah has joined #openscad
<linext> anyone know the math formula for a tripple circle
<Scopeuk> linext I'm not sure of the shape you are asking for?
<Scopeuk> page not found
<Scopeuk> just found it on amazon
<guso78k12> there is a hidden hexagonal grid behind
guso78k20 has quit [Quit: Client closed]
<Scopeuk> I suspect it is likely some varient of https://en.wikipedia.org/wiki/Hypotrochoid
<Scopeuk> infact https://en.wikipedia.org/wiki/Epitrochoid, the example on the page looks to be nearly there
<J23k19> use 3 circles and ±offset
<J23k19> use<ub.scad>LinEx(5)Rund(2)Polar(3,5)circle(4);
<gbruno> [github] gsohler synchronize pull request #4841 (Squashed commit of python_pr3) https://github.com/openscad/openscad/pull/4841
<gbruno> [github] gsohler synchronize pull request #4841 (Squashed commit of python_pr3) https://github.com/openscad/openscad/pull/4841
<linext> is it possible to feed points into a polygon function() ?
<linext> i want to fill in the shape instead of using a circle
teepee has quit [Ping timeout: 240 seconds]
teepee has joined #openscad
<J23k19> linext you just create the points=[for(i=[0:359])[cos(i),sin(i)] ];  polygon(points);
<J23k19> teepee  so rendering finished complete.. the issue is manifold - seems to dislike the recursion
<teepee> hmm, ok. that is a bit odd as the recursion itself should not be that visible to manifold, but then I don't know all the code details
<J23k19> maybe the way children are handled .. however something stopped manifold
<J23k19> without it took 2h to render - Ü
<linext> what's going on the very end? https://ibb.co/ByKcn6P
<J23k19> that also happened with your circle .. i think you missed that the second radius rotation didn't finish a full rotation
<J23k19> you can use PI as constant
<J23k19> But you should not use PI  .. you need 3 for 3 lobes
<J23k19> so  a circle(1) will roll in a circle(3)  3×   .. you  used 3.14  which is why you have that mismatch  linext
<InPhase> OpenSCAD is in degrees also.
<InPhase> That entire (out_radius+in_radius)/in_radius should be swapped with 3. It's not at all a radius there, it's a repetition count.
* J23k19 was confused by that too
<InPhase> linext: If that 3-leaf-clover effect is what you want, then you probably want out_radius*cos(theta)-(out_radius-in_radius)*abs(cos((3/2)*theta))
<InPhase> Wait.
<linext> i've got something
<linext> it doesn't render into anything
<InPhase> (out_radius - (out_radius-in_radius)*abs(cos((3/2)*theta)))*cos(theta)
<linext> might need linear extrude
<InPhase> Oh, for rounded, (out_radius -(out_radius-in_radius)*(cos(3*theta)+1)/2)*cos(theta)
<gbruno> [github] t-paul pushed 1 modifications (Allow more files (up to 8) for src/bin tags.) https://github.com/openscad/openscad.github.com/commit/0ddb9009e2c8b7c4b527474e658c3c99aace3b29
<gbruno> [github] kintel pushed 7 modifications (Fixed some const issues) https://github.com/openscad/openscad/commit/9b854cbba23ee70d941f15181c40a0eaa180f274
<gbruno> [github] kintel synchronize pull request #4857 (Use more smart pointers) https://github.com/openscad/openscad/pull/4857
<InPhase> linext: I decided to play the game too. :) https://i.imgur.com/mLbPCBt.png https://bpa.st/WKOQ
<linext> InPhase, https://ibb.co/k0kwy5k
<linext> it's a quad planter
<linext> i'll have to try to print it
<linext> might look cool to spin the layers
_whitelogger has joined #openscad
<gbruno> [github] t-paul pushed 1 modifications (Slightly reduce the size of the info text.) https://github.com/openscad/openscad.github.com/commit/26a988e4e363678d2a9a930a9d2ebe7cb23ec80a
<gbruno> [github] t-paul pushed 1 modifications (Don't strip folder names given in JSON. Reduce font size of file entries.) https://github.com/openscad/openscad.github.com/commit/9e2ee1f3dd5de9d4f89af53e75658f17a5c0e622
<teepee> ok, ready, 3 minutes to spare :)
<teepee> well, the cron job might need some updates