ay how many valid permutations exist.
But allow me to guesstimate a number for 20 components (no more, no less). Here are my starting assumptions:
Let's say the average input and output parameter count of any component is 2. So we have 20 components, each with 2 inputs and 2 outputs.
There are roughly 35 types of parameter, so the odds of connecting two parameters at random that have the same type are roughly 3%. However there are many conversions defined and often you want a parameter of type A to seed a parameter of type B. So let's say that 10% of random connections are in fact valid. (This assumption ignores the obvious fact that certain parameters (number, point, vector) are far more common than others, so the odds of connecting identical types are actually much higher than 3%)
Now even when data can be shared between two parameters, that doesn't mean that hooking them up will result in a valid operation (let's ignore for the time being that the far majority of combinations that are valid are also bullshit). So let's say that even when we manage to pick two parameters that can communicate, the odds of us ending up with a valid component combo are still only 1 in 2.
We will limit ourselves to only single connections between parameters. At no point will a single parameter seed more than one recipient and at no point will any parameter have more than one source. We do allow for parameters which do not share or receive data.
So let's start by creating the total number of permutations that are possible simply by positioning all 20 components from left to right. This is important because we're not allowed to make wires go from right to left. The left most component can be any one of 20. So we have 20 possible permutations for the first one. Then for each of those we have 19 options to fill the second-left-most slot. 20×19×18×17×...×3×2×1 = 20! ~2.5×1018.
We can now start drawing wires from the output of component #1 to the inputs of any of the other components. We can choose to share no outputs, output #1, output #2 or both with any of the downstream components (19 of them, with two inputs each). That's 2×(19×2) + (19×2)×(19×2-1) ~ 1500 possible connections we can make for the outputs of the first component. The second component is very similar, but it only has 18 possible targets and some of the inputs will already have been used. So now we have 2×(18×2-1) + (18×2-1)×(18×2-1) ~1300. If we very roughly (not to mention very incorrectly, but I'm too tired to do the math properly) extrapolate to the other 18 components where the number of possible connections decreases in a similar fashion thoughout, we end up with a total number of 1500×1300×1140×1007×891×789×697×...×83×51×24×1 which is roughly 6.5×1050. However note that only 10% of these wires connect compatible parameters and only 50% of those will connect compatible components. So the number of valid connections we can make is roughly 3×1049.
All we have to do now is multiply the total number of valid connection per permutation with the total number of possible permutations; 20! × 3×1049 which comes to 7×1067 or 72 unvigintillion as Wolfram|Alpha tells me.
Impressive as these numbers sound, remember that by far the most of these permutations result in utter nonsense. Nonsense that produces a result, but not a meaningful one.
EDIT: This computation is way off, see this response for an improved estimate.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 12:06pm on March 15, 2013
ariations, but each seems to lack the sophistication to generate a ‘zip’ that retains its general shape over the whole curve.
Basically I’m trying to understand the process behind this: http://www.schindlersalmeron.com/index.php?option=com_content&task=view&id=27&Itemid=29
Here is an image of the latest definition.
1. I draw a curve in Rhino, and then define it in grasshopper. I also define the point as the beginning of the curve.
2. I offset the curve to a specified depth, based on structural member
3. I generate a line from the point at a tangent to the curve, then rotate it a
defined angle.
4. I find the intersection between the rotated line and the offset curve. Then generate a tangential line from this new point
5. Line is rotated at the same angle as before.
6. Process repeated.
The idea is to then generate a circle of defined diameter at each of the intersection points, then find the intersection of the circles with the curves, which are then joined up with straight lines to create the ‘zip’. This would mean a lot of copy-pasting and list management that I’m not really capable of with my limited grasshopper experience.
I had tried generating points at intervals along the curve and then eventually generating lines from one line to another with a shifted listed to form the tooth angle, but it wouldn’t retain its shape over the entirety of the curve.
Does anyone have any advice for how to tighten up this definition? I imagine that I will need to delve into vb.net scripting to address the recursive nature of the process.
I fear that I’m going about this in entirely the wrong way...
Of course the next step is to flatten out the curve for CNC manufacture.
Any help would be greatly appreciated! The potential for using grasshopper in design is amazing, and I would love to gain a deeper understanding of it!…
te some cut sheets, but not to optmize material, rather define some cut lines. Everything that I am cutting is made of planar wood elements, but there are very specific geometries (mostly straight lines) and I have to put tolerances and radiasas at the corners in order to cut on the cnc mill. Spending time to figure out how to automate is necessary, but I am stuck!
One thing the definition is doing is taking my brep modeled components in rhino and makking them into 2d close curves and laying them side by side. It works...not ideal as its not layed out in a sheet, but that is not the most important part.
Another particular problem is that you will see some notches in the curves, which other pieces will slip into, so different slots need different specific offsets (making them larger) as a toelrance to allow for material play. This I don't even know how to set up so maybe it will just have to wait.
THE MAIN QUESTION, and super important would be, LIFESAVER:
At all 'inward' corners...which I think will always mean concave corners (most are 90 degrees, but are within to sides, instead of a corner sticking out). I'm sure its obviousy, but the reason being the outward corners a circular dril bit can cut, but inward ones need an arc profile extended beyond where the corner of the other piece will fit into. The drill bit i am using is 6mm, so 6mm diamters arcs is what i'm working with.
I have managed to put such an arc at every vertices of each cut piece. The problem being some stick outward isntead of cutting into the piece. So each one needs to be orieneted correctly. Ideally they would also only draw into inward corners, but I can always delete them out. I think maybe I am missing a more logical mathematical way of defining?
For these geometries it is not very important which side the half circle arc in on in the inward corners, but I also have some geometries that I will have to control where the circles face according to the rest of the cut piece.
The cutouts in the middle of the pieces that are curves do not need such corners obviously.
The picture is an example drawn
I hope this isn't too specific and long. in general though automating fabrication, and controling pracitcal math and orientation problems like this is itnersting to me!
THANKS…
rk for Rhino, this is a first go at a very simple tool to get an idea of how fast different computers are at performing the sort of calculations used in Kangaroo, with the aim of informing those buying or upgrading their machines.
If you could take a couple of minutes to download and run this definition (after closing other running applications), then post here the result and your PC specs, hopefully we can start building a basic picture of what effect different hardware really has on the speed Kangaroo runs.
Most of the information can be found in the System page of Control Panel.
RAM speed can be checked in your BIOS, or with a tool like CPU-Z (note that the reported frequency from this should be doubled to get the actual RAM speed rating - eg if the frequency is 800MHz you should write DDR3-1600. It's confusing I know - see some discussion of this here), or by searching online for the specs of your PC model number.
This definition is purely testing the speed of the internal physics calculation, not display, so graphics-cards are irrelevant.
For now this is just to get a single general measure of overall Kangaroo speed, but it might also be interesting later to run a variety of tests to see how the speed varies with the size and complexity of simulation.
Of course a way of benchmarking general Grasshopper performance would be very nice to have as well, but would involve a lot more variables, and I'd be interested if anyone has ideas about how that could work.
Note - I posted a couple of versions of this earlier with various errors that were causing incorrect results. If you downloaded the earlier KangaMark01.gh or KangaMark02.gh file, please disregard that and any results from it and use the one posted here below:…
this common installation problem please find a tested remedy shared by one of the group members:
Comment by Iman Sheikhansari on August 26, 2019 at 8:33amDelete Comment
HiIf you are encountering a problem with rhino 6 versions don't worryFollow these steps.1. Download SYNTACTIC from https://sites.google.com/site/pirouznourian/syntactic-design2. Install it and go to the installation folder, Drag & drop SYNTACTIC(green one) over your grasshopper canvas.3. Close your rhino and reopen it. 4. Type GrasshopperDeveloperSettings5. Tick the Memory load *.GHA assemblies using COFF byte arrays option6. Run grasshopper and enjoy plugin
I hope this helps,
Best regards,
Pirouz
…
next level.
This Parametric Design course will provide the participants with the necessary knowledge and ability to use Grasshopper, a free visual programming plugin in Rhinoceros; you will be guided through a series of hands-on exercises that highlight NURBS modeling and its concepts. We will introduce Grasshopper as a graphical algorithm editor tightly integrated with Rhino’s 3D modeling tools. You will also learn how Rhino is used to render models for visualization, translate 3D models for prototyping, and export 3D models into 2D CAD or graphics programs.
English is the course main language.
Location: Düsseldorf city center
Registration and buying Tickets
www.digitalparametrics.eventbrite.de
Course Calendar:
4 Days 6 hours each
Total duration 24h
2 weekends
Date:
Sat. 17 - Sun. 18 June
Sat. 24 - Sun. 25 June
10:00 - 17:00
Getting Started in Rhino. 2 days (17 - 18 June)
Getting Started in Grasshopper. 2 days (24 - 25 June)
-----------------------------------------------------------------------
Participants will be given a certificate of participation at the end of the course.
-----------------------------------------------------------------------
Course fees:
Professionals: 600€ (excl. MwSt.) Students: 500€ (excl. MwSt.) Students need to provide: Copy of current student ID or proof of student enrollment at University/School.
Group discounts:
Group of 3 professionals: 3x500 = 1500€ (excl. MwSt.)
Group of 3 Students: 3x400 = 1200€ (excl. MwSt.)
Participants are kindly asked to bring their own laptops and have pre-installed Rhino + Grasshopper.
Useful Resources:
Rhinoceros Installation (90 days full version trial available): http://www.rhino3d.com/download
Rhinoceros for Mac (includes Grasshopper) http://www.rhino3d.com/download/rhino-for-mac/5/wip
Grasshopper Free Installation: http://www.grasshopper3d.com/page/download-1
Grasshopper Free Plugins: http://www.food4rhino.com/app/lunchbox http://www.giuliopiacentino.com/weaverbird
Main Tutor:
Rihan
M.A. Dipl.Ing. Architect
Architect at RKW Architektur + Düsseldorf
For any questions about the course, please email: info@immersive-studio.com…
ll geometry.
The difference with programs like Inventor is that they are made for production, regardless of the fabrication method. I won't go into detail about that, and instead focus on the modeling process.
In this little model, the starting point actually is a bit obvious, the foundation.
The only contents in the 3dm file are 27 lines. These indicate the location of each footing, and the direction of the tilt of each column. Everything else is defined in GH with the use of numbers as input parameters.
Needless to say, instead of those lines you could obviously generate lines and control the number of columns and panels, hence establish their layout, with any algorithmic or non-algorithmic criteria you please. That marks a major difference between GH and Inventor.
You can generate geometry with Inventor via scripting/customization (beyond iLogic), with transient graphics for visual feedback similar to GH's red-default previews. However Inventor's modeling functions are not set to input and output data trees. I won't go into detail on that, but suffice to say that the data tree associativity of GH was for me the first major difference I noticed. I've used other apps with node diagram interfaces like digital fusion for non-linear video editing since the late 90's, so the canvas did not call my attention when I first started using GH.
Anyways, here's a screen capture of the foundational lines:
In the first group of components, the centerlines of the rear columns are modeled:
And the locations in elevation for connection points are set. Those elevations were just numbers I copied from Excel, but you can obviously control that any way you please. I was just trying to model this quickly.
The same was done for the rear columns:
The above, believe it or not, took me the first 5 hours to get.
Here's a screen capture of what the model and definition looked like after 4 hours, not much:
If you're interested, next post I can get into the sketching part you mentioned, which is a bit cumbersome with GH, but not really.
I wouldn't say that using GH to do this little model was cumbersome, it just needed some thinking at the beginning. You do similar initial thinking when working with a feature-based modeler.…
Added by Santiago Diaz at 12:44am on February 24, 2011
ugh information (whether coming from environmental analysis or any kind of database), extracting and managing informations for construction processes all require an understanding of data structures in order to build seamless design-to-construction pipelines. Through visual scripting in Grasshopper (Generative modeling plug-in for Rhinoceros) participants will learn how to build and develop parametric data structures (from basic simple lists to complex data trees), data-driven geometry and envelopes and how to extract relevant informations from such models for construction processes. Participants will also develop a personal envelope project and its full design-to-construction pipeline. [.]TopicsTheory: - Lecture: “Data Obsession” – computational designer as a new professional profile and the role of information and complexity in contemporary architectureTechnique: - Software interface - Components - Lists & Data Tree: management, manipulation, visualization - Geometry generation from data stream - Base exercises (Box morph, Image sampler, Floor sections, Attractor field, Multisection Pipe, Paneling) - Advanced exercise: Data-reactive component – data-reactive tessellation on NURBS surface. Data coming from environmental analysis or spreadsheet table - Advanced exercise: Data extraction from previous tessellation, visualization and storage in spreadsheets. - Advanced exercise: geometry optimization for construction[.]Software & skills:Basic modeling skills in Rhino are required. Participants should bring their own laptop with pre-installed software (software download links will be given after subscription).[.]Tutors:Alessio Erioli + Andrea Graziano – Co-de-iT (GH & design tutors).[.]Venue:The workshop venue will be:Polycollege WienJohannagasse 21050 Wienhttp://www.vhs.at/johannagasse.html[.]Calendar & Timetable:The workshop will have the following timetable throughout all the 4 days: 9:00-13:00 lesson+tutoring 14:00-17:00 lesson+tutoring[.]Subscription fees:For participants who register before 30/08/2012 we offer a EARLY BIRD feesE.B. – educational* : € 320 + VAT E.B. – professional: € 390 + VATafter 30/08/2012 will be in place the STANDARD fees:STANDARD fees – educational* : € 390 + VAT STANDARD fees – professional: € 490 + VAT* students, teachers, researchers & PhD (proof of status required).The deadline for registration is 06/09/2012; The workshop has a maximum of 30 places available and will be activated with a minimum number of 15 partecipants.[.]Application:To register please fill this FORM and send it via e-mail to:3ddreaming@gmail.com or ck@kkkc.at[.] Organized by:This workshop is organized by Co-de-iT in collaboration with:3d-dreaming.com – Architecture from a digital point of viewKKKC – Mediaware trading GmbH…
imilar topic with a Windows 10 user, which successfully fixed this issue.If you are tiny little patient, I think we can try the same steps in your Windows 7 case.For start, try these three steps:1) Close Rhino. Restart your PC. 2) Once the PC boots up, double click on the "regMapWinGIS.cmd" file in "MapWinGIS" installation folder.3) When it closes the Command Prompt window it opened, try running Rhino, Grasshopper and drop the "Gismo Gismo" component on the canvas (Grasshopper working area).If this does not help (you get the same COM class factory CLSID error message coming out from the "Gismo Gismo" component), then try the following steps, one by one:
1) Close Grasshopper and Rhino2) Run the Revo Uninstaller Pro and uninstall your MapWinGIS application along with removing all the leftovers from the registry. You can download 30 days trial version of it from here. Here is a youtube example of a bit older Revo Uninstaller. But the important part is that is shows how registry leftovers are removed.3) Restart your PC, and once it boots again, make sure that you are logged in as an Adminstrator!4) In your Start menu's search box type: "UAC", which will find your User Account Control Settings. Click on it, and a new window will open. Set the bar on the left to "Never notify".5) Turn off your Antivirus, which ever it is.6) Download the 64 bit version of v4.9.4.2 MapWinGIS.7) Right click on downloaded MapWinGIS-only-v4.9.4.2-x64.exe file, and choose "Properties". If there is "Unblock" button click on it, and then click on "OK". If there is no "Unblock" button, just click on "OK".8) Left double click on MapWinGIS-only-v4.9.4.2-x64.exe file and install it to "C:\dev\MapWinGIS" folder. Choose "Full installation" during installation process!9) In your Start menu's search box type: "CMD". Once the "Command prompt" appears do not left click on it! Instead right click on it, and choose "Run as Administrator".10) A command prompt window will open. Type the following command:
"your_regsvr32_folder_path\regsvr32.exe" /u /s c:\dev\mapwingis\mapwingis.ocx
If command does not result in an error message, then type this one afterwards:
"your_regsvr32_folder_path\regsvr32.exe" /s c:\dev\mapwingis\mapwingis.ocx
11) If no error appeared again, then open your Rhino and Grasshopper and check what "Gismo Gismo" component prints from its "readMe!" output.If errors appeared, please post their screenshots. Thank you in advance.
Please accept my apologies for the large number of steps. Some of them are quite simple actually (click on this, download that...).…
Added by djordje to Gismo at 12:58pm on November 28, 2017