Thanks. That shouldn’t be a problem (as a gha is really just a dll in disguise, and the assembly resolver in the script editor can see through this). Are the components not loading for you?
Cheers Daniel, I’m afraid not. I thought maybe you were shipping both a dll and a gha similar to Kangaroo2 (i.e. one with all the business logic and one with all the components). I’m getting the same error reported by @kiteboardshaper above:
I tried uninstalling, restarting, reinstalling, and restarting without any luck too. I’m a bit behind in service releases, maybe that’s the issue:
SystemInfo
Rhino 8 SR9 2024-7-8 (Rhino 8, 8.9.24190.17001, Git hash:master @ c9e437cfdf6e9fc57bba3cd084318a04f8b7e355)
License type: Commercial, build 2024-07-08
License details: Cloud Zoo
Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 32GB)
.NET 7.0.20
Computer platform: LAPTOP - Plugged in [100% battery remaining]
Hybrid graphics configuration.
Primary display: Intel(R) Iris(R) Xe Graphics (Intel) Memory: 128MB, Driver date: 2-21-2024 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA RTX 2000 Ada Generation Laptop GPU (NVidia) Memory: 8GB, Driver date: 6-26-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 536.45
> Integrated accelerated graphics device (shares primary device ports)
- Video pass-through to primary display device
OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)
Anti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High
Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 6-26-2023
Driver Version: 31.0.15.3645
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8188 MB
Rhino plugins that do not ship with Rhino
Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.9.24190.17001
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”
Edit: Changing the assembly reference to the full path with .gha extension appears to work, maybe:
Thanks - It’s good to know that specifying the full path explicitly does work at least.
I believe the automatic assembly location magic went into the script editor fairly recently, so updating your Rhino to SR10 may fix this.
Very interesting, congratulations. Is it possible to achieve hard edges using this form of modeling? After a brief test, I couldn’t make fine enough meshes out of SDFs that would translate to desirable NURBs polysurfaces. I tried some simple SDF → Quadremesh to SubD → NURBs route.
Hi @DanielPiker
I’m on SR10 so that does not sort out the path issue:
SystemInfo.txt (2.9 KB)
But can confirm that the full path after the #r now works for me, however the IsoMesh components show a type casting error:
OK - interesting result - I installed Isopod on my Mac Mini test machine and ZERO issues - everything works out of the box.
It’s a good question.
As I mentioned above the methods I developed for this are dual based, and one of my initial motivations for taking this direction is that dual methods extend more naturally to sharp feature preservation.
I am still working on this, and do hope to include a sharp feature meshing option in a future release. Here’s some current testing:
(Essentially primal methods such as the popular marching cubes find the crossings of the isosurface with the edges of the grid. When the true isosurface has sharp edges or corners inside a cell, this cuts them off. A dual method instead places vertices inside the volume of the cells, and if it makes use of the field Hermite data, it can in theory locate these vertices on sharp features.)
(figure from Dual Contouring of Hermite Data by Ju et al)
However, it’s a tricky problem as while it seems great in theory, there’s generally a trade-off between guarantees of preventing self-intersection or zero area faces and accurately capturing sharp features. I’ve found that most of the published techniques on this topic produce a few convincing images but gloss over these limitations in the techniques. I keep pushing though…
Also, for the case where you have some existing sharp/detailed mesh and you want to generate an infill structure, Isopod includes something to keep the original mesh with all its features as the outer boundary, combined into one mesh object with with the new infill. I’ll post a demo of this shortly.
That’s good to know it’s something platform specific, thanks. I hope I can figure out why it’s not working for you on Windows.
Here’s an infill example:
infill.gh (392.6 KB)
It lets you provide 2 meshes - one detailed one, and one coarser (eg created using ReduceMesh).
After producing the infill it replaces the outer mesh with the detailed one to keep sharp edges.
hi @DanielPiker
i suggest add( all example *. gh in zip package manager yak) thanks against
Just seen this! This is superb! Thank you Daniel!
PS I tried to open one of your infill.gh near here ^ , and Rhino asked me to install the missing plugin, installed, but it resulted in the same as:
manually unistalling and installing from package manager, as you said, solved it.
(Or maybe what was needed was a simple rhino restart…)
Thanks - I’ve added a note with the first files shared above to install it via the PackageManager command before trying the definitions.
Thank you! This is absolutely amazing! I really love the these beautiful shapes, especially the blue spiral-surface rippling from the red arc!
I’m keen to learn more about how to design with these implicit surface tools.
Can they be used to design organic shapes like this, for example?..
SwiftBox.3dm (201.5 KB)
When I look at the blended paraboloid example and the boolean example I wonder if I could create something similar.
I was not able to combine two SolidAngle fields.
I was trying to replicate this:
Daniel, there are fields from your components directly, but also fields from some pre-coded c# scripts… are those two different things? Two types of fields?
Thanks @Gears_Gears - that’s one of my favourites too, and wanting tools to explore these types of surfaces was a big part of my motivation when making this.
@martynjhogg - There are a few different approaches you can take to sculpting organic shapes like that with implicits. Which way is most suitable depends on what you want to control.
Smooth boolean combinations of primitives would be one.
Another would be using blending interpolating tangency/curvature at set points like the paraboloid example. I’ll try and come up with some more examples to show this.
@maje90 for solid angle fields you can input a list of polylines and it will find the solid angle for their combination. Is that what you mean?
I’ll post an example for the extrusion junction like that image shortly.
About the scripts vs components - see my reply to Martyn above.
That’s interesting.
What’s the advantage of compiled components?
For now i cannot answer your question, surely the ability to see, study and edit the code is awesome.
Only disadvantage, CTRL-ALT to find them back doesn’t work … and lack of descriptions maybe? but maybe that’s because your just released this…
(From the picture and from the name I automatically assumed it generated a literal cone field, like a origin + vector + solid angle, but that’s not the case…)
Using multiple polylines works, but you have to use the same angle for all of them, I were trying to set different angle for each polyline.
I don’t understand how is that angle used… x/2 starting from most fitting plane from the polyline?
IsoMesh1 in this case is stable if your box is fully positive, but it trims your shape if you go into negative coordinates space, and later totally fails.
Isopod IsoMesh1.gh (23.2 KB)
Here’s an example like the pipe junction one.
Blending with inverse distance weights takes a weighted combination of the fields, each weighted by 1/d^2 or 1/d^3 etc, where d is the distance to a given point or curve ‘site’.
Because this weight goes to infinity as d goes to zero, it means that exactly at the site we get exactly that field to the exclusion of the others, while between them we get a smooth blend.
extrusion_blend.gh (23.7 KB)
There are ways the fields could be tweaked here to control the shape in different ways, for instance I think it might be nice to bias the distance functions to the outside more, to avoid the shape pinching in.
I’ll write some more explaining what the solid angle of a curve is later.
For your file the problem goes away entirely if you just use IsoMesh2 instead.
This is the one I recommend to use in nearly all cases.
IsoMesh1 (the blue bug) is an earlier version, I kept it in because it has some nice properties for speed and triangle quality, but it has more limitations - one of which is that the bounding box selected must in positive xyz space, and start at the origin. In the future I hope to replace it with one which combines the best of both.
Awesome! Thank you Daniel!