n common tasks like updating GH definitions, viewing images on the GH canvass, and augmenting existing study-types. Most of the improvements to Honeybee have been in the making for a while and are just getting into the spotlight with this release. Notably, a number of improvements have been made to support large-scale full building energy models, including fixes to memory issues with large models, better components for splitting building masses into zones, and the ability to store HBZones in external files. Additionally, the THERM workflows have gotten a boost and these simulations can now be run directly from the Grasshopper canvass.
As always you can download the new release from Food4Rhino. Make sure to remove the older version of Ladybug and Honeybee before you do so and update your scripts. So, without further adieu, here is the list of the new capabilities added with this release:
LADYBUG
Better Method for Updating Old Grasshopper Files - As many of you have come to realize, Ladybug + Honeybee is updated on a fairly regular basis, with a stable release roughly every 6 months and a github version that never ceases to improve itself on a weekly basis. For this reason, we realize that updating old Grasshopper definitions to use recent components is a challenge for many of us. While we’ve had some methods for this in the past, there were always hiccups, particularly when it came to components that had new inputs/outputs since the previous version. Accordingly, Mostapha has added a new “Ladybug_Update File” component that will automatically update any Grasshopper Definition to be synchronized with the version of Ladybug+Honeybee that is currently in your toolbar (aka. the components in your userobjects folder). If there is a component that has new inputs/outputs since the time you built the definition, it will be automatically circled in red in your GH definition and a newer version of the component will be automatically added right next to this component:
While you still have to do some manual connecting of inputs to the newer component in this case, it should be much faster than our older methods and will hopefully help your old definitions survive long into the future!
EPWmap Now includes OneBuilding Files - Mostapha has added a number of new features to the EPWmap web interface that the “Download Ladybug” component connects to. Among the improvements are a color wheel that quickly shows you how hot, cold, and comfortable a given climate is and, perhaps more importantly, there is now support for EPW files sourced from OneBuilding. With the addition of many more weather files, you should now be able to use Ladybug with ease for more locations across the planet. We should also note that the “Open EPW and STAT” component that downloads/unzips files from a URL now supports OneBuilding URLs.
New Image Viewer Component - Mingbo Peng has graced Ladybug with a fantastic new “Image Viewer” component that takes a given image file on one’s machine and displays it on the Grasshopper canvas. It also enables one to pull color data off of the image with ease by simply clicking on the pixel of the image one is interested in. This new component is useful for a wide variety of cases, including the viewing of screenshots after they have been taken with the “Ladybug_Capture View” or “Ladybug_Render View” components. However, many of you will likely recognize it as most immediately useful in workflows involving image-based Honeybee Daylight (Radiance) simulations. This is particularly true as Migbo has built-in the capability to read many image file types, including PNG, JPEG, GIF, TIFF and the High Dynamic Range (.HDR) image files that Radiance Outputs:
The following video gives a quick overview of the Image Viewer’s capabilities:
The new component can be found under the Ladybug_Extra tab and I think I speak for us all in saying thank you Mingbo for this great component!
New Sun Shades Calculator Released Under WIP - After over a year of software development and nearly a career's worth of geometric math development, a joint effort between Abraham Yezioro and Antonello Di Nunzio has produced a new sun shade design component that can be described as nothing short of “magical.” Based on a similar principle to the current “Ladybug_Shading Designer,” the new component takes an input of sun vectors and produces shade geometries that can block the vectors. However, in comparison to the shading designer, the range of shade options that are available in this new component is truly staggering, ranging from classic overhangs, louvers and fins to pergolas and custom shade surfaces. Perhaps more importantly, the calculation methods used by this new component are faster and more reliable. It can currently can be found under the WIP section of Ladybug and it will continue to evolve in new versions of Ladybug.
Renewable Component Now Support Sandia and CEC Photovoltaics Modules - Polishing off his many contributions to the “Renewables” section of Ladybug, Djordje Spasic has added support for a couple more ways of defining Photovoltaic modules for renewables estimation. Specifically, the Ladybug WIP section now includes components to import modules defined with the California Energy Commission (CEC) and Sandia Labs.
HONEYBEE
Support for OpenStudio 2.x - A few months ago, the National Renewable Energy Lab (NREL) released a stable version of OpenStudio version 2, which included a number of improvements in stability and available features. This stable release of Honeybee is built to work with the new version of OpenStudio and, in the coming months, Honeybee will be adding a few more capabilities to its OpenStudio workflows to support v2.x’s new capabilities. Most notable among these will be support for OpenStudio measures. Measures are short scripts written in Ruby using OpenStudio’s SDK to quickly edit and change OpenStudio models. They are fundamental to visions of OpenStudio as a flexible energy modeling interface and to Honeybee’s goals of being a collaborative interface between the architectural and engineering industries. Stay tuned for the next release for many of these new capabilities!
Critical Memory Issue Fixed for Large Energy Models - A number of you wonderful members of our community have been aware of computer memory issues with large Honeybee models for some time (examples: 1, 2, 3, 4). Namely, a model that is larger than 50 zones could quickly eat up 16 GBs of memory and change Honeybee from a fast-flying insect to something more reminiscent of a snail. We are happy to say that, after a much longer time than it should have taken us, we finally identified and fixed the issue. In this version of Honeybee, such large models can now be created using less than 2% of the memory and time previously. Thanks to all of you who made us aware of this and hopefully you will now reap the rewards of your struggle.
Split Building Mass Component Getting a Makeover - Many of you veteran Ladybug users will recognize Saeran Vasathakumar as one of the original contributors of Ladybug who added components for solar fans and envelopes years ago. Now he’s back with new components to split a building mass into zones that are truly revolutionary in their speed and methodology. Saeran has divided the new capabilities into two components (one for floor-by-floor subdivision and another for core-perimeter subdivision) and they both can be found under the WIP section of this release. In this WIP version, core-perimeter thermal zones can only be generated for all convex and very simple concave geometries. Most concave geometries and geometries with holes (or courtyards) in them will fail. However it can handle even very complex convex geometries with speed and ease. You can expect the component to start accommodating concave/courtyard geometries very soon.
Load / Dump HB Objects to File - Keeping in line with the support of large, full building energy models, this release includes full support for two components that can dump and load any HBObjects to a standalone file. All information about HBzones can go into this file including custom constructions, schedules, loads, natural ventilation, shading devices, etc. You can then send the resulting .HB file to someone else and they can load up the same exact zones in another definition. This also makes it possible to have one Grasshopper file for generating the zones and running the simulation and another GH definition to import results and color zones/surfaces with those results, make energy balance graphics, etc.
Write ViewFactorInfo to File - After many of you asked for it, the _viewFactorInfo that is output from the “Honeybee_View Factor” component can now be written out to an external file using the same Load / Dump HB Objects components cited above. For those of you who have worked with the comfort map workflows, you probably already know that calculating these view factors is one of the most time consuming portions of building a microclimate map. Having to re-run this calculation each time you want to open up the Grasshopper script is a nuisance and, thanks to this new capability, you should only have to run it once and then store your results in an external .HB file.
Transform Honeybee Components Modified for Large Model Creation - Many large buildings today are made up of copies of the same rooms repeated over and over again across multiple floors, or along a street, etc. Accordingly, one can imagine that the fastest way to create a full building energy model of such buildings is to simply move and copy the same zones several times. This is what a new set of edits to the Honeybee Transform components is aimed at supporting by allowing one to build a custom set of zones, translate them several times with a Honeybee_Transform component, then solve adjacencies on all zones to make a complete energy model.
Central Plants Available on HVAC Systems - While Honeybee has historically supported the assigning of separate HVAC systems to different groups of zones, each HVAC was always an entirely new system from the ground up. So a building with separate VAV systems for each floor would be modeled with a different chiller and boiler for each floor. While this can be the case sometimes, it is more common to have only one chiller and boiler per building but separate air systems for each floor. The new ‘centralPlant_’ options on the Honeybee coolingDetails and heatingDetails enable you to create this HVAC structure by making a single boiler and chiller for any HVAC systems that have this option toggled on. Furthermore, in the case of VRF systems, you can also centralize the ventilation system, using the grouping of zones around a given HVAC to assign which zone terminals are connected to a given heat pump.
More HVAC Templates Added - As the profession continues to push the industry standard towards lower-energy HVAC systems, Honeybee intends to keep up. In this release, we have included a few more templates for modeling advanced HVAC systems including Radiant Ceilings, Radiant Heated Floors + VAV Cooling, and Two Ground Source Heat Pump (GSHP) systems. Variable Refrigerant Flow (VRF) systems have also gotten a large boost as it is now possible to model these systems with more efficient water-source loops. The next release will include the ability to model central ground source systems that use hydronics for heating cooling delivery.
Run THERM Simulations Directly from Grasshopper - Anyone who has used the THERM workflow in the past likely realized that, while Honeybee can write the THERM file, you would still have to open model in THERM yourself and hit “simulate” to get results. Now that LBNL has started a transition to becoming more open, they have graciously allowed free access for everyone to run THERM from a command line. What this means for Honeybee is that you no longer need to open THERM at all in order to get results and you can now work entirely in Rhino/Grasshopper. This also opens up the possibility of long parametric runs with THERM models since you can now automatically run simulations and collect results as you animate sliders, use galapagos, etc. A special thanks is due to the LBNL team for exposing this feature, including Setphen Selkowitz, Christian Kohler, Charlie Curcija, Eleanor Lee, and Robin Mitchell.
All Options Exposed for THERM Boundary Conditions - To finish off the full implementation of THERM in Honeybee, a final component has been added called “Honeybee_Custom Radiant Environment.” This component completes the access to all boundary condition options that THERM offers, including separate radiant and air temperatures, different view factor models, and the specification of additional heat flux (which is typically used to account for solar radiation).
Improvements to Schedule-Generating Components - Many of you who have watched the Honeybee energy modeling video tutorials have likely gotten in the habit of using CSV schedules for everything. While this is definitely one valid way to work, it is not always the most efficient since simple schedules can be specified much more cleanly to EnergyPlus/OpenStudio and the use of CSVs can also make it difficult to share your energy models (since you have to send CSV files along with the schedules themselves). This release adds two new schedule components that should take care of a lot of cases where CSV schedules were unnecessary. The new “Constant Schedule” component allow you to quickly make a schedule that is set at a single value or a set of constantly repeating 24-hour values. The second component allows you to create “Seasonal Schedules” by connecting “week schedules” from the other schedule components along with analysis periods in which these seek schedules operate. Together, these will hopefully make our schedule-generating habit a bit better as a community.
Lastly, many of you may know Mingbo Peng as the current maintainer of the Design Explorer web interface and the Colibri components under TTToolbox. Both of these tools have been revolutionary in enabling “brute force” studies of design spaces (aka. Grasshopper scripts where one runs all combinations of a set of sliders). Now, Mingbo has graced Ladybug with the aforementioned image viewer component and it is with pride that we welcome Mingbo Peng to the development team!
As always let us know your comments and suggestions.Cheers!
The Ladybug Tools Development Team
…
and networking about the emerging practice of digital parametrics within the AEC community.The event will come in three parts, a Workshop (28th-31st March), a public Shop Talk (1 April), and a public Symposium andReception (2 April). These events follow the highly successful previous SG events in Barcelona 2010, San Francisco 2009, Munich 2008, New York 2007, Cambridge/London, UK 2006 and multiple preceding events.
Click here for more info...
The SmartGeometry 2011 Workshop will take place at CITA http://cita.karch.dk/This year's Challenge is entitled:BUILDING THE INVISIBLEInforming Digital Design with Real World Data
THE PREMISEVast streams of data offer a rich resource for designers. By incorporating external information into our design processes the autonomy of the design is challenged. User data, energy calculations, embedded sensing, material and structural simulation, human behaviour and perception, particle flows and force fields allows design to be situated and responsive. From the simulation of megacities to the solid modelling of material systems, design has the potential to be informed by the real. Design sits not separate from is environment but inhabits an ecological system, open, dynamic and interdependent, diverse, partially self-organising, adaptive, and fragile. Across scale and within time we now have the chance to instil architecture with an immanent intelligence creating new relationships between the user, the built and its ecosphere.THE OPPORTUNITYSystems theorists suggest that data is only a raw material. It can be differentiated from information, knowledge and wisdom. Understanding is multi-levelled: understanding of relations, understanding of patterns, understanding of principles. As digital designers our challenge is in harnessing the power of computation to assist us in informing our design process. Computers help us collect, manage and analyse the environment and inform us about an abundance of data. Our challenge is to use these inputs in a meaningful way to help us make better informed design decisions.THE AIMSG 2011 explores how the incorporation of real world data challenges existing design thinking. The SG 2011 workshop aim is to create physical prototypes of design systems to be exhibited in the SG2011 exhibition.
...more info to follow...
The SmartGeometry Group is a not-for-profit educational organization dedicated to the use of computational tools in architecture and engineering. SG brings professionals, academics, and industry together to explore the next generation of digital design. SG Workshops are non-platform specific, believing it is the methodology, not the tool, that matters.
…
Added by Shane Burger at 3:02pm on November 29, 2010
ger work.
Be aware, this release breaks file-forwards compatibility. You will not be able to open gh and ghx files saved with 0.8.0050 on previous versions, though of course you should be able to open old files without problems. If this is not the case, please yell loudly.
If you're having trouble loading Grasshopper, note that you must have the latest Microsoft C++ Runtimes installed on your machine. They can be downloaded from the microsoft website.
The new release can be downloaded from the usual location.
Here's a list of changes, additions and fixes since 0.8.0013:
File format forwards compatibility has been broken. You will not be able to open files saved with 0.8.0050 on earlier versions.
This release contains many breaking changes and GHA libraries compiled for older version may not work anymore.
Grasshopper Binary files (*.gh) are now saved as compressed data.
Grasshopper Binary files (*.gh) are now the default format.
Support for ancient versions of the Text Panel (still called Post-It from back then) has been removed.
Support for ancient versions of the Path Mapper (still called Path Lexer from back then) has been removed.
Placeholders for ancient versions of the Graph Mapper have been removed.
Gradient input parameters now show state tag icons (Reversed, Flatten etc.).
Geometry Cache name changes are now updated on every key press.
Geometry Cache name changes can now be cancelled with Escape.
Geometry Cache name changes can now be undone.
Mesh|Mesh intersection component now uses a different algorithm. The old behaviour is still available from the component menu.
Warning and Error balloons are now drawn as part of a Canvas Widget and will no longer show up in the Hi-Res image export.
Galapagos now accepts multiple fitness values. The true fitness will be the average of the collection.
Galapagos wires are drawn much fainter when the Galapagos object is unselected.
Medium fast redraw mode in Galapagos now immediately redraws instead of at the end of each generation.
Redesigned all Grasshopper file format icons and added larger size icons for high-dpi explorer views.
Redesigned the Most Recently Used files menu, it should now display much quicker.
Compass widget has been rewritten in an attempt to increase display performance.
Added preferences section for Compass widget.
Added preferences section for Align widget.
Added preferences section for Default Preview colours.
Added preferences section for Document Preview colours.
Added preferences section for the Most Recently Used files menu.
The Area component now accepts Breps, Meshes and Planar Closed Curves.
The Area Centroid component now accepts Breps, Meshes and Planar Closed Curves.
The Volume component now accepts Breps and Meshes.
The Volume Centroid component now accepts Breps and Meshes.
Added Merge Faces component (Surface.Util panel).
Added a Mesh Smooth component (Mesh.Util panel).
Added a Curve Seam component (Curve.Util panel).
Added Interpolate Curve With Tangents component (Curve.Spline dropdown).
Added GrasshopperFolders command to open Settings, Components and UserObject folders without loading the core plugin.
The window that reports on certain Loading Errors now has a Copy button.
Added Simplify post-process filter to parameters (in addition to Reverse, Flatten and Graft).
Parameter post processes (Reverse, Flatten, Graft & Simplify) can now also be assigned to output parameters.
Version History window now has formatting (not happy with this, I'm working on something better).
The Process Info window is gone.
Main menu has been redesigned.
Canvas toolbar has been redesigned.
Canvas context menu has been replaced by a Radial Menu.
Canvas now has a radial menu which will pop up on Middle Mouse Button clicks.
It's possible to switch between Radial and Legacy menus in the Preferences (Interface.Canvas section).
'Save As Copy' feature has been replaced by 'Save Backup' which is a GUI-less save including date+time stamp.
Added a 'Show in Folder' item to the File menu.
AutoSave settings are no longer available from the File menu, you now need to use the Preferences.
Selection shifts now also modify the view so you can use Ctrl+Left and Ctrl+Right to navigate up and downstream.
Mesh Edge display can now be toggled with Ctrl+M.
Preview modes now have shortcuts (Ctrl+1 = no preview, Ctrl+2 = wireframe, Ctrl+3 = shaded).
Solution States now have a default name.
Data Viewer window now responds to all required events.
Data Viewer window can now handle input and output parameters as well.
Canvas Navigation pane can now be dragged using the icon in the upper left corner.
The Persistent Data Editor has been redesigned.
It's now possible to select multiple items in the Persistent Data Editor list and edit their properties.
It's now possible to drag multiple items at the same time in the Persistent Data Editor list.
Item addition to the Persistent Data Editor is much improved.
The Persistent Data Editor is now non-modal.
The Canvas would remain black upon maximizing the Rhino window, this is fixed.
Sliders would cause multiple updates under certain conditions, this is fixed.
Digit Scrollers would cause multiple updates under certain conditions, this is fixed.
Pipes were inside out. This is fixed.
The curve component would not adjust invalid nurbs degrees, this is fixed.
Curves referencing Brep edges failed to load, this is fixed.
Points referencing Brep edges failed to load, this is fixed.
Referenced dlls in the VB/C# components sometimes resulted in invalid imports statements, this is fixed.
Pasting geometry in Rhino would cause a recompute of the Grasshopper solution, this is fixed.
Importing a file into the Rhino document would cause a recompute of the Grasshopper solution, this is fixed.
Galapagos would trigger superfluous solutions, this is fixed.
Mesh Solid Difference had a wrong name and description, this is fixed.
Several menu items were not greyed out despite not being usable, this is fixed.
The position and size of the Grasshopper window failed to get stored on Rhino shutdown, this is fixed.
The Persistent Data Editor would crash on parameters that did not support data proxies, this is fixed.
I'll add some additional information regarding some of the new UI features in subsequent posts.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
t does not run inside the Grasshopper thread).
A way for components to subscribe to a "New solution at the earliest conveinience the next time a solution is finished". This may include a small pause for grasshopper to redraw the canvas; or a pause to prevent locked-up scenarios and unescapable stuff.
Multiple components should be able to subscribe to this, and they should be expired at the same time. (Right now I'm using solution #2: When having a lot of input this causes a racing condition, where one of the two components will be expired, causing a "turn based scenario".
A no-queue solution: Multiple calls during a solution should be collected into one batch of components / params that should be expired.
This is the code I've tried
1: Adding a new handler at the end of a solution
GH_Document.SolutionEndEventHandler handle = null; handle = delegate (Object sender, GH_SolutionEventArgs e) { // first get rid of our handler again GrasshopperDocument.SolutionEnd -= handle; if (GH_Document.IsEscapeKeyDown()) return; try { // ExpireSolution(true); } catch (Exception ex) { RhinoApp.WriteLine("Exception in SolutionEnd event: {0}", ex.ToString()); } };
2: The Ghowl UDP way:
if (_doc.SolutionState != GH_ProcessStep.Process && _udpClient != null && !_askingNewSolution) { GH_InstanceServer.DocumentEditor.BeginInvoke((Action)delegate() { if (_doc.SolutionState != GH_ProcessStep.Process) { _askingNewSolution = true; this.ExpireSolution(true); _askingNewSolution = false; } }); }
My use cases are:
A USB Hid listener (Should be able to handle e.g. two gamepads at the same time) sending commands to a component. Events can arrive at high speeds; and should be able to know when it's save to actually request a new solution
A form that sends keystrokes or commands to (multiple) components on the canvas (one per device).
An embedded webserver
Looping (like: Hoopsnake, anemone, etc. Sending data back to one or more parameters on the canvas)
For most of these problems I've got a solution where one of these components is working. But most of the time combining them results into misery.
These are my questions:
What does ScheduleSolution() do? I've tried to use it - but it's behaviour seems erratic. Most of the expirations arrive quite laggy.
What is the difference between ExpireSolution(true) and ExpireSolution(false)? When is it safe to call either of them?
How do I determine if it's safe to request a new solution?
Any thoughts on a generic way to solve this (Rather than each component subscribing to events, a way to subscribe to an expiration at the next earliest conveinience?)
…
ve a revised date just yet but hopefully it should not be too long. Thank you all for joining the group however, it's nice to know there is some interest for the project and I hope you will forgive me for delaying the release date $:)
I would like to give a little background as to why I started this group and how the Embryo concept for grasshopper initially came about. The short version is probably best stated in mine and Sam Joyce's abstract for our “Thinking Topologically at Early Stage Parametric Design” paper (preprint) published at the recent Advances in Architectural Geometry (AAG) conference:
"Parametric modelling tools have allowed architects and engineers to explore complex geometries with relative ease at the early stage of the design process. Building designs are commonly created by authoring a visual graph representation that generates building geometry in model space. Once a graph is constructed, design exploration can occur by adjusting metric sliders either manually or automatically using optimization algorithms in combination with multi-objective performance criteria. In addition, qualitative aspects such as visual and social concerns may be included in the search process. The authors propose that whilst this way of working has many benefits if the building type is already known, the inflexibility of the graph representation and its top-down method of generation are not well suited to the conceptual design stage where the search space is large and constraints and objectives are often poorly defined. In response, this paper suggests possible ways of liberating parametric modelling tools by allowing changes in the graph topology to occur as well as the metric parameters during building design and optimisation."
Put simply, coding, generative modelling, scripting, etc... all encourage us to lay down design intent at a very early stage, and that intent can then be very hard to escape from if we still wish to indulge in the kind of broad design exploration that the concept stage requires. The inherent inflexibility of programming languages, be they visually represented as a graphs for example or just as pure code is well known by programmers. Good modular structuring of code or neat graph (network) representations can help mitigate and facilitate change, but essentially in an architectural design context the topology of a grasshopper network can be hard to break free from once laid down on the canvas top-down. We can often reach a position at concept stage whereby design exploration takes place with slider variables on only one or at best a few associative models before we really know what our intentions are. This occurs not least because concept stage is when we have the least amount of time to make adjustments ... making 100 different associative models is not a realistic possibility!
Image showing a variety of massing models at the early stages of a tower project. Most require a separate associative model (topological representation) be made if created in grasshopper, even if sliders allow certain metric freedoms.
In terms of architectural computing, this topology problem was acknowledged back in 2001 by Manual DeLanda in his paper: “Deleuze and the Use of the Genetic Algorithm in Architecture“. He asks designers to think not just in terms of metric sliders, but also think topologically about the ‘body-plan’ of a design if manual or automated search algorithms (not just GAs) are to be used not just to solve explicit problems but also to generate novel and surprising designs by using a computational approach. Eleven years on, this paper is especially relevant today because of the following developments:
1. Decision support tools are becoming better integrated and are moving earlier and earlier in the design process. One only has to look at the variety of analysis components available that either David has created in grasshopper himself or exist as third-party components that give designers more and more quantitative feedback on building performance at the early stage. The availability of such components is only likely to increase in the coming years.
2. Solvers are becoming available to the masses. Before, one had to program their own search code or at least know how to import and implement the appropriate libraries. The release of Galapagos was an important moment in architectural design in that knowledge of coding was no longer necessary for designers wishing to engage in hands off search processes, just an ability to understand a visual programming graph based interface such as grasshopper. Multi-objective solvers are just around the corner.
Due to all of the above, I started to wonder if anyone had thought about opening up the structure of the graph to be automated (not crafted explicitly top-down) so that a design's ‘body-plan’ could be open to change as De Landa argues is necessary in a healthy design search. Inspired by Dawkin’s Biomorphs, this could potentially allow the automatic exploration of different building typologies that are represented by different graph structures and not just variables, as required in the above tower design example.
The Stream Gate Component hooked up to Galapagos.
The stream gate component makes a claim for this. Theoretically a numerical slider (which may or may not be associated with Galapagos) can be hooked up in order to explore different network paths. However there is a catch as each avenue must still be explicitly laid down by the designer and hence realistically only a small number of alternative options can be explored unless again you have time to lay down many different potential networks. Instead, you may wish to let go completely and allow the machine to create visual graph structures (or programs) automatically... perhaps ones that can go beyond human cognition (this is a direction that I hope to explore with Embryo).
In opening up the automatic generation of graphs, one has to look at a higher level of abstraction for controlling the process... there is always human involvement somewhere. Such a strategy takes inspiration from the field of Genetic Programming (GP), pioneered by John Koza in the 1990s. In standard GP, computer code is generated automatically, initially represented as LISP tree structures but has now coincidently been applied to directed acyclic graphs (the type used in grasshopper), even allowing graph structures and their components to have a bit string representation. This field is called Cartesian Genetic Programming. Bloat issues are a well-known problem with GP and Embryo will have to tackle these. The beauty of using grasshopper to play out such an approach however is that geometric primitives are already present in the software, as well as their instantiation methods in the compiled component (unlike GC for example). Custom components can be utilised in a similar manner to the functions in CGP.
So anyway, I hope this gives some background to the project. Some of the other major influences that I haven't crammed into in this short introduction (but will no doubt bring up at some point) are the following:
Shape grammars
Evolutionary Development (Evo-Devo)
Morphogenesis
Lindenmayer Systems (particularly the work of Paul Coates)
Artifical Embryogenesis
With regards the last point, the name Embryo actually comes from Lewis Wolpert’s book ‘The Triumph of the Embryo’ that has had a big influence on my thinking and although slightly out of date, I urge a read if you have not discovered this book already.
So I hope this can be a place for general discussions about alternative graph manipulation methods as well as the place to discuss Embryo. I'm also excited about the potential of hooking up Embryo to Rabbit, SPM Vector Components, Hoopsnake, Kangaroo etc... but that is all way off in the future! Finally, here is a sneak preview of a very simple example of one of the Embryo components - in this case generating some small graph structures with only a few 'ingredient' components on a blank child canvas:
Embryo - (Very) Simple example from john harding on Vimeo.
…
These sometimes take weeks or even months. One of these is usually followed by a flurry of revisions (0.8.0001, 0.8.0002, 08.0003) where reported bugs are fixed.
Current version 0.8.0066 and was released on January 22, 2012 (yes, a long time ago).
The next version will be 0.9.0001 and will hopefully be released in late May or Early June. I pasted the release notes below, as they were on May 18th:
Changes:
Data Trees are now constructed differently in some cases, this may break files that depend on specific data tree layouts.
File format forwards compatibility has been broken. You may not be able to open files saved with 0.9.0001 on earlier versions.
Parts of the Grasshopper SDK have been broken. You may not be able to load GHA files compiled for earlier versions.
Component Data Matching menu items are no longer available, please use the dedicated Shortest-List/Longest-List components.
New features:
Grasshopper will now load GHA files that are part of RHI installer packages.
Moved a lot of components into the dropdown panels, reducing the default tab layout.
Added Preview Mesh quality settings to the Canvas Toolbar and Solution menu.
Shift+Click on a tab component icon now starts a component aggregate.
Clicking on the canvas instantiates the oldest component in an aggregate.
Shift+Clicking on the canvas instantiates all components in an aggregate.
Press Escape to destroy a component aggregate.
Alt+LeftClick on the canvas now starts the Split tool which pushes apart the objects on either side of the mouse.
MultiSave exit dialog now closes automatically when all documents have been saved.
Added Data Dam object to delay data across a network (Params.Special dropdown).
Added Sift Pattern component for splitting data without messing with the item index (Sets.List panel).
Added Combine Data component for merging multiple streams with nulls (Sets.List panel).
Added Partition List component for breaking up lists into smaller lists (Sets.List dropdown).
Added Match String component for comparing strings against patterns (Sets.String dropdown).
Added String Distance component for computing Levenshtein distances between strings (Sets.Strings dropdown).
Added Format component for creating formatted strings (Sets.Strings dropdown).
Added Cloud Display component for displaying point data as fuzzy clouds (Vector.Point dropdown).
Added Sort Along Curve component for sorting points using curves as guides (Vector.Point dropdown).
Added Barycentric Point component for creating points using barycentric coordinates (Vector.Point dropdown).
Added Point Groups component for finding proximal clusters in point collections (Vector.Point dropdown).
Added Populate Geometry component for distributing points on different shapes (Vector.Grid dropdown).
All Population components now use a faster algorithm.
Added Project Point component (Vector.Point dropdown).
Added Blend Curve component for G0~G2 blends (Curve.Spline panel).
Added Connect Curves component for blending multiple curves into one (Curve.Spline dropdown).
Added Curve Length Domain component for measuring lengths of sub-domains (Curve.Analysis panel).
Added Curve Length Parameter component for measuring lengths to and from parameters (Curve.Analysis dropdown).
Added Containment Ex component for testing a point against multiple regions (Curve.Analysis dropdown).
Evaluate Curve component has been replaced with another one that outputs kink angles rather than lengths (Curve.Analysis panel).
Curve Derivatives component has been replaced with another one that has variable output parameters (Curve.Analysis dropdown).
Curve Derivatives component now displays the derivative vectors in the Rhino viewport.
Added Pull Curve component for pulling curves onto surfaces (Curve.Util dropdown).
Added Intersect Multiple Curves component (Intersect.Physical dropdown).
Added Matrix Data Type and Matrix Parameter (Params.Primitive dropdown).
Added Field Data Type and Field Parameter (Params.Geometry dropdown).
Added Point Charge component (Vector.Field panel).
Added Line Charge component (Vector.Field panel).
Added Vector Force component (Vector.Field dropdown).
Added Spin Force component (Vector.Field dropdown).
Added Merge Fields component (Vector.Field panel).
Added Break Field component (Vector.Field panel).
Added Evaluate Field component (Vector.Field panel).
Added Field Line component (Vector.Field panel).
Added Field Direction Display component (Vector.Field dropdown).
Added Field Perpendicular Display component (Vector.Field dropdown).
Added Field Scalar Display component (Vector.Field dropdown).
Added Field Tensor Display component (Vector.Field dropdown).
Added Adjust Plane component for modifying plane z-axes (Vector.Plane dropdown).
Added Evaluate component to replace all old expression components (Math.Script panel).
Added Expression component which evaluates an internal expression (Math.Script panel).
Added Short List component for equalizing list lengths (Sets.List dropdown).
Added Long List component for equalizing list lengths (Sets.List dropdown).
Added Inside Multiple component for testing point inclusion with multiple breps (Surface.Analysis dropdown).
Added Collision component for testing one-to-many collisions (Intersect.Physical dropdown).
Added Collision component for testing many-to-many collisions (Intersect.Physical dropdown).
Added Mesh Inclusion component for testing point|mesh inclusion (Mesh.Analysis panel).
Added Mesh Closest Point component for finding the point on a mesh closest to another point (Mesh.Analysis panel).
Added Evaluate Mesh component for sampling position, normal and colour at a mesh parameter (Mesh.Analysis panel).
Added Face Boundaries component for converting mesh faces into polylines (Mesh.Analysis panel).
Added Mesh Edges component for extracting mesh edge lines (Mesh.Analysis panel).
Replaced Mesh Plane component with one that takes a rectangle (Mesh.Primitive panel).
Added Blur Mesh component for averaging mesh vertex colours (Math.Util dropdown).
Added Simple Mesh component for creating a minimal Brep representation (Mesh.Util dropdown).
Added Knot Style input for the Interpolate Curve component.
Added Knot Style input for the Interpolate Tangents Curve component.
Added four different display styles to the Legend object (accessible via the component menu).
Double clicking the Legend object toggles discrete vs. smooth display styles.
Added an extra input to the legend component which allows legend drawing in 3D.
Replaced Containment component with more sensible values for inside/coincident/outside.
Replaced the Recursive Voronoi component with a better one.
Convex Hull component will now solve for 2 points.
MultiDimensional Sliders can now be part of states.
Geometry Pipeline object now has a Locked filter, available via the popup menu.
Geometry Pipeline object now has a Hidden filter, available via the popup menu.
Geometry Pipeline object now has a 'Group By Layer' option, available via the popup menu.
Geometry Pipeline object now has a 'Group By Type' option, available via the popup menu.
In Rhino5, the Zoom Extents command will now include Grasshopper geometry.
Expression input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script input parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
Script output parameters can now have names like "Name (n)", where the text in brackets becomes the variable name.
VB/C# script components now have tooltip override fields in the context menu.
Parameter nicknames that collide with language keywords are now automatically modified in Script components.
Added Wrap option to Text Panel entries. When Wrap is off, items will be trimmed using ellipses.
Added NickName support to Knobs.
Added a grip region for Knob tuning.
Added a specific window for changing Knob settings.
Copy to Windows Clipboard now tries a total of 10 times if there's an access failure.
Copy to Windows Clipboard now copies to internal Grasshopper clipboard on prolonged failure.
Aborted solutions now clear whatever data is stored inside whatever component was solving when the Escape key went down.
The state of the Escape key is now also monitored during data conversions, making Escape behaviour more reliable.
Rearranged the Params.Special panel into Input and Util panels.
Rearranged the Sets.String panel.
File Reader component now reads per line files in a more efficient manner.
Parameter modifier icons are now drawn as vectors rather than bitmaps.
Bug fixes:
Components with Preview=Off would not display in selected only mode, this is fixed.
Instantiating number sliders via the popup box would not work if the first number was negative, this is fixed.
Copy to Windows Clipboard would not fail gracefully on error, this is fixed.
Interpolate Curve component would not warn on invalid degrees, this is fixed.
Knob menu control was not correctly initialized, this is fixed.
Knob menu control did not correctly respond to Limit On/Off, this is fixed.
Curve Discontinuity component would sometimes return invalid results for C1 discontinuities, this is fixed.
Certain exotic cases of Data Matching and Input Access would yield faulty output data trees, this is fixed.
Expressions in Point parameters would affect shared instances of points, this is fixed.
Editor window would not reflect saved/unsaved state of the loaded document, this is fixed.
MultiDimensional Slider would not undo on grip drags, this is fixed.
Image Sampler would not behave nicely when an image file went missing sometimes, this is fixed.
Upgrader for Null Item component generated an invalid result, this is fixed.
Text Panels would not display a scrollbar for local text, this is fixed.
Vector Display component would remain visible after disconnecting, this is fixed.
Vector Display Ex component would remain visible after disconnecting, this is fixed.
Adding or removing output parameters from VB/C# script would not update the script, this is fixed.
A CCX overlap intersection would sometimes result in erroneous parameters, this is fixed.
The tooltip over the abort icon would not show, this is fixed.
The canvas wouldn't always redraw when the solver was locked, this is fixed.
Transform Parameter Set menu items did nothing, they are now greyed out.
Occlusion Component would always return a null topology, this is fixed.
Group crossing selection would fail on concave group outlines, this is fixed.
Transform input parameters on components would have an empty transform by default, this is fixed.
Sweeps sometimes outputted surfaces with internal kinks, this is fixed.
Output parameters that output lists now have tooltip suffixes indicating them as such.
The main focus of 0.9+ is to improve cluster GUI and implementation.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
nd the challenge "Building the Invisible: Informing Digital Design with Real World Data". Information about each Workshop Cluster can be found here:
Cyber GardensUse the ForceUrban FeedsSuspended DreamsInteracting with the CityAgent ConstructionAuthored SensingPerforming SkinsResponsive Acoustic SurfacingHybrid Space Structure Typologies
The SmartGeometry 2011 Workshop will take place at CITA http://cita.karch.dk/
Applications to attend the SmartGeometry 2011 Workshop in Copenhagen will close on 31st January 2011. General Conference registration will open within 1 month.
We hope to see you there!
****************************************************
Workshop 28th-31st March
Shop Talk 1 April
Symposium 2 April
Reception 2 April
These events follow the highly successful previous SG events in Barcelona 2010, San Francisco 2009, Munich 2008, New York 2007, Cambridge/London, UK 2006 and multiple preceding events.
Click here for more info...
This year's Challenge is entitled:BUILDING THE INVISIBLEInforming Digital Design with Real World Data
THE PREMISEVast streams of data offer a rich resource for designers. By incorporating external information into our design processes the autonomy of the design is challenged. User data, energy calculations, embedded sensing, material and structural simulation, human behaviour and perception, particle flows and force fields allows design to be situated and responsive. From the simulation of megacities to the solid modelling of material systems, design has the potential to be informed by the real. Design sits not separate from is environment but inhabits an ecological system, open, dynamic and interdependent, diverse, partially self-organising, adaptive, and fragile. Across scale and within time we now have the chance to instil architecture with an immanent intelligence creating new relationships between the user, the built and its ecosphere.THE OPPORTUNITYSystems theorists suggest that data is only a raw material. It can be differentiated from information, knowledge and wisdom. Understanding is multi-levelled: understanding of relations, understanding of patterns, understanding of principles. As digital designers our challenge is in harnessing the power of computation to assist us in informing our design process. Computers help us collect, manage and analyse the environment and inform us about an abundance of data. Our challenge is to use these inputs in a meaningful way to help us make better informed design decisions.THE AIMSG 2011 explores how the incorporation of real world data challenges existing design thinking. The SG 2011 workshop aim is to create physical prototypes of design systems to be exhibited in the SG2011 exhibition.
The SmartGeometry Group is a not-for-profit educational organization dedicated to the use of computational tools in architecture and engineering. SG brings professionals, academics, and industry together to explore the next generation of digital design. SG Workshops are non-platform specific, believing it is the methodology, not the tool, that matters.
…
Added by Shane Burger at 11:23am on January 6, 2011