Introducing TriRemesh - high quality triangular and hexagonal remeshing and shrink wrapping

Cast nicely too. TriRemesh will be a great addition in my toolbox now - thanks Daniel :slight_smile:



Very excited about this. I still use MeshMachine and SimpleRemesh quite a bit. Is there a mesh multi-pipe component coming as well, or is this an update of ExoWireframe?

Wow - That looks great @KeithR

@bachman - this is the new MultiPipe component, which is part of Grasshopper now (1,2,3)
To pipe the edges of an ngon mesh you can connect the Face Boundaries component to the Curves input like shown above.


Hmm, I don’t see it here in the latest 7.2 SRC… (7.2.21005.13001, 01/05/2021)


Hi Mitch,
I’m really sorry - I think I got confused about the cut-off for which changes were going into this SRC.
It looks like it is now in the v8 WIP that went out yesterday, but will not be in the official 7 release until the one next week (and which I believe should also be available to Eval users).

1 Like

I’ve tried it in the new WIP. I think it’s sick!!!



This feature will be available in 7.3 which will we will deliver an initial release candidate for next week. All users who want to play with this feature (eval or commercial) will need to switch to downloading release candidates as their preferred update or wait for approximately a month until 7.3 becomes the official service release.

Thanks, I will download and try it out in the WIP for now…

1 Like

This is super-exiting for the ability to quicky drape a mesh around any building etc. for quick and dirty 3D printing! Can’t wait to test that out in a project!


To manage expectations a bit-

The remeshing can only detect and preserve sharp edges if they already exist in the starting mesh.

It won’t sharpen jagged or rounded edges, and it won’t pull onto sharp edges when shrink wrapping (because then the sharp edges don’t exist in the starting mesh, only the target).


Starting point was a SubD with an open back side on the XY plane.

Offsets of both pegs are subtracted with SubD boolean.

Then TriRemesh. Works perfectly!

Quad Remesh with the intersection curves of the pegs and the initial SubD as guide curves works really nicely too.

Open backside looks good:


One other thing I didn’t mention yet -
When wrapping onto open meshes, small holes in the target should get covered smoothly, but for large openings, the wrapped mesh will generally have lower triangle quality on the ‘floating’ parts which are not in contact with the target.
The aim is to improve this in the future, but currently you might want to do a second remeshing pass after the first wrapping (or alternatively use FillMeshHoles on the input first to fix the holes in the target as much as possible before wrapping onto it).


HI Daniel.

Thank you very much for your mesh tools and this new tool.

I am trying this out today. I am trying to force a simple flat brep composed of multiple flat surfaces originally to mesh to defined points to ensure connectivity for FEA analysis. When i pass a list of points to the Features input I get the message that point cannot be converted to geometry class. See below. Any ideas? Also I have always struggled for a planar mesh to pick up required target vertex points on the mesh or edges of the mesh. Any tips?

Also; there appears to be a limit on the amount of features i can pass. (I have 600 line elements I want the mesh vertex to remesh to see below). Some line elements I want to pass are not previewing in some areas. These areas are where the mesh component is not remeshing so that the vertices pick up the end points of these lines, see below:

Hi @stephen_lewis,

The features input currently only takes curves which actually have the data type Curve. Casting your lines to curves should make it recognise them and their end points:
This was an oversight on my part - of course it is reasonable to expect the component to recognise lines as curves, and I’ll make sure it does work for lines (and isolated points) for the next release (or I can send a hotfix sooner).

Can you clarify what you mean here, and maybe upload an example?


One little tip for if you have a planar surface and you want to include some curve in the mesh as a feature- if you split the surface then rejoin it, the default Rhino mesh will make a mesh with vertices along that curve, so the curve can then be preserved in the remeshing:

and if you want to insert some isolated vertices as feature points into an existing mesh, here’s a little tool to help: (8.6 KB)

Potentially this behaviour could be incorporated into the TriRemesh component itself though - to allow users to input features where the input mesh does not already have an edge or vertex.


Thank you Daniel for quick response. Forcing casting of segment to curve does not help. See below. For one area of segments of a polyline it is still not meshing. I think this tweak can solve problems in future where i have a line element defined not line like curve. (Here i have a polyline, i explode that to segments which were already out put as line-like curves. As a check i did an explicit cast as you suggested). Still a problem

I believe using your terminology i always have issues getting mesh machine and this to work with isolated points on mesh edges and internal mesh points… When the surface/brep is not planar I don’t have so much issue.

I can’t debug a screenshot - can you post a file?


Daniel. If possible i would strongly vote for this feature of meshing to isolated points. I have to do this all the time when generating FEA meshes. If we can just add these points as a feature input and re-mesh to them it would be superb.

So, in your work around it looks like you re mesh the starting Geometry mesh based on user defined isolated points.(I didn’t know the mesh nearest point method!) Then create fictitious lines that have an end point on the new mesh/isolated points and then use these as features.


Of course, see attached, my rhino model session is in units of mm when using it (Don’t know if tolerances affect anything…) (93.3 KB)