Introduction to Grasshopper Videos by David Rutten.
Wondering how to get started with Grasshopper? Look no further. Spend an some time with the creator of Grasshopper, David Rutten, to learn the
r." I'm sorry to hear that, I take the interface and ease-of-use rather seriously so this sounds like a fundamental failure on my part. On the other hand, Grasshopper isn't supposed to be on a par with most other 3D programs. It is emphatically not meant for manual/direct modelling. If you would normally tackle a problem by drawing geometry by hand, Grasshopper is not (and should never be advertised as) a good alternative."What in other programs is a dialog box, is 8 or 10 components strung together in grasshopper. The wisdom for this I often hear among the grasshopper community is that this allows for parametric design."Grasshopper ships with about 1000 components (rounded to the nearest power of ten). I'm adding more all the time, either because new functionality has been exposed in the Rhino SDK or because a certain component makes a lot of sense to a lot of people. Adding pre-canned components that do the same as '8 or 10 components strung together' for the heck of it will balloon the total number of components everyone has to deal with. If you find yourself using the same 8 to 10 components together all the time, then please mention it on this forum. A lot of the currently existing components have been added because someone asked for it."[...] has a far cleaner and more intuitive interface. So does SolidWorks, Inventor, CATIA, NX, and a bunch of others."Again, GH was not designed to be an alternative to these sort of modellers. I don't like referring to GH as 'parameteric' as that term has been co-opted by relational modellers. I prefer to use 'algorithmic' instead. The idea behind parameteric seems to be that one models by hand, but every click exists within a context, and when the context changes the software figures out where to move the click to. The idea behind algorithmic is that you don't model by hand.This is not to say there is no value in the parametric approach. Obviously it is a winning strategy and many people love to use it. We have considered adding some features to GH that would make manual modelling less of a chore and we would still very much like to do so. However this is such a large chunk of work that we have to be very careful about investing the time. Before I start down this road I want to make sure that the choice I'm making is not 'lame-ass algorithmic modeller with some lame-ass parametrics tacked on' vs. 'kick-ass algorithmic modeller with no parametrics tacked on'.
Visual Programming.I'm not exactly sure I understand your grievance here, but I suspect I agree. The visual part is front and centre at the moment and it should remain there. However we need to improve upon it and at the same time give programmers more tools to achieve what they want.
Context sensitivity."There is no reason a program in 2014 should allow me to make decisions that will not work. For example, if a component input is in all cases incompatible with another component's output, I shouldn't be able to connect them."Unfortunately it's not as simple as that. Whether or not a conversion between two data types makes sense is often dependent on the actual values. If you plug a list of curves into a Line component, none of them may be convertible. Should I therefore not allow this connection to be made? What if there is a single curve that could be converted to a line? What if you want to make the connection now, but only later plan to add some convertible curves to the data? What you made the connection back when it was valid, but now it's no longer valid, wouldn't it be weird if there was a connection you couldn't make again?I've started work on GH2 and one of the first things I'm writing now is the new data-conversion logic. The goal this time around is to not just try and convert type A into type B, but include information about what sort of conversion was needed (straightforward, exotic, far-fetched. etc.) and information regarding why that type was assigned.You are right that under some conditions, we can be sure that a conversion will always fail. For example connecting a Boolean output with a Curve input. But even there my preferred solution is to tell people why that doesn't make sense rather than not allowing it in the first place.
Sliders."I think they should be optional."They are optional."The “N” should turn into the number if set."What if you assign more than one integer? I think I'd rather see a component with inputs 'N', 'P' and 'X' rather than '5', '8' and '35.7', but I concede that is a personal preference."But if I plug it into something that'll only accept a 1, a 2, or a 3, that slider should self set accordingly."Agreed.
Components."Give components a little “+” or a drawer on the bottom or something that by clicking, opens the component into something akin to a dialog box. This should give access to all of the variables in the component. I shouldn't have to r-click on each thing on a component to do all of the settings."I was thinking of just zooming in on a component would eventually provide easier ways to access settings and data."Could some of these items disappear if they are contextually inappropriate or gray out if they're unlikely?"It's almost impossible for me to know whether these things are 'unlikely' in any given situation. There are probably some cases where a suggestion along the lines of "Hey, this component is about to run 40,524 times. It seems like it would make sense to Graft the 'P' input." would be useful.
Integration."Why isn't it just live geometry?"This is an unfortunate side-effect of the way the Rhino SDK was designed. Pumping all my geometry through the Rhino document would severely impact performance and memory usage. It also complicates the matter to an almost impossible degree as any command and plugin running in Rhino now has access to 'my' geometry."Maybe add more Rhino functionality to GH. GH has no 3D offset."That's the plan moving forward. A lot of algorithms in Rhino (Make2D, FilletEdge, Shelling, BlendSrf, the list goes on) are not available as part of the public SDK. The Rhino development team is going to try and rectify this for Rhino6 and beyond. As soon as these functions become available I'll start adding them to GH (provided they make sense of course).On the whole I agree that integration needs a lot of work, and it's work that has to happen on both sides of the isle.
Documentation.Absolutely. Development for GH1 has slowed because I'm now working on GH2. We decided that GH1 is 'feature complete', basically to avoid feature creep. GH2 is a ground-up rewrite so it will take a long time until something is ready for testing. During this time, minor additions and of course bug fixes will be available for GH1, but on a much lower frequency.Documentation is woefully inadequate at present. The primer is being updated (and the new version looks great), but for GH2 we're planning a completely new help system. People have been hired to provide the content. With a bit of luck and a lot of work this will be one of the main selling points of GH2.
2D-ness."I know you'll disagree completely, but I'm sticking to this. How else could an omission like offsetsurf happen?"I don't fully disagree. A lot of geometry is either flat or happens inside surfaces. The reason there's no shelling (I'm assuming that's what you meant, there are two Offset Surface components in GH) is because (a) it's a very new feature in Rhino and doesn't work too well yet and (b) as a result of that isn't available to plugins.
Organisation.Agreed. We need to come up with better ways to organise, document, version, share and simplify GH files. GH1 UI is ok for small projects (<100 components) but can't handle more complexity.
Don't get me wrong, I appreciate the feedback, I really do, but I want to be honest and open about my own plans and where they might conflict with your wishes. Grasshopper is being used far beyond the boundaries of what we expected and it's clear that there are major shortcomings that must be addressed before too long. We didn't get it right with the first version, I don't expect we'll get it completely right with the second version but if we can improve upon the -say- five biggest drawbacks (performance, documentation, organisation, plugin management and no mac version) I'll be a happy puppy.
--
David Rutten
david@mcneel.com…
xes as well.
If you want to jump straight in, you can download the latest build from the Firefly website or from Food4Rhino project page. Or, if you'd rather learn more about all the new features, keep reading!
Improved Arduino Support The Firefly Firmata (Arduino Sketch) has gone through a massive overhaul - making it much more compact, efficient, and extensible. The sketch is now just over 230 lines of code (compared to more than 500 in the previous version). But more importantly, the firmata is now more extensible; making it easier to add support for new Arduino boards... Like what you ask? Well, support for the new Arduino Due platform for example. The Arduino Due is an advanced board and while it may look similar to the Arduino Mega... it's actually quite different under the hood. It features an ARM Cortex-M3 CPU which means its really fast. It also features 12-bit analog resolution for reading and writing (which is pretty awesome). As I said, the Due is a more advanced board and it does require some caution when getting started. You can find out more about the Due platform at the Arduino Due Getting Started page.
One of the biggest changes with the revision of the Firmata was that it required some structural changes with how the data is sent/received from Grasshopper. So, if you are planning on using the latest version of the Firmata, you'll need to also have the latest Firefly components installed as well. This shouldn't be an issue because the installer will place the new Firefly Firmata in your sketchbook folder and install the new components as well... but it's worth noting so you don't try to mix and match the versions.
Kinect Version 2 Support Earlier this summer, Microsoft released a new and improved version of its popular Kinect motion tracking sensor. The sensor includes better body, hand, and joint orientation, 1080p color video (1920x1080), depth video (512x424), and a new active infrared video (512x424). The sensor now has the capability to track up to 6 people at once (compared to only two people with the previous version).
This build of Firefly now comes with three new components to work with this new sensor. The Video Stream can access the color, depth, and infrared video streams at different resolutions. Simply right-click on the video component to choose the video feed and resolution. Note: You may need to update your graphics card in order to get the infrared video stream to work properly (at least I did before it began working properly). The Skeleton Tracker is similar to the previous version, but can now track up to 6 people. And the Mesh Reconstruction component will build a fully colored 3D mesh using the color and depth data from the sensor. I plan to add more components to this section soon, but I wanted to go ahead and release this so more people could use it! [EDIT: I would like to thank Panagiotis Michalatos for his collaboration in the development of the Kinect V2 tools].
New Computer Vision Tools This release also includes a number of new computer vision tools. One component to note is the Bitmap Tracer, which can be seen in action here. The Bitmap Tracer component spawns a number of randomly generated particles which trace the edges of a bitmap using the nearest contouring vector. Another pair of components is the Bitmap Decompose/Recompose which can either decompose or reconstruct a bitmap using a list of values for its constituent channels. These two can be used together to swap channels in an image (think chroma keying). There's also a Bitmap Threshold component which uses the average dithering algorithm to find the color quantization of an image. Lastly, I've updated the Leap Motion Finger Tracking component to work with the latest release of the Leap v2.2.1 software release. The component now has improved finger tracking including joint and bone position/orientation.
In addition to these new features, there's also a number of bug fixes too (check out the readme if your interested). As always, I welcome any and all feedback on this build. Your support really helps, so please let me know what you think!…
xes as well.
If you want to jump straight in, you can download the latest build from the Firefly website or from Food4Rhino project page. Or, if you'd rather learn more about all the new features, keep reading!
Improved Arduino Support The Firefly Firmata (Arduino Sketch) has gone through a massive overhaul - making it much more compact, efficient, and extensible. The sketch is now just over 230 lines of code (compared to more than 500 in the previous version). But more importantly, the firmata is now more extensible; making it easier to add support for new Arduino boards... Like what you ask? Well, support for the new Arduino Due platform for example. The Arduino Due is an advanced board and while it may look similar to the Arduino Mega... it's actually quite different under the hood. It features an ARM Cortex-M3 CPU which means its really fast. It also features 12-bit analog resolution for reading and writing (which is pretty awesome). As I said, the Due is a more advanced board and it does require some caution when getting started. You can find out more about the Due platform at the Arduino Due Getting Started page.
One of the biggest changes with the revision of the Firmata was that it required some structural changes with how the data is sent/received from Grasshopper. So, if you are planning on using the latest version of the Firmata, you'll need to also have the latest Firefly components installed as well. This shouldn't be an issue because the installer will place the new Firefly Firmata in your sketchbook folder and install the new components as well... but it's worth noting so you don't try to mix and match the versions.
Kinect Version 2 Support Earlier this summer, Microsoft released a new and improved version of its popular Kinect motion tracking sensor. The sensor includes better body, hand, and joint orientation, 1080p color video (1920x1080), depth video (512x424), and a new active infrared video (512x424). The sensor now has the capability to track up to 6 people at once (compared to only two people with the previous version).
This build of Firefly now comes with three new components to work with this new sensor. The Video Stream can access the color, depth, and infrared video streams at different resolutions. Simply right-click on the video component to choose the video feed and resolution. Note: You may need to update your graphics card in order to get the infrared video stream to work properly (at least I did before it began working properly). The Skeleton Tracker is similar to the previous version, but can now track up to 6 people. And the Mesh Reconstruction component will build a fully colored 3D mesh using the color and depth data from the sensor. I plan to add more components to this section soon, but I wanted to go ahead and release this so more people could use it! [EDIT: I would like to thank Panagiotis Michalatos for his collaboration in the development of the Kinect V2 tools].
New Computer Vision Tools This release also includes a number of new computer vision tools. One component to note is the Bitmap Tracer, which can be seen in action here. The Bitmap Tracer component spawns a number of randomly generated particles which trace the edges of a bitmap using the nearest contouring vector. Another pair of components is the Bitmap Decompose/Recompose which can either decompose or reconstruct a bitmap using a list of values for its constituent channels. These two can be used together to swap channels in an image (think chroma keying). There's also a Bitmap Threshold component which uses the average dithering algorithm to find the color quantization of an image. Lastly, I've updated the Leap Motion Finger Tracking component to work with the latest release of the Leap v2.2.1 software release. The component now has improved finger tracking including joint and bone position/orientation.
In addition to these new features, there's also a number of bug fixes too (check out the readme if your interested). As always, I welcome any and all feedback on this build. Your support really helps, so please let me know what you think!
…
k questions during the workshop but I will be using Ladybug example files which you can download from the Ladybug group page so you can follow along with the workshop. You can send me your questions later.
The workshop is a part of the Environmental Design Studio for the students of the Master in Environmental Building Design (MEBD) program at PennDesign.
Tentative outline:
Getting Started: (epw file, 3d charts, conditional statements)
Wind analysis: (windrose, conditional statement > potential for natural ventilation)
Sky + Radiation: (radiation rose, sky dome)
Sunpath + Shading design: (hourly data overlay, conditional statement)
Radiation, Sunlight hours analysis (roof design, optimum orientation)
In case we have time we will also cover one example about:
Parametric optimization
To watch the workshop please register below:
https://attendee.gotowebinar.com/register/7552068540507890433
After registering, you will receive a confirmation email containing information about joining the webinar. Thanks to Thornton Tomasetti for making streaming the workshop possible.
Mostapha
PS. Sorry for the short notice. Please feel free to forward this to anyone of interest. There will be a similar workshop next Sunday (April 6th) at the same time on Honeybee for daylighting simulation. I will send the registration link early next week. Stay tuned!…