and I here is what I have to share:
Thanks! Thank you for being awesome! When I released Ladybug two years ago I could never imagine how this project will take over my life! It has been such an invaluable experience for me so far and it wasn’t possible without you - so thank you so much.
What’s next? Recently I get this question more and more and here is my fairly long answer! Chris is pushing the boundaries with comfort tools. Chien Si is working on HVAC systems integration. Chris, Anton and Alejandra will figure out how to effectively get natural ventilation to be modeled. Patrick, Sandeep, Michal and Boris are working on their developments. I’m working on getting 3 Phase method integrated, and Butterfly will be out at some point, but... they are not going to be what makes the next step. The next step is up to you. It is what you will do with the development. So go ahead and let us know what’s next!
If you can help someone on the group please do! Doing so you are not only helping another person (and potentially yourself) but also the developers. The more you can help each other here the more we will have time for development and documentation.
Best place to send your questions is this group. If you are using the latest version from github then you may want to sent it to github. Please consider emails as the last option. Go back to number 3 again! Thanks.
Don’t be nice to us! Well, I mean don’t just be nice to us. I love your nice comments like anybody else and please keep them coming ;) but what we also need next to nice comments is your critiques, wishes and insight. I feel that recently we are getting less wishes and critiques than what it used to be. You can post them here in the group or on github and either way we will know about it. Thank you to all of you who has already done this.
Thanks again! Before I let you go I want to specially thank all of you who contributed to the project by your development, thoughts and support. You are great and I can’t thank you enough.
David Weinberger in his book “Too Big to Know” says: “When an expert network is functioning as its best, the smartest person in the room is the room itself.” Reading some of the discussions on the group gives me the feeling of staying inside a smart room. Thank you and let’s keep the room growing!
Cheers,
Mostapha
PS: To avoid sending another post, I just post the updates about the two upcoming workshops here:
I will lead a workshop in LA next Friday (Feb. 6) and there is still few seats left. If you want to learn more about energy and daylighting simulation with Honeybee here is your chance. Here is more information who to register: (http://www.facadesplus.com/technology-workshops/).
Chris will lead a 3 days intense and comprehensive Ladybug and Honeybee workshop in Mexico City this March. You have probably watched Chris’s tutorials and already know what you can expect from a workshop with Chris so I don’t have to speak for that! I would take this workshop if I was around that area. If you are around Mexico City or know a friend who might be interested please let them know. Here is more information about the workshop: (https://www.facebook.com/LadyBugforGrasshopper/photos/a.442320969114095.107084.413910668621792/919318878080966).
…
complicated than it seems as I have an event and a subscriber method receiving data from a serial port.
In the code below, the strings received within myReceivedLines appear when connecting with the serial port (when connecttodevice is true). However they disapear when I launch another command (when homeallis true).
As you recommended in your reply, I have added the field called myReceivedLineswithin the class so that I could use the method String.Add() to all the feedback received and commands sent.
Why does the feedback dispear when a command is sent? Is the string going to myReceivedLine disappearing because they happen within a subscriber method or is it related to the DA.SetDataList() method used to assign myReceivedLinesto the output?
Many thanks!
public class SendToPrintComponent : GH_Component { //Fields List<string> myReceivedLines = new List<string>(); SerialPort port; //subscriber method for the port.DataReceived Event private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; while (sp.BytesToRead > 0) { try { myReceivedLines.Add(sp.ReadLine()); } catch (TimeoutException) { break; } } } protected override void SolveInstance(IGH_DataAccess DA) { //Opening the port if (port == null) { string selectedportname = default(string); DA.GetData(1, ref selectedportname); int selectedbaudrate = default(int); DA.GetData(2, ref selectedbaudrate); //Assigning an object to the field within the SolveInstance method() port = new SerialPort(selectedportname, selectedbaudrate, Parity.None, 8, StopBits.One); //Enables the data terminal ready (dtr) signal during serial communication (handshaking) port.DtrEnable = true; port.WriteTimeout = 500; port.ReadTimeout = 500; } //Event Handling Method bool connecttodevice = default(bool); DA.GetData(3, ref connecttodevice); if (connecttodevice == true) { if (!port.IsOpen) { port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); DA.SetDataList(0, myReceivedLines); port.Open(); } } else if (port.IsOpen) { port.DataReceived -= new SerialDataReceivedEventHandler(DataReceivedHandler); port.Close(); } if (port.IsOpen) { DA.SetData(1, "Port Open"); } //If the port is open do all the rest if (port.IsOpen) { bool homeall = default(bool); DA.GetData(5, ref homeall); //Home all sends all the axis to the origin if (homeall == true) { port.Write("G28" + "\n"); myReceivedLines.Add("G28" + "\n"); DA.SetDataList(2, myReceivedLines); } } else { DA.SetData(1, "Port Closed"); } }}…
The PC actually stops working because after a few seconds the simulation starts the fan inside the PC all of a sudden stops and for the next 5-10 mins I cannot do anything, even alt+ctrl+canc. After I wait for that time i get the followig error:
the ReadMe says:
{0;0;0}0. Grid-based Radiance simulation1. The component is checking ad, as, ar and aa values. This is just to make sure that the results are accurate enough.2. -ar is set to 300.3. Good to go!4. Current working directory is set to: C:\Users\Luigi\Desktop\Prova__\Prova_1\gridBasedSimulation\5. Found a trans material... Resetting st parameter from 0.85 to 0.011276004966. WMIC PROCESS get Commandline7. WMIC PROCESS get Commandline8. WMIC PROCESS get Commandline9. WMIC PROCESS get Commandline10. WMIC PROCESS get Commandline11. WMIC PROCESS get Commandline12. WMIC PROCESS get Commandline13. WMIC PROCESS get Commandline14. WMIC PROCESS get Commandline15. WMIC PROCESS get Commandline16. WMIC PROCESS get Commandline17. WMIC PROCESS get Commandline18. WMIC PROCESS get Commandline19. WMIC PROCESS get Commandline20. WMIC PROCESS get Commandline21. WMIC PROCESS get Commandline22. WMIC PROCESS get Commandline23. WMIC PROCESS get Commandline24. WMIC PROCESS get Commandline25. WMIC PROCESS get Commandline26. WMIC PROCESS get Commandline27. WMIC PROCESS get Commandline28. WMIC PROCESS get Commandline29. WMIC PROCESS get Commandline30. WMIC PROCESS get Commandline31. WMIC PROCESS get Commandline32. WMIC PROCESS get Commandline33. WMIC PROCESS get Commandline34. WMIC PROCESS get Commandline35. WMIC PROCESS get Commandline36. WMIC PROCESS get Commandline37. WMIC PROCESS get Commandline38. WMIC PROCESS get Commandline39. WMIC PROCESS get Commandline40. WMIC PROCESS get Commandline41. WMIC PROCESS get Commandline42. WMIC PROCESS get Commandline43. WMIC PROCESS get Commandline44. WMIC PROCESS get Commandline45. WMIC PROCESS get Commandline46. WMIC PROCESS get Commandline47. WMIC PROCESS get Commandline48. WMIC PROCESS get Commandline49. WMIC PROCESS get Commandline50. WMIC PROCESS get Commandline51. WMIC PROCESS get Commandline52. WMIC PROCESS get Commandline53. WMIC PROCESS get Commandline54. WMIC PROCESS get Commandline55. WMIC PROCESS get Commandline56. WMIC PROCESS get Commandline57. WMIC PROCESS get Commandline58. WMIC PROCESS get Commandline59. WMIC PROCESS get Commandline60. WMIC PROCESS get Commandline61. WMIC PROCESS get Commandline62. WMIC PROCESS get Commandline63. WMIC PROCESS get Commandline64. WMIC PROCESS get Commandline65. WMIC PROCESS get Commandline66. WMIC PROCESS get Commandline67. WMIC PROCESS get Commandline68. WMIC PROCESS get Commandline69. WMIC PROCESS get Commandline70. WMIC PROCESS get Commandline71. WMIC PROCESS get Commandline72. WMIC PROCESS get Commandline73. WMIC PROCESS get Commandline74. WMIC PROCESS get Commandline75. WMIC PROCESS get Commandline76. WMIC PROCESS get Commandline77. WMIC PROCESS get Commandline78. WMIC PROCESS get Commandline79. WMIC PROCESS get Commandline80. WMIC PROCESS get Commandline81. WMIC PROCESS get Commandline82. WMIC PROCESS get Commandline83. WMIC PROCESS get Commandline84. WMIC PROCESS get Commandline85. WMIC PROCESS get Commandline86. WMIC PROCESS get Commandline87. WMIC PROCESS get Commandline88. WMIC PROCESS get Commandline89. WMIC PROCESS get Commandline90. WMIC PROCESS get Commandline91. WMIC PROCESS get Commandline92. WMIC PROCESS get Commandline93. WMIC PROCESS get Commandline94. WMIC PROCESS get Commandline95. WMIC PROCESS get Commandline96. WMIC PROCESS get Commandline97. WMIC PROCESS get Commandline98. WMIC PROCESS get Commandline99. WMIC PROCESS get Commandline100. WMIC PROCESS get Commandline101. WMIC PROCESS get Commandline102. WMIC PROCESS get Commandline103. WMIC PROCESS get Commandline104. WMIC PROCESS get Commandline105. WMIC PROCESS get Commandline106. WMIC PROCESS get Commandline107. WMIC PROCESS get Commandline108. WMIC PROCESS get Commandline109. WMIC PROCESS get Commandline110. WMIC PROCESS get Commandline111. WMIC PROCESS get Commandline112. WMIC PROCESS get Commandline113. WMIC PROCESS get Commandline114. WMIC PROCESS get Commandline115. WMIC PROCESS get Commandline116. WMIC PROCESS get Commandline117. WMIC PROCESS get Commandline118. WMIC PROCESS get Commandline119. WMIC PROCESS get Commandline120. WMIC PROCESS get Commandline121. WMIC PROCESS get Commandline122. WMIC PROCESS get Commandline123. WMIC PROCESS get Commandline124. WMIC PROCESS get Commandline125. WMIC PROCESS get Commandline126. WMIC PROCESS get Commandline127. WMIC PROCESS get Commandline128. WMIC PROCESS get Commandline129. WMIC PROCESS get Commandline130. WMIC PROCESS get Commandline131. WMIC PROCESS get Commandline132. WMIC PROCESS get Commandline133. WMIC PROCESS get Commandline134. WMIC PROCESS get Commandline135. WMIC PROCESS get Commandline136. WMIC PROCESS get Commandline137. WMIC PROCESS get Commandline138. WMIC PROCESS get Commandline139. WMIC PROCESS get Commandline140. WMIC PROCESS get Commandline141. WMIC PROCESS get Commandline142. WMIC PROCESS get Commandline143. WMIC PROCESS get Commandline144. WMIC PROCESS get Commandline145. WMIC PROCESS get Commandline146. WMIC PROCESS get Commandline147. WMIC PROCESS get Commandline148. WMIC PROCESS get Commandline149. WMIC PROCESS get Commandline150. WMIC PROCESS get Commandline151. WMIC PROCESS get Commandline152. WMIC PROCESS get Commandline153. WMIC PROCESS get Commandline154. WMIC PROCESS get Commandline155. WMIC PROCESS get Commandline156. WMIC PROCESS get Commandline157. WMIC PROCESS get Commandline158. WMIC PROCESS get Commandline159. WMIC PROCESS get Commandline160. WMIC PROCESS get Commandline161. WMIC PROCESS get Commandline162. WMIC PROCESS get Commandline163. WMIC PROCESS get Commandline164. WMIC PROCESS get Commandline165. WMIC PROCESS get Commandline166. WMIC PROCESS get Commandline167. WMIC PROCESS get Commandline168. WMIC PROCESS get Commandline169. WMIC PROCESS get Commandline170. WMIC PROCESS get Commandline171. WMIC PROCESS get Commandline172. WMIC PROCESS get Commandline173. WMIC PROCESS get Commandline174. WMIC PROCESS get Commandline175. WMIC PROCESS get Commandline176. WMIC PROCESS get Commandline177. WMIC PROCESS get Commandline178. WMIC PROCESS get Commandline179. WMIC PROCESS get Commandline180. WMIC PROCESS get Commandline181. WMIC PROCESS get Commandline182. WMIC PROCESS get Commandline183. WMIC PROCESS get Commandline184. WMIC PROCESS get Commandline185. WMIC PROCESS get Commandline186. WMIC PROCESS get Commandline187. WMIC PROCESS get Commandline188. WMIC PROCESS get Commandline189. WMIC PROCESS get Commandline190. WMIC PROCESS get Commandline191. WMIC PROCESS get Commandline192. WMIC PROCESS get Commandline193. WMIC PROCESS get Commandline194. WMIC PROCESS get Commandline195. WMIC PROCESS get Commandline196. WMIC PROCESS get Commandline197. WMIC PROCESS get Commandline198. Runtime error (IndexOutOfRangeException): index out of range: 0199. Traceback: line 320, in script
The thing is that if I raise the -aa parameter from 0.05 to 0.1 all works fine..
Is this only related to my PC then?? What should I do to solve this issue?
Thanks again for your help
Luigi…
ld fabrication process for 1:1 components and assemblies. The event will be held in London at the RoboFold factory/studio from June 9th-12th. Workshop participants will investigate the design of facade forms in paper and card, and transfer these to Rhino's Grasshopper plugin to simulate folding and robotics. Using the in-house CNC vinyl cutter and CNC router, various scale prototypes will be folded by hand and by robot. The final 1:1 facade will be formed using 6-axis industrial robots.
Details:
-Tutors: Gregory Epps, RoboFold founder and Florent Michel, RoboFold software developer.-See previous workshops here. -Download Poster here.-Bring your own laptop. -Please install Rhino and Grasshopper before you arrive.-No previous experience with Grasshopper necessary.-Daily 10am-5pm. Location details here. -Drinks reception Tuesday evening.
Registration:
http://www.robofold.com/index.php?WEBYEP_DI=18
Professional: £600 inc VAT
Student: £500 inc VAT
Enquiries: info@robofold.com…
Added by Gregory Epps at 10:02am on April 17, 2012
and the degree of your periodic curve is 3, then start picking one point to the left. If the degree is 5, start pickin 2 points to the left, etc.
Every curve has a domain. A domain is a numeric range defined by two numbers (a lower and an upper bound). Within the domain, the curve exists and the equations which govern the geometry of the curve yield decent answers. The lower limit represents the start of the curve, the upper limit the end of the curve. Everywhere in between you can evaluate curve properties (position, tangency, curvature and any other derivatives, tension, torsion etc. etc.).
There is no significance attached to the actual numbers in a domain. All that is required is that the lower limit is smaller than the upper limit. When we create curves in Rhino we tend to pick domains that represent the length of a curve, but if you scale a curve afterwards you change the length, but not the domain.
Curve parameters are numbers inside this domain. Basically, think of all curves as finite line segments which can be bend, kinked and stretched in 3D space. Curve parameters are locations on the 1-dimensional space that is defined by the line. The curve equations are all about converting those one-dimensional parameters into three-dimensional points and vectors.
Like I said, the mathematics are pretty involved and periodic curves are more difficult still.
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 4:23am on September 13, 2013
r.
Jon has already done some very interesting stuff with regard decomposing matters using IFC schema (I'm not a strong admirer of any schema policy mind - for a variety of reasons).
Now the chaotic case:
1. This is deliberately fuzzy, faulty and chaotic in order to indicate the need (at least IMHO) for a next step with regard handling and visualizing (on a per individual data item basis, not on a per branch basis) data trees.
2. Why this Tree Manager future thing could boost GH up to an unseen level? Exploit the PDF attached - use Saved views and/or the Model Tree "decomposer" (file is greatly reduced in detail - only 1 out of 5 floors shown, no envelope stuff, stripped out of everything actually etc etc etc). Among a variety of things observe that there's transformations that are "selectively" applied whilst various components remain intact (in other words: invite existed "static" objects into the smart chaos) - this means that we need a far better control VS the series (of various type of data) that outline the solution of similar things.
3. What could/should do such a "visual" Tree Manager? Could he function within the existed "one Canvas for all things" environment? Do we need N "sub-canvas" (kinda the Views in any CAD app these days) to handle and visualize complex tree operations? Do we need control on a per data item basis? Do we need a re-mapper of a totally different kind? Do we need a Bake Manager? Do we need a Scenario (parameter combos stored etc) Manager?
Let's the debate begin
Best, Peter
…
ents will react to sensors, creating a range of different lighting and spatial effects that will trigger further movement and produce a feedback loop of behaviour and response. To accommodate this responsiveness, the design will be developed using parametric associative modeling, processing, arduino, and digital fabrication using the CNC and Laser Cutters. Students can both develop completely new designs, and/or work on the evolution of the Workshop 1 Supple Pavilion project.
The Visiting School will return to Barracão Escola de Carnaval to evolve the design of the migrating Pavilions, their contents and their context, exploring a design philosophy of interactive event design and the production of a creative fusion of high-tech design generation and fabrication with low-tech redefinition of Carnival-float artisan techniques, paraphernalia, and materials. We will work in the immense and creative Pimpolhos warehouse, collaborating with local artisans of several Samba Schools in the post-industrial, partly-derelict Porto do Rio area, (the birthplace of the Carnival and Samba), introducing digital fabrication techniques. The goal is to create interventions for micro-venues and cultural events that express the identity of the Samba culture within the `Porto Maravilha` planning.
Instruction for the Supple Pavilions workshop series will be led by Rob Stuart-Smith of Kokkugia, Lawrence Friesen of Generative Geometry, Ivan Ivanoff of Interactive Art Estado Lateral Media Lab, Toru Hasegawa of Proxy, with Anne Save de Beaurecueil and Franklin Lee of SUBdV, along with other AA tutors, the Pimpolhos Artistic Directors, and Carnival float-fabricators. Each workshop will provide an introduction to computational design (Grasshopper, Processing and Arduino) and digital fabrication, no previous computational experience is required. Students taking part in multiple workshops will have access to advanced computation instruction. This workshop will produce 1:1 prototyping, exploring the structure and transformations of the pavilions. Final fabrication and assemblage will occur in July.
The workshop is open to architecture and design students and professionals worldwide. Participants can take part in one or more workshops, with fee discounts offered to those interested in multiple workshops.
…
hat offer an even spacing of 11 gems from 0.0 to 1.0, and though the Anenome script works it is not as robust to various shapes and sometimes just stops at some point even on mellow curves:
The Hoopsnake script in the other thread: Hoopsnake doesn't want to appear multiple times in a document since resetting one resets them all and it only runs the first instance when I pasted two more copies of the whole script in, so I'll do them separately, and instead of an input reset wire, there is a right click Reset All item in the pop-up menu.
I understand now how the two looping components work, in having a geometry input for the first item, then they accept a second item input as new geometry that then gets looped as the new geometry replaces the original. What a great hack, so I was wrong above about only being able to loop numerical values.
Since I really like Anenome better due to its nice interface, I've converted the old thread Hoopsnake program to Anenome. It still won't handle multiple curve pairs, so I made copies of the whole script.
I learned a lot today. Thanks guys. Given how well these straightforward scripts can work, I'll bet there's a much shorter Python version possible, one that most anybody could understand and thus adapt. If I have time I can start again this time from scratch. Converting the long one taught me about the problem though. Grasshopper makes it easier though, since Circle TTT only needs one center point hint whereas Rhinocommon TryFitCircleTTT needs three.…
rested in specializing in the field of Computational design.
The workshop will help understand how Grasshopper facilitates during the design process allowing one to Generate, Automate and Manipulate data.
To Register:
http://goo.gl/forms/gvUTyZihVK
Workshop Structure:
Day 01: 16 August 2018
Introduction to Computational Processes in Architecture
Understanding Grasshopper and its relation to Rhino3D
Working with fields and Grids (Supplementary readings for Architectural theory)
Spatial Concepts using Data
Day 02: 17 August 2018
Understanding Data in Grasshopper - LISTS
Managing Data in Grasshopper (Supplementary reading)
Experimentation on Massing and Architectural Forms
Day 03: 18 August 2018
Understanding Data in Grasshopper – Trees
Surface Logics (Supplementary reading)
Design Exercise and Prototyping
Day 04: 20 August 2018
Architectural Skins
Day 05: 21 August 2018
MasterClass Project
Introduction to various types of Digital Fabrications
Prototyping of works during the Workshops
Basic knowledge of Rhino 5 is required to be able to take this training.
CERTIFICATION: All participants will receive a Workshop certificate from Authorized Rhino Trainer.
3D Printing: Prototyping of works during the Workshops
Workshop Tutor:
Kavitha M, an Architect and Computational Designer, 3D Printing Specialist is also the co-founder of INTO Design Research, will head the Computational Process in Architecture using Grasshopper workshop. Graduated from Stadelschule Architecture class with Masters in Advanced Architecture Design, has been researching on teaching methodologies on digital tools and their influence on Design thinking.…