by joining 2 Breps, each of which is a Loft surface made from 11 plane curves rotated by different amounts. The first BRep looks like this
and the second one is the same geometry, but with the curve rotations reversed (x * (-1)):
Apparently performing the curve rotation using reversed values causes the resulting surface normals to be reversed also. I've tried numerous methods (including mesh operations) to reverse them back, but nothing seems to actually do that. So I am hoping that someone here can point me in the direction of how to do this successfully.
My overall objective is to print parts that look like the old fashioned faceted cut glass bowls and trays.
…
Added by Birk Binnard at 1:46pm on September 12, 2016
on Grasshopper, I'd probably research how people use the tools. For example; take a well known architectural shape and make algorithms that duplicate this shape in a number of languages (written English, drawn images, RhinoScript, MEL, AutoLISP, Grasshopper etc. etc.), then compare these different implementations. Which approach allows you to achieve the goal with least steps? Which representation can be most easily explained to others? Which can be most easily changed? and so on and so forth.
Voronoi diagrams are pretty mundane these days. Not that long ago only the best and brightest could use them for architectural purposes, but now everyone who is smart enough to install a plugin can.
One of the truly useful features of Grasshopper (and -of course- programming in general) over traditional approaches is that it can handle vast amounts of data. Given a couple of hours I can create a Voronoi diagram for 500 points by hand, but I would be hard pressed to manually evaluate the year-average of sun light contribution on every vertex of a 10000 point mesh.
If you're looking to do something reasonably innovative (and I think 10~11 weeks is plenty of time for that), I have yet to see someone do 3D isovist data maps of architectural models. I think Grasshopper can be used to at least aid in researching isovist properties of platonic, organic and custom volumes.
Or... a lot of people worry about shadow-casting properties of building envelopes, but nobody seems to be interested in solar reflection via windows and other reflective surfaces.
Or... given the average dioptre of the human eye, what can we say about the level of detail that is perceivable on every square unit of the facade of a 50 story building?
Or... how are grooves in a floor, wall or facade surface perceived as one walks past them? Or take it even further and research the rate of change of visual properties of a bas-relief surface.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 4:41am on November 21, 2009
Target group The workshop is fully funded and is addressed to students of architecture and civil engineering faculties at master level from Estonia (11 seats), Latvia (3 seats), Lithuania (3 seats) and Sweden (3 seats). The selected students will have full scholarship that will include travel, board and lodging in Tallinn for 10 days (arrival on Sunday 03.07.2016 departure on Wednesday 13.07.2016). The workshop is funded by the NORDPLUS programme of the Nordic Council of Ministers (NCM) - Higher Education objective.
Description The use of digital and computational design tools is increasingly important for the activity of design and research for architects and engineers. It permits to integrate environmental and energy aspects from the very early stages of the design and planning process to achieve more performative, efficient and integrated buildings and urban environments. The workshop attendants will broaden their design and technical knowledge with solar design, daylighting and energy efficiency topics and will learn how to integrate environmental analysis and building performance analysis tools with parametric and generative methodologies in architecture and planning.
Location
Tallinn University of Technology – Departments of Structural Design and Environmental Engineering
Dates
From 04 to 12 July 2016
Workshop blog
For detailed program, info and registration visit the blog at ceedtut.blogspot.com
In the weeks just before the workshop the blog will present also materials and tutorials to get a basic knowledge of the topics prior to the beginning of the workshop.
…
o use these extensions in order to integrate numerous tools for analysis and simulation in the architectural process.
This course aims to develop a link between the virtual and the real context model through structural or environmental simulations, using other software or plug-ins dedicated. Through this link the virtual model receives physical properties that can further modify and adapt the initial model. This creates feedback loops that can optimize the design to provide an object responsive to environmental conditions.
Curriculum
Mesh subdivision with Weaverbird, continuous surfaces without NURBS
Genetic optimization with Galapagos, optimal search
Physical environment feedback with Diva and Geco, solar and day lighting analysis
Adding physical properties with Kangaroo Physics, interactive form-finding
Linking the parametric model with structural analysis using Karamba, structural performance simulation
Extracting data with Firefly and Kinect, 3D scanning and human movement tracking
Exchange of information between Grasshopper and other applications with Ghowl links to internet feeds or Excel files.
Schedule:
Module 04 / Grasshopper intermediate & advanced (24 h)
11 Oct – 26 Oct 2013
Fri:
Sat:
16-20
10-14
Language: Romanian
Organized by:
OAR Bucureşti – Romanian Order of Architects, Bucharest Branch
Trainers:
Ionuț Anton, idz arhitectura (ART-Authorised Rhino Trainer)
Daniela Tănase, idz arhitectura (ART-Authorised Rhino Trainer)
https://www.facebook.com/cursurigrasshopperrhinoceros
http://www.oar-bucuresti.ro/anunturi/2013/02/27/d/…
Added by Dana Tanase at 2:49am on September 5, 2013
a nodi, permette di sfruttara le potenza della programmazione, senza necessariamente avere competenze avanzate.
Con Grasshopper potrete avere accesso ai segreti della modellazione generativa, un nuovo linguaggio progettuale che sta cambiando il mondo del design, a partire dalla gioielleria, fino ad arrivare all'architettura.
Durante il corso sarà possibile comprendere le caratteristiche di funzionamento del programma e applicarlo alla creazione di oggetti complessi che potranno essere stampati in 3D, oppure renderizzati. La durata è di 30 ore e alla fine del percorso verrà rilasciato il certificato McNeel.
Il Programma
Il corso spiega i concetti base di modellazione parametrica e generativa. Nello specifico:
Interfaccia e comandi
Parametri e componenti
Interopazione con Rhinoceros
Strumenti di parametrizzazione
Combinazione dati
Data tree
Creazioni di superfici attraverso algoritmi di paneling
Teoria degli attrattori
Gestione strumenti mesh
Creazione di Cluster
Durante il corso saranno proposte esercitazioni pratiche sul campo di utilizzo preferito dallo studente
Il docente
Antonino Marsala, è un formatore certificato McNeel con alle spalle oltre 11 anni di esperienza nel settore della modellazione 3D. Oltre ad occuparsi di formazione, collabora con aziende orafe e di architettura per la messa in pratica dei principi di modellazione generativa, applicandoli a casi reali.
FAQ
Quanto costa il corso?
Il prezzo del corso è di 500,00 € + IVA che potranno essere saldati in una soluzione unica. Nel caso di iscrizione di gruppo, potrà essere applicato uno sconto.
Cosa posso portare e cosa non devo portare all'evento?
Gli organizzatori forniranno computer con il software già installato. Nel caso vogliate portare il vostro computer, vi forniremo una versione trial da 90giorni di Rihnoceros e Grasshopper
Dove posso contattare l'organizzatore per qualsiasi domanda?
antonio@mandarinoblu.com
334 24 20 203
La mia registrazione o il mio biglietto è trasferibile?
Si, purchè venga comunicato il cambiamento entro 48 ore dalla partena del corso
…
.0004. [1 of 7] Writing simulation parameters...5. [2 of 6] No context surfaces...6. [3 of 6] Writing geometry...7. [4 of 6] Writing materials and constructions...8. [5 of 7] Writing schedules...9. [6 of 7] Writing loads and ideal air system...10. [7 of 7] Writing outputs...11. ...... idf file is successfully written to : c:\ladybug\unnamed\EnergyPlus\unnamed.idf12. 13. Analysis is running!...14. c:\ladybug\unnamed\EnergyPlus\eplusout.csv15. ......
Done! Read below for errors and warnings:
16. 17. Program Version,EnergyPlus, Version 8.2.7-777c1f8d79, YMD=2015.02.28 16:09,IDD_Version 8.2.718. 19. ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.20. 21. ** Warning ** Version: in IDF="'8.2.7'" not the same as expected="8.2"22. 23. ** Warning ** ManageSizing: For a zone sizing run, there must be at least 1 Sizing:Zone input object. SimulationControl Zone Sizing option ignored.24. 25. ** Warning ** ManageSizing: For a plant sizing run, there must be at least 1 Sizing:Plant object input. SimulationControl Plant Sizing option ignored.26. 27. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_1228. 29. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_12_GLZ_1230. 31. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_2532. 33. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_25_GLZ_2534. 35. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=F73533B3C6894C67936B_GLZP_2836. 37. ** ~~~ ** Opening Surface creating error=F73533B3C6894C67936B_GLZP_28_GLZ_2838. 39. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_940. 41. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_9_GLZ_942. 43. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1044. 45. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_10_GLZ_1046. 47. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1148. 49. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_11_GLZ_1150. 51. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_1552. 53. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_15_GLZ_1554. 55. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_2456. 57. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_24_GLZ_2458. 59. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_2560. 61. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_25_GLZ_2562. 63. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3064. 65. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_30_GLZ_3066. 67. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3268. 69. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_32_GLZ_3270. 71. ** Severe ** GetHTSubSurfaceData: Surface Openings have too much area for base surface=4BDFD67E6D0E486796CC_GLZP_3472. 73. ** ~~~ ** Opening Surface creating error=4BDFD67E6D0E486796CC_GLZP_34_GLZ_3474. 75. ** Warning ** GetSurfaceData: Very small surface area[2.94495E-004], Surface=F73533B3C6894C67936B_GLZP_076. 77. ** Warning ** GetSurfaceData: Very small surface area[3.84753E-004], Surface=F73533B3C6894C67936B_GLZP_178. 79. ** Warning ** GetSurfaceData: Very small surface area[9.16905E-004], Surface=F73533B3C6894C67936B_GLZP_380. 81. ** Warning ** GetSurfaceData: Very small surface area[4.96186E-004], Surface=F73533B3C6894C67936B_GLZP_482. 83. ** Warning ** GetSurfaceData: Very small surface area[2.37373E-005], Surface=F73533B3C6894C67936B_GLZP_684. 85. ** Warning ** GetSurfaceData: Very small surface area[6.35824E-004], Surface=F73533B3C6894C67936B_GLZP_786. 87. ** Warning ** GetSurfaceData: Very small surface area[5.86549E-004], Surface=F73533B3C6894C67936B_GLZP_888. 89. ** Warning ** GetSurfaceData: Very small surface area[7.63765E-004], Surface=F73533B3C6894C67936B_GLZP_1090. 91. ** Severe ** GetSurfaceData: Zero or negative surface area[-8.09566E-004], Surface=F73533B3C6894C67936B_GLZP_1292. 93. ** Warning ** GetSurfaceData: Very small surface area[1.51701E-004], Surface=F73533B3C6894C67936B_GLZP_1394. 95. ** Warning ** GetSurfaceData: Very small surface area[9.29917E-004], Surface=F73533B3C6894C67936B_GLZP_1596. 97. ** Warning ** GetSurfaceData: Very small surface area[2.94451E-004], Surface=F73533B3C6894C67936B_GLZP_1698. 99. ** Warning ** GetSurfaceData: Very small surface area[8.03294E-004], Surface=F73533B3C6894C67936B_GLZP_17100. 101. ** Warning ** GetSurfaceData: Very small surface area[6.83026E-004], Surface=F73533B3C6894C67936B_GLZP_18102. 103. ** Warning ** GetSurfaceData: Very small surface area[9.29917E-004], Surface=F73533B3C6894C67936B_GLZP_20104. 105. ** Warning ** GetSurfaceData: Very small surface area[3.19851E-005], Surface=F73533B3C6894C67936B_GLZP_21106. 107. ** Warning ** GetSurfaceData: Very small surface area[7.63765E-004], Surface=F73533B3C6894C67936B_GLZP_23108. 109. ** Severe ** GetSurfaceData: Zero or negative surface area[-4.05899E-004], Surface=F73533B3C6894C67936B_GLZP_25110. 111. ** Warning ** GetSurfaceData: Very small surface area[6.35824E-004], Surface=F73533B3C6894C67936B_GLZP_27112. 113. ** Severe ** GetSurfaceData: Zero or negative surface area[-9.91146E-004], Surface=F73533B3C6894C67936B_GLZP_28114. 115. ** Warning ** GetSurfaceData: Very small surface area[2.70158E-004], Surface=F73533B3C6894C67936B_GLZP_29116. 117. ** Warning ** GetSurfaceData: Very small surface area[3.22781E-004], Surface=F73533B3C6894C67936B_GLZP_30118. 119. ** Warning ** GetSurfaceData: Very small surface area[4.67821E-004], Surface=F73533B3C6894C67936B_GLZP_33120. 121. ** Warning ** GetSurfaceData: Very small surface area[3.22737E-004], Surface=F73533B3C6894C67936B_GLZP_34122. 123. ** Warning ** GetSurfaceData: Very small surface area[2.65634E-004], Surface=4BDFD67E6D0E486796CC_GLZP_0124. 125. ** Warning ** GetSurfaceData: Very small surface area[4.70736E-004], Surface=4BDFD67E6D0E486796CC_GLZP_1126. 127. ** Warning ** GetSurfaceData: Very small surface area[3.42507E-004], Surface=4BDFD67E6D0E486796CC_GLZP_3128. 129. ** Warning ** GetSurfaceData: Very small surface area[5.89276E-004], Surface=4BDFD67E6D0E486796CC_GLZP_4130. 131. ** Warning ** GetSurfaceData: Very small surface area[1.91146E-004], Surface=4BDFD67E6D0E486796CC_GLZP_6132. 133. ** Warning ** GetSurfaceData: Very small surface area[9.71205E-004], Surface=4BDFD67E6D0E486796CC_GLZP_7134. 135. ** Warning ** GetSurfaceData: Very small surface area[4.34494E-004], Surface=4BDFD67E6D0E486796CC_GLZP_8136. 137. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.60159E-004], Surface=4BDFD67E6D0E486796CC_GLZP_9138. 139. ** Severe ** GetSurfaceData: Zero or negative surface area[-1.11946E-004], Surface=4BDFD67E6D0E486796CC_GLZP_10140. 141. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.41257E-004], Surface=4BDFD67E6D0E486796CC_GLZP_11142. 143. ** Severe ** GetSurfaceData: Zero or negative surface area[-8.21483E-005], Surface=4BDFD67E6D0E486796CC_GLZP_15144. 145. ** Warning ** GetSurfaceData: Very small surface area[2.65716E-004], Surface=4BDFD67E6D0E486796CC_GLZP_16146. 147. ** Warning ** GetSurfaceData: Very small surface area[4.84044E-004], Surface=4BDFD67E6D0E486796CC_GLZP_17148. 149. ** Warning ** GetSurfaceData: Very small surface area[7.12297E-004], Surface=4BDFD67E6D0E486796CC_GLZP_19150. 151. ** Warning ** GetSurfaceData: Very small surface area[6.14324E-004], Surface=4BDFD67E6D0E486796CC_GLZP_22152. 153. ** Warning ** GetSurfaceData: Very small surface area[8.88887E-004], Surface=4BDFD67E6D0E486796CC_GLZP_23154. 155. ** Severe ** GetSurfaceData: Zero or negative surface area[-9.89060E-004], Surface=4BDFD67E6D0E486796CC_GLZP_24156. 157. ** Severe ** GetSurfaceData: Zero or negative surface area[-1.14849E-003], Surface=4BDFD67E6D0E486796CC_GLZP_25158. 159. ** Warning ** GetSurfaceData: Very small surface area[4.00479E-004], Surface=4BDFD67E6D0E486796CC_GLZP_27160. 161. ** Warning ** GetSurfaceData: Very small surface area[6.63061E-005], Surface=4BDFD67E6D0E486796CC_GLZP_28162. 163. ** Warning ** GetSurfaceData: Very small surface area[1.09018E-004], Surface=4BDFD67E6D0E486796CC_GLZP_29164. 165. ** Severe ** GetSurfaceData: Zero or negative surface area[-2.49326E-005], Surface=4BDFD67E6D0E486796CC_GLZP_30166. 167. ** Severe ** GetSurfaceData: Zero or negative surface area[-3.17446E-004], Surface=4BDFD67E6D0E486796CC_GLZP_32168. 169. ** Warning ** GetSurfaceData: Very small surface area[8.60686E-004], Surface=4BDFD67E6D0E486796CC_GLZP_33170. 171. ** Severe ** GetSurfaceData: Zero or negative surface area[-2.48515E-005], Surface=4BDFD67E6D0E486796CC_GLZP_34172. 173. ** Fatal ** GetSurfaceData: Errors discovered, program terminates.174. 175. ...Summary of Errors that led to program termination:176. 177. ..... Reference severe error count=24178. 179. ..... Last severe error=GetSurfaceData: Zero or negative surface area[-2.48515E-005], Surface=4BDFD67E6D0E486796CC_GLZP_34180. 181. ************* Warning: Node connection errors not checked - most system input has not been read (see previous warning).182. 183. ************* Fatal error -- final processing. Program exited before simulations began. See previous error messages.184. 185. ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.186. 187. ************* EnergyPlus Sizing Error Summary. During Sizing: 2 Warning; 0 Severe Errors.188. 189. ************* EnergyPlus Terminated--Fatal Error Detected. 41 Warning; 24 Severe Errors; Elapsed Time=00hr 00min 1.51sec190.…
Ruby, [9] R, [10] PHP ,[11] MATLAB [12]
Maybe it can find it's way into GH somehow..
when using the default GH random number generator i mostly use much higher seed values.…
Added by Robert Vier at 10:08am on December 27, 2012
stributes structural supports for a uniformly loaded domain using e.g. the internal energy of the loaded domain as fitness. Here the uniformly loaded domain is represented by the trimmed surface. My genomes are the support positions (green crosses), which are restricted to a set of predefined grid points. I’m currently using an (i,j)-coordinate indexing for these grid points (illustrated in the viewport just below) as opposed to a sequential , “one-dimensional” numbering (illustrated in the viewport further down).
(i,j)-indexing systemAltenative, sequential indexing system
The support positions are computed by two gene pools; one governing the i-index, Gene List {i}, and one governing the j-index, Gene List {j}, of each support. The value of slider 0 in Gene List {i} is paired with the value of slider 0 in Gene List {j} etc. and the amount of sliders corresponds to the amount of supports. The screen shot below depicts the slider constellation corresponding to the support distribution depicted above. Unfortunately the j-index represented in the sliders needs remapping as the number of j-indices vary for each i-index (horizontal row of grid points). With the current setup I have 12^6 x 9^6 = 1,6 x 10^12 different genomes. If I were to use the sequential, “one-dimensional” numbering, I would only use one gene pool with sliders ranging from 0 to 76 meaning that remapping could be avoided and thereby having only 76^6 = 1,9 x 10^11 different genomes.
So, my current genome setup causes a bunch of issues related to the Evolutionary Solver: Remapping Changing one of the j-index sliders, will not necessarily change the related support position but it will still facilitate another genome to be calculated by the solver. (This problem could be eliminated by using the sequential, “one-dimensional” numbering)
Switching slider values around If the values of e.g. slider 0 were to be switched around with the values of slider 5, this again would yield a new genome but an identical solution. (This problem cannot be eliminated by using the sequential, “one-dimensional” numbering)
Coincident support positions Two or more supports may be located in the same position. (This problem cannot be eliminated by using the sequential, “one-dimensional” numbering)
I find it impossible to imagine the fictive “fitness landscape” of this problem and not only because of the multidimensional genome characteristic but just as much because of these listed, intertwined peculiarities. I’ve tried running the Simulated Annealing Solver as well, but my experience is that the Evolutionary Solver yields better results. To my awareness, the solver uses some kind of topographical proximity searcher. This is why, I think that the solving process itself benefits more from analysing the (i,j)-index system, in which neighbouring grid points hold more uniform topographical information than the sequential, “one-dimensional” numbering, which might have big ID-numbering gaps between neighbours. Have I understood this correctly?
Cheers…
he last nights, let me try to describe it:-disclaimer: I'm an industrial designer, my coding experience can be compared to your, when you were 4 year old :)-disclaimer 2: I did a picture at the end of the post that maybe explains more than my words
the component has 2 inputs (Start Value, End Value) and one output (Picked Value)
this phantomatic component (which I would refere to as "dynamic value picker") supports any amount of domains on every input -> it works as if they come grafted, from a "longest list" component
The component "at rest" shows only one slider -with question marks on both edges-
For every couple on inputs you connect (1 Start Value connection + 1 End Value connection) it would visually generate a new slider (exactly like a "number slider" component)main difference from the "number slider" component, this one would show the Start Value and End Value numbers at the edges of each thus generated slider
Right click -> edit on it would recall a window similar to the "number slider", with the main difference that only the first part of those options would be present (see attached image for clarity)Whatever slide accuracy you set, it will affect the whole "dinamic value picker" phantom component (if you set "integer numbers" and for any reason one or more inputs are "floating points numbers", the component automatically rounds the inputs to the best "Integer", and allows you only to pick integer numbers in-between)
If you suddenly change a "Start Value" or an "End Value" input, the affected slider/sliders in the component will try to stay as close as possible to the same % value they were before (example if the domain was from 5 to 11, integers only, and you first picked the value 8, the slider was exactly in position 50%: when you change the End Value domain to 21 the slider will set itself to 13 - yes, I picked an easy one lol )
When you first plug a couple of Start Value + End Value, the slider sets itself to Picked Value = Start Value
It could also be possible to supply negative values as Value End and positive values as Value Start: the slider let you pick a number on that domain regardless of the numerical order you use
Last thing, but it's just fancy imagination, if you zoom-in the output (Picked Value) connection dot, a little - and + appears (like in other common components), letting you add a new cursor to every existing slider (it could be possible to customize the color of the new cursor to avoid confusion)
This is the exact description of what I would ask to the lamp genie :)
I attach a pic I just did, in the hope to better explain myself: picture link
and of course thank you again for reading this long poem!
…