Starling_0.2 mesh tools. These components enable mesh parametrization, so it behaves like a surface - you can evaluate points at any place etc.
In 0.2 release, Starling enabled quasi-polyhedral mesh tools. These new components are organized in a new panel called "Alchemists" :
How do they work ? You create polyline and each component converts it into polygonal mesh. Then it computes what it has to do. In the end component outputs polylines again, changed in some manner depending on components function.
Why truncation and dual ? Because with these two operations you can make most of mesh operations as described HERE. I.e. ambo (rectify) is truncation with amount of 1.
Special thanks to : Michael Pryor for constant help&support and David Rutten for great advices.
It's highly recommended to use Starling with Weaverbird and [uto] MeshEdit.
More examples explaining new components soon.
djordje
Looks interesting Mateusz. When can we expect some more examples of this tools?
Jul 2, 2012
Mateusz Zwierzycki
@Djordje - Today, I will post some at late afternoon.
Jul 2, 2012
wang
A good job !
Jul 2, 2012
Astro/Naught
BOOOOM! Ace.
Jul 2, 2012
fernando molas garcia
Congratulations and thank you for your contributions
Jul 2, 2012
Giulio Piacentino
Nice. Shouldn't the link be to http://en.wikipedia.org/wiki/Genus_%28mathematics%29 ?
Jul 2, 2012
Mateusz Zwierzycki
@Giulio - thanks, and youre right with link, will change it.
Jul 2, 2012
Astro/Naught
Oh man, my virus scan does not like me downloading Starling. Anyone else getting this issue?
Jul 2, 2012
Mateusz Zwierzycki
@Astro/Naught - dunno why, never heard about this kind of issues here. Scanned it with AV and nothing found, maybe check settings ?
Jul 2, 2012
Astro/Naught
Not sure what the issue was. Even if I excluded it from AV it still didn't like the look of it. It seems to be good now.
Jul 2, 2012
I_M_F [Iker Mugarra Flores]
Mateusz what a great tool!!!! is these the development of the discussion of Skeletal mesh? it is supper great....
Jul 2, 2012
Marios Tsiliakos
Nice one Mateusz> even better than the one I had imagined from a photo you posted some weeks back... TY.
Jul 2, 2012
Michael Pryor
:)
Jul 2, 2012
Mateusz Zwierzycki
@Marios T - Thanks !. Those images were made with rather rough vb sketch, there were multiple problems to solve after.
@Iker Mugarra Flores - Thanks !. Its not related with skeletal mesh at any point.
Jul 3, 2012
noel hernandez
is anybody else getting the object: pMCompose (level1) and (level2) exeption errors??? it actually also happened with the latest kangeroo update
Jul 31, 2012
Mateusz Zwierzycki
@noel - ok, bug found. Please, download again gha file and delete previous.
Jul 31, 2012
Philipp
maybe there is something wrong with me, but i have no this new window after I updated the plugin. everything looks tha same as it was before... rhino 4
Aug 1, 2012
Mateusz Zwierzycki
Philipp - Have you erased the earlier, 0.1 version ? Is there any loading error ?
Aug 1, 2012
Philipp
yeah, I forgot to erase the last version. now all is ok. hope to see examples of how all this staff works!
Aug 1, 2012
noel hernandez
thanks a lot Mateusz! the new update solved those errors
Aug 1, 2012
Zhang Bin
The work is so cool!
Aug 29, 2012
Narath Chhay
I can not install grasshoper cus my I have only rhino 4.0 and matrix 6.0 Any one can help me?
Aug 29, 2012
Mateusz Zwierzycki
@Narath - You mean SR6 (service release 6) ? If so, you can download current update (sr9) at http://download.rhino3d.com/Rhino/4.0/sr/download/
@Zhang Bin - Thank you.
Aug 29, 2012
Arie-Willem de Jongh
Hey Mateusz! Love the Starling plugin dude, really nice work! One question (actually a couple) which im really curious about, how does the pmTruncate component work? How Do you get the neighboring polylines of a polyline to generate the truncated triangles? And how do you determine the 'naked' polylines (the edge ones) You match overlapping points? Also it doesn't give you the truncated polylines when 4 or more polylines come together in a single point, which makes sense if you want to generate triangles only. I was trying something similar but i got kind of stuck and no time unfortunatley.
Again really nice stuff dude keep it up!
Sep 5, 2012
Mateusz Zwierzycki
Hi Arie-Willem,
I devoleped a custom class which uses polylines to create a mesh - so it takes each vertice, remove duplicates, put them in the list, then each polyline checks which point indices is it made of. After some operations like truncation, each face is back then recreated as polyline.
To get it to work I had to recreate some basic mesh properties to run with my custom class, like : neighbour faces/vertices, adjacent faces, naked status etc. Most properties are still missing, but I dont feel like I have to recreate them. For sure I will make some normal vector estimation properties and flipping function, but that will be discrete to make pmOffset work properly when polylines are not created in uniform direction.
I dont fully understand your question "it doesn't give you the truncated polylines when 4 or more polylines come together in a single point, which makes sense if you want to generate triangles only".
If there is some case which will cause truncation work differently, it may be :
1. New polyline is inserted only when it's "seed" vertice is clothed. I decided to make it this way, cause it seems to be unclear how new face should be created in this case.
2. If your geometry is some kind of non-manifold, it will also fail.
*naked vertice is naked if and only if number of faces created with it is not equal to vertices connected by edges to it. This simple formula seems to be the right one, when talking about surface meshes.
Sep 6, 2012
Arie-Willem de Jongh
Thanks for your explanation! Nevermind my comment it is actually not true I just checked that. I mean if your valence at a vertice is more than 3 (like 4 if you have a quad grid) you should get a diamond shape. Which is the case. The thing is i forgot to flatten (doh) the output of my rectangular component :) see image
Rhino doesnt support ngons so how do you translate a polyline with a vertice count >4? Or your using the logic of how meshes are build to get the result?
Thanks again!
Sep 6, 2012
Mateusz Zwierzycki
@Arie-Willem : That's true - Rhino doesnt care about ngons :D That's why I had to write a custom class to handle this type of geometry. To understand how its made, you need to know how mesh is build - Vertices are stored as list of 3d points, faces as lists of vertex indices. There are other types of meshes in CG - see http://en.wikipedia.org/wiki/Polygon_mesh .
In fact, I use rhino mesh only to copycat it's functionality which enables to do some neat stuff. I think it would be hard to remake starling polymesh tools with standard gh components.
So how do I go from polylines to polymesh : Loop through all polylines, check each it's vertice, add it to polymesh vertices list if and only if its a new one (preventing duplicates). Each polyline is technically list of points, so the trick is to replace points with mesh vertices indices and create for each polyline list of integers (indices).
Sep 7, 2012
Arie-Willem de Jongh
Thanks again for the clear explanation, its really clever to 'copycat' the way meshes are build up to achieve the desired effect but with polylines!
Im also messing around with rhino common + meshes to analyse more complex topologies to in the end get strips or other topologies with the goal for 'easy' assembly. More or less what Marc Forness (http://theverymany.com/) is doing. I have it working, but it is still buggy. Unfortunately I only have time in the weekends.
Looking forward to the updates of this and if you need some help let me know!
Cheers!
Sep 7, 2012
Mateusz Zwierzycki
Not knowing much about his work - for me it looks like patterns were obtained with cellular automata. Ive been experimenting with it earlier, and this is the effect. Other patterns may be also obtained with this approach, by changing CA settings. Some really useful patterns may be acquired using oscillating CA like paper-rock-scissors like this.
Sep 7, 2012
Arie-Willem de Jongh
The way i understood it and set up my script is: (mesh needs to be triangulated)
1) Select a seed vertice (or multiple) in your mesh
2) loop trough the connected faces of the seed vertice and get the list of connected vertices (cull out the seed and previous vertices)
3) Add those faces to a list (your stripe list)
4) randomly pick a new seed from the vertices and repeat from 2
in short thats the process and you already get pretty nice results more or less like:
http://theverymany.com/constructs/12_art-paris/
Of course Marc Forness uses more advance scripts but i believe the base is more or less like what i described above. I would love to take a peak into the scripts he uses :)
Sep 7, 2012
Christian Schmidts
Hello Mateusz,
i just found one thing: using the pmoffset component the mesh is offseted in different directions. I guess it has do something with the inner rotation of the polylines (clockwise/anti-clockwise)?
(dont know why but you have to click on the gif so see all the frames)
Sep 7, 2012
Mateusz Zwierzycki
Christian : Yes, thats not fully working for now, I will add uniform normals method in next release.
Arie-Willem : Yes, that might be the correct and more intuitive method, I just say that CA approach is suprisingly elegant one.
Sep 7, 2012
Ante Ljubas
hi there,
how would i approach aligning a mesh according to principal curvatures? any idea?
greetings :)
ante
Nov 22, 2012
phillip
Hi Mateusz,
I remember you were talking about including s.th. like an unfold component to starling. Is this still going to happen? Are there any news on that? Was this a dream?
Thanks, Phillip
Nov 30, 2012
Mateusz Zwierzycki
@ Ante : Well, I dont think its possible with starling, sorry...
@phillip : All new stuff is now under development, unfold too. There are some minor bugs with this script, please be patient ;)
Nov 30, 2012
Amir Pourmoghaddam
Hi Mateusz
Is the last version work whit rhino 5?
Dec 4, 2012
Mateusz Zwierzycki
@Amir : I really dont know. I dont have rhino 5, and Iam assuming that most of us wont upgrade soon. But Iam quite sure that is should work, even with some legacy stuff inside.
Dec 4, 2012
Vangel Kukov
Hi Mateusz,
First of all congrats on the great tools you've developed. Fantastic job. Your programming skills are amazing. I wish to reach your level of knowlidge one day. Can you describe the steps (book titles, tutorials) you followed to master VB couse I've found a lot of matirial that is hardly relevant to Grasshopper Application. Thanks!
I am using your weighted Laplacian smoothing component to find the laplacian of the mesh ("minimal surface"). The thing is I have other meshes attached to it that I need to follow the first mesh without affecting it. I tried to tweak the weights but it'sjust slowing the vertices not chainging the strenght with witch they effect each other. Can I do something about it? I was thinking to give it a try in kangaroo but with the amount of mesh faces I have it gets too heavy.
Thanks in advance!
Dec 19, 2012
Vangel Kukov
Here is the definition if someone wants to give it a try.
laplacian.gh
Dec 20, 2012
Mateusz Zwierzycki
@Vangel : I dont feel that I understand you clearly - you want naked vertices to stay in place ? If you give a 0 weight to a vertice, it should be stuck in place.
Dec 21, 2012
Vangel Kukov
The first mesh (structure) and the smaller meshes (windows) covering the openings share vertices. I need to smooth the first mesh and to pull the rest of the meshes with it by their common vertices so that they follow the smoothed geometry without affecting it.
Thanks.
Dec 21, 2012
h
Are there any help files, or additional examples - other than the ones labeled SiExample 1-5?
I'm not sure that I really understand the work flow - I haven't been able to get the remeshing to work, or the curve fitting.
I'm trying to work from the attached surface: Harrison%20BREP.3dm
Jul 14, 2013