4 ms·
PicoGK is a compact and robust geometry kernel for computational engineering
- itishappy 3y agoThis looks incredibly interesting, and their designs are certainly eye catching. In C# too! Main site: https://github.com/leap71 https://github.com/leap71 Gallery: https://leap71.com/gallery/ https://leap71.com/gallery/ Heat Exchange (example): https://github.com/leap71/LEAP71_HelixHeatX https://github.com/leap71/LEAP71_HelixHeatX Rover Wheel (example): https://github.com/leap71/LEAP71_RoverWheel https://github.com/leap71/LEAP71_RoverWheel
- WillAdams 3y agoTo get started see: https://github.com/leap71/PicoGK/tree/main/Documentation https://github.com/leap71/PicoGK/tree/main/Documentation All the designs look to be 3D printed --- is there no consideration of "Design for Manufacturing" and using a CNC mill or router?
- zengid 3y agoReally cool to see some neat stuff in C#. Somewhat of a tangent, but what does "kernel" mean in this sense? I'm aware of Operating System kernels, but am not sure what it means here.
- WillAdams 3y ago"Geometry" kernel --- so a small piece of code which does geometric calculations. There are a couple of other opensource kernels: https://github.com/elalish/manifold https://github.com/elalish/manifold https://opencsg.org/ https://opencsg.org/ as well as commercial ones such as: https://en.wikipedia.org/wiki/Parasolid https://en.wikipedia.org/wiki/Parasolid which is used in: https://www.plasticity.xyz/ https://www.plasticity.xyz/
- gcr 3y agoThese are not small pieces of code by any means :) Professional kernels used by the likes of Autocad and Siemens have fourth to fifty years of development and hundreds of thousands of engineering hours. It’s not as simple as taking a mesh of 3D points and calling it a day. Typical kernels can add chamfers, fillets, spins, and constraints to all kinds of form representations based on mathematical descriptions of the target shapes. Getting that working reliably is super difficult!
- WillAdams 3y agoSmall in a relative sense compared to some larger codebase. Here's a bit on Manifold: https://github.com/elalish/manifold/wiki/Manifold-Library https://github.com/elalish/manifold/wiki/Manifold-Library and the author's blog is interesting: https://elalish.blogspot.com/search/label/Manifold https://elalish.blogspot.com/search/label/Manifold
- deleted 3y ago[deleted]
- neonsunset 3y agoA couple of question: - It seems the library is not published on nuget.org? (e.g. there isn't a single .csproj in the repo for contributors to jump into the project) Is there a specific reason to this? - PicoGKRuntime is written in C++ rather than in C#. Was the performance a consideration for this or some other type of requirement?
- nullstyle 3y agoIn the README there is a section title "On the shoulders of giants" that probably points to the main reason for C++. This project is a layer overtop https://www.openvdb.org/ https://www.openvdb.org/
- yakz 3y agoSimilar concept to libfive maybe? https://libfive.com/ https://libfive.com/
- naasking 3y agoLooks interesting, but the API could definitely use some refinement if that examples are anything to go by. An OpenSCAD-like eDSL should be possible. I'm kind of leaning towards something like ImplicitCAD as the future though...
- WillAdams 3y agoWhile I certainly appreciate the virtues of a Domain Specific Language, and that OpenSCAD has been wildly successful because of its limitations, the limitations are downright infuriating at times. An interesting potential alternative (which hopefully won't result in a fork) is adding Python: https://pythonscad.org/ https://pythonscad.org/ which I've had some success with: https://github.com/WillAdams/gcodepreview https://github.com/WillAdams/gcodepreview ImplicitCAD is interesting --- and the (new?) ability to open files from GitHub is _amazing_ (OpenSCAD recently gained that same facility, _and_ it supports the customizer: https://seasick.github.io/openscad-web-gui/?https://raw.githubusercontent.com/WillAdams/Design_Into_3D/master/openscadwebgui/Impossible_Dovetail_Box.scad https://seasick.github.io/openscad-web-gui/?https://raw.gith... ), but it's a heavy lift given the need to work out how to edit files, preview them, and so forth.
- naasking 3y agoIndeed, which is why I suggested an eDSL rather than a full-blown DSL. C# is decent at embedding domain-specific languages (fluent APIs are simple eDSLs and are fairly common). You can see the need even from their simple examples: https://github.com/leap71/PicoGK/blob/main/Examples/Ex_BooleanShowCase.cs#L56 https://github.com/leap71/PicoGK/blob/main/Examples/Ex_Boole... I just noticed that they also support defining objects via implicit functions, so that's neat: https://github.com/leap71/PicoGK/blob/main/Examples/Ex_ImplicitsExample.cs https://github.com/leap71/PicoGK/blob/main/Examples/Ex_Impli...
- naasking 3y agoAlmost forgot, there's also full control gcode: https://fullcontrolgcode.com/ https://fullcontrolgcode.com/