, Engineer and Researcher from France with broad programming experience. He is the author of the City in 3D Rhinoceros plugin for creation of buildings according to geojson file and with real elevation. Guillaume already created a new component: "Address to Location". It enables getting latitude and longitude values for the given address:
2) Support of Bathymetry data: automatic creation of underwater (sea/river/lake floor) terrain. This feature is now available through new source_ input of the "Terrain generator" component. Here is an example of terrain of the Loihi underwater volcano, of the coast of Hawaii:
3) A new terrain source has been added: ALOS World 3D 30m. ALOS is a Japanese global terrain data. Gismo "Terrain Generator" component has been using SRTM 30m terrain data, which hasn't been global and was limited to -56 to +60 latitude range. With this addition, it is possible to switch between SRTM and ALOS World 3D 30m models with the use of source_ input.
4) 9 new components have been added:
"Address To Location" - finds latitude and longitude coordinates for the given address.
"XY To Location" - finds latitude and longitude coordinates for the given Rhino XY coordinates. "Location To XY" - vice versa from the previous component: finds Rhino XY coordinates for the given latitude longitude coordinates. "Z To Elevation" - finds elevation for particular Rhino point. "Rhino text to number" - convert numeric text from Rhino to grasshopper number. "Rhino unit to meters" - convert Rhino units to meters. "Deconstruct location" - deconstructs .epw location. "New Component Example" - this component explains how to make a new Gismo component, in case you are interested to make one. We welcome new developers, even if you contribute a single component to Gismo! "Support Gismo" - gives some suggestions on how to make Gismo better, how to improve it and support it.
5) Ladybug "Terrain Generator" component now supports all units, not only Meters. So any Gismo example file which uses this component, can now use Rhino units other than Meters as well. Thank you Antonello Di Nunzio for making this happen!!
Basically just forget about this yellow panel:
This panel is not valid anymore, so just use any unit you want.
6) A number of bugs have been fixed, reported in topics for the last couple of weeks. We would like to thank members in the community who invested their time in testing, finding these bugs and reporting them: Rafat Ahmed, Peter Zatko, Mathieu Venot, Abraham Yezioro, Rafael Alonso. Thank you guys!!! Apologies if we forgot to mention someone.
The version 0.0.2 can be downloaded from here:
https://github.com/stgeorges/gismo/zipball/master
And example files from here:
https://github.com/stgeorges/gismo/tree/master/examples
Any new suggestions, testing and bug reports are welcome!!…
Added by djordje to Gismo at 5:13pm on March 1, 2017
via MIDI controllers.
my idea is to link PureData to GH via UDP. why pure data? cause' i can relate data like GH to generate numeric relations (and link it to audio generation)
so far i got PD and Processing to talk, but i can't get to grasshopper.
i use this definitions to make pd and processing to talk http://ubaa.net/shared/processing/udp/ and this GHX to get the data to GH http://www.grasshopper3d.com/forum/attachment/download?id=2985220%3...
i got this data from this post but the GH definition doesn't work for me. i have tried LAN definitions and "the engine" as well but they both freeze, even if i send data thru processing or PD.
i have a lot of questions at this time
1.- why processing tells me that i am getting the data from diferent ports, while i'm using 6000?
2.- why in the UDP definition i get no data out, even if it should say something like "waiting fordata/port/etc.." that's defined in the C# capsule
3.- is there a direct way to get midi data (key and CC) to GH
i also tried to use firefly to get the data via COM port. i know you can do this trick in processing but i just don't know how.
well. if anyone could help me i would share the results here (since it's a magister, results shoud be very interesting)
UDP has allways been a unsolved issue on other posts. maybe we could work it out ;)
Thanks…
Added by jota aldunce at 8:43am on September 28, 2010
as mine but couldn't manage to make it work.
The following script was working on the python module in Rhino, but not in Ghpython.
Note that I have imported a library, and it seems to be importing on Ghpython
--------------------------------------------------------------------------------------------------
from khepri.rhino import *
def iterate_quads(f, ptss):
return [[f(p0, p1, p2, p3)
for p0, p1, p2, p3
in zip(pts0, pts1, pts1[1:], pts0[1:])]
for pts0, pts1
in zip(ptss, ptss[1:])]
def iterate_hexagono(pts, n, v):
return iterate_quads(lambda p0, p1, p2, p3: hexagono_quad(p0, p1, p2, p3, n, v), pts)
def hexagono_quad(p0, p1, p2, p3, n, v):
def chapa(pts):
return intersection(extrusion(line(pts), 280), shape_from_ref(v.copy_ref(v.realize()._ref)))
#return extrusion(line(pts), -40)
topo = intermediate_loc(p3, p2) + vx(distance(p3, p2)/4 * n), intermediate_loc(p3, p2) - vx(distance(p3, p2)/4 * n)
base = intermediate_loc(p0, p1) + vx(distance(p0, p1)/4 * n), intermediate_loc(p0, p1) - vx(distance(p0, p1)/4 * n)
lateral_esq = intermediate_loc(p3, p0), intermediate_loc(p3, p0) + vx(distance(intermediate_loc(p3, p0),intermediate_loc(p2, p1))/4 * n)
lateral_dir = intermediate_loc(p2, p1), intermediate_loc(p2, p1) - vx(distance(intermediate_loc(p2, p1),intermediate_loc(p3, p0))/4 * n)
conex_1 = intermediate_loc(p3, p2) - vx(distance(p3, p2)/4 * n), intermediate_loc(p3, p0) + vx(distance(intermediate_loc(p3, p0),intermediate_loc(p2, p1))/4 * n)
conex_2 = intermediate_loc(p3, p0) + vx(distance(intermediate_loc(p3, p0), intermediate_loc(p2, p1))/4 * n), intermediate_loc(p0, p1) - vx(distance(p0, p1)/4 * n)
conex_3 = intermediate_loc(p0, p1) + vx(distance(p0, p1)/4 * n), intermediate_loc(p2, p1) - vx(distance(intermediate_loc(p2, p1),intermediate_loc(p3, p0))/4 * n)
conex_4 = intermediate_loc(p2, p1) - vx(distance(intermediate_loc(p2, p1),intermediate_loc(p3, p0))/4 * n), intermediate_loc(p3, p2) + vx(distance(p3, p2)/4 * n)
return chapa(topo), chapa(base), chapa(lateral_esq), chapa(lateral_dir), chapa(conex_1), chapa(conex_2), chapa(conex_3), chapa(conex_4)
s = prompt_shape("Escolha superficie")
v = prompt_shape("Escolha solido")
iterate_hexagono(map_surface_division(lambda p:p, s, 5, 15), 0.5, v)
---------------------------------------------------------------------------------------------------
I imported the geometry from another cad software, and then I would select the surface and solid to perform a pattern iteration on the surface to be constrained inside the solid as a internal structure.
The problem is that the surface comes with u, v and normals all weird from the other software so I wanted to pass it through Grasshopper so I can get more control and also perform other computations on Gh on the Ghpython output. Sorry, maybe I’m over complicating. All I want is the Gh inputs working on Ghpython.
I’ll attach the Gh definition,. Need help with the Ghpython component, the rest is just me fooling around.
When I try to run the sript in Ghpython I get:
Runtime error (MissingMemberException): 'NurbsSurface' object has no attribute 'realize'
Traceback:
line 39, in map_surface_division, "<string>"
I'm also attaching the module I've imported
Any help will be very appreciated and sorry about my english
Thanks!
…
ding is not for the faint of heart and is quite a significant understanding. However, I don't know what your dealing with, so that may be the way to go about it.
Your component if its "finished" has to supply some sort of results that are then used downstream. AFAIK there isn't a way to "prevent" down stream components from calculating until your finished. They have to get some sort of information or else they'll just be waiting. Considering how the results of those components are likely to be invalid until the information gets calculated, it may be better off supplying them with nulls until you have some actual information to give them.
Anyway, I think that you should think very closely about the structure of your routine, and specifically how it will interact and update itself. The way I'm thinking about it now is that there really isn't anything that's done in the "solve instance" function if you will. Essentially the "solve instance" function would either A) start the reading of the file if no data is found, or B) output some data if it is found. This is an extreme undersimplification, but the simpler you keep this the more likely this will work. Here are a few more "details", i guess, of how I could see this potentially working...
Thread A - Initial call to Solve Instance function
+ Check and see if there are any results that exist from reading your file - at this point there shouldn't be. These results should be stored in some sort of class variable that is accessible to both threads. It might also be a good idea to have some boolean flag that will also be accessible that represents whether your reading/writing those variables.
+ Fire a function in another thread that begins the read process. Note that you'll likely have to do this through a delegate and an invoke call, but I'm not 100% sure
+ Fill in some null values for the variables you must supply
+ Output the nulls, thus finishing the Solve Instance function
Thread B - File Read Function running in separate thread
+ Open up the file. Note that its probably a good idea just to pass the file path (as a string) between the different threads. Leave the creation of the file/text stream to the one thread that's using it.
+ Perform all the necessary reading from the file
+ Copy all your data to the variables that are accessible to both threads.
+ Expire either the solution on either the component in question or (at last resort) the whole canvas. I know expiring the whole canvas is defenitely possible, but it should be possible to just expire the one component that's doing the reading.
Thread A - "Second" call to Solve Instance after being manually expired
+ Check and see if there are any results that exist from reading your file, which there now should be.
+ Output those shared results
+ Clear the last results (or cache them in some way) so that the next time the Solve Instance function is fired, you don't find any results and reread the file.
I think there are a few variations to this that could happen too, including having a separate function for reading and writing through the data that's called using its own delegate/invoke call to make sure that its extra safe.
If you haven't already, you should really look into event driven programming, delegates, and asyncronous messaging. These are going to be the 3 things that you'll need to have a decent hold on to make sure this things works. Just to let you know, debugging these things can be a bitch.…
ght on why this is, and some ideas I have for how to improve things going forward.
MeshMachine grew out of some scripts I started developing over 3 years ago (described here), originally just with the aim of achieving approximately equal edge lengths on a smooth closed triangulated mesh.
As time went on, I kept adding things, such as ways of keeping boundaries and sharp edges fixed, different ways of controlling edge lengths that vary across the surface, and different ways of pulling to surfaces.
I was also still experimenting with different rules for the core remeshing operations, such as valence driven vs angle driven edge flips.
All of these things meant many variables in the script. I wanted to share the work so others could play with it, but not really knowing exactly what people might use it for made it difficult to simplify the interface, so I just exposed most of these variables I was using (actually there were originally even more, but I felt a component with 20+ inputs was excessive, and combined some of them and fixed others to default values).
I've never been happy with that component, but some people want a component that you can just feed a surface and get a mesh with 'nice' triangles, without too much fuss or needing to know anything about how it works, while other people want to be able to vary the density based on proximity to the border, and curvature, and attractor points and see the intermediate results, and model minimal surfaces without pulling to any underlying surface, and...
Since then I did the rewrite from Kangaroo to Kangaroo2, and through that process, and associated conversations with Steve Baer, David Rutten and Will Pearson, my ideas about how to structure libraries and make cleaner more flexible Grasshopper components changed. Much of this centres around using interfaces (in the specific programming sense, not to be confused with UI), because they allow separating code into multiple components, while still allowing to edit parts of it within Grasshopper, and other parts in a proper IDE (because I find the GH code editor is not conducive to writing large amounts of well structured object oriented code).
Towards the end of last year, Dave Stasiuk and Anders Deleuran invited me and Will Pearson over to CITA for a few days of mesh and physics coding and beer drinking. During this time I made the first steps to restructuring MeshMachine to be more modular and interface based like Kangaroo2, instead of one giant script. One of the main motivations for doing this was to make it easier to combine the K2 physics library with the remeshing. However, at the time I hadn't yet released K2, so it didn't make sense to post examples that used those libraries. After the launch of K2, this restructured MeshMachine development has been a bit on the back-burner, but this discussion and Dave Stasiuk's work with Cocoon is inspiring me to pick it up again.
Seeing how you are combining the Cocoon and MeshMachine, and how Dave is also using interfaces in his recent work suggests to me it might be possible to integrate them more smoothly...
…
ly 26-27-28-29 (digital fabrication)
The third edition of digitalMed Workshop is structured as a design laboratory. Participants will learn the challenging process of producing ideas, projects and research analysis that are to be developed through specific software and concepts that emerge through the use of mapping, parametric design and digital fabrication.
The workshop will take place in the city of Salerno (Italy) and it will last 11 days structured into 3 intensive weekends: July 13-14-15 (mapping); July 19-20-21-22 (parametric design); July 26-27-28-29 (digital fabrication).
Goals and Objectives:
We aim to make clear the theoretical and technical knowledge in the approach to parametric and generative design and digital fabrication. (From collection and data management, to the manner in which these inform the geometries, to the fabrication of prototypes.)
Participants will also have the opportunity to practice the new knowledge gained in the design laboratory through project work.
Project Theme:
"Urban Field" Identify, study and analyze the system of public spaces in the urban area of the city of Salerno.
Connection, mutation, generation and evolution are the themes to be followed in project work.
Brief Description of Topics:
- Mapping. Our reality, in all its forms, has studied through concepts of the theory of Complex Systems. The techniques that will be used to study events and places of reality, will work for the management, manipulation and visualization of data and information. These will form the basis for project management and driven geometry, conducted during the second phase of the workshop.
- Parametric Design. Introduction to Rhino* and Grasshopper. Specifically, we will explain the concepts with which to work with the software of parametric design and how they function. Through these tools, we will arrive at the definition of systems of mathematical and / or geometrical relationships that are able to generate and govern patterns, shapes and objects that will inform the final design.
- Digital Fabrication. In this phase, participants of the workshop are organized into working groups. Participants have access to materials and conceptual apparatus that will take them directly to the fabrication of the geometries of the project, with the use of software CAD / CAM interface and the use of machines for the digital fabrication.
The DigitalMed workshop is organized by Nomad AREA (Academy of Research & Training in topics of Contemporary Architecture), in collaboration with the City of Salerno, the Order of Architects Province of Salerno and the National Institute of Architecture In / Arch - Campania.
Interested parties may download the Notice of Competition at the address www.digitalmedworkshop.com and fill the pre-registration no later than July 10th 2012.
PRESS OFFICE
Dr. Francesca Luciano
328 61 20 830
fra_luciano@libero.it
For information or subscriptions:
e-mail: info@digitalmedworkshop.com - tel: 089 463126 - 3391542980 …
Accidentally that was very close to some project that I have in mind (using solely C# and not components). On first sight I thought that that could be very easy ... only to discover that's not.
This definition is an over simplified version of the other mentioned (only a C# is maintained that does "preparation" work and some sort of naive "topology" checks: the yellow spheres are used as visual aids to the incompatible struts/R values combos).
You can control the 3 options available from that portion:
In a nutshell ... the Exo W behaves with an odd way (at least in my opinion). In order to get the gist of the issue stick to that portion of the def and forget the rest:
This portion of the def attempts to create an usual Exo mesh using a Line list (cleaned and user controlled as regard the min length) derived from exploded mini voronoi (i.e. brep edges). OK, I can understand the red Exo since due to the nature of voronoi breps there's more than possible the presence of small "struts" that may yield non manifold topologies.
But ... the thing is that Exo W is also red in the other mode (non Voronoi) where struts are quite big and no potential "engulfed" situations may occur:
And when the 2d Gate mode is set to Envelope ... there's cases (R values) where Exo W works as expected and cases that it doesn't.
Anyway ... if anyone has any bright idea, drop a world
best, Peter
…
project below- should I be learning Grasshopper & Rhino or just Rhino first?
I'm trying to panel modules with low tolerances- I've prototyped regular shapes like geodesics and am now looking to experiment with irregular shapes with lots of different panel shapes.
I understand some things are best done through Grasshopper when using Paneling Tools- I'm trying to figure out if I can do what I want to achive with PT alone or should do it through Grasshopper (or some other route).
I’m on the MAC WIP - The module was built in Sketchup - all the components seem to be in order as blocks though am having problems running the ptpanel3dcustom command - thinking maybe a bug in the WIP or something wrong with my input or that I imported the sketchup file the wrong way. (I dropped it in the window) - If the 3D command is run it doesn’t do anything - if 2D (ptpanelgridcustom) it crashes.
The tileing pattern - the green rectangle is a refrence. each tile contains 4 blocks with 3 more nested in each.
How the module tiles.
The other thing I'm trying to do is specify that most of the lines in the panels don’t bend/curve when they are paneled (or something like Cage Edited). For my purposes the length & angles can change while the lines must remain straight.
These images show a test tile to be panneled on a ellipsoid. When the tile is mapped to the grid the lines curve, this is an extreme example but notice allot of tiles far from the hemespheres are also bent slightly.
These two questions have me stumped the most for now. What should I look into get a better handle on these problem areas? Maybe I should try recreating the work on a windows machine? or perhaps I should get started with Grasshopper?
Thanks for reading.
Lu…
could represent at least three immaterial substances: his subconscious, the negative mass surrounding the sculpture and a parallel world where material is forbidden.
Has Architects' engagement with virtual space meant a vanishing sensitivity towards material and other immaterial realms?
The AA Rome Visiting School 10 day workshop encourages the observation of material elements and their use in the design of architecture featuring subconscious experiences, spatial voids and virtual communities. Students will investigate modern materials and their digital fabrication by direct experience. They will work with algorithms and sensors able to recognise and respond to human feelings and attitudes. Students will feed novel expressions of void spaces into the Roman tradition featuring examples like the ancient catacombs and the Nolli map. Through augmented reality design the projects will open a window into an digital virtual world.
By the end of the workshop students will unveil their interpretation of the material/immaterial form hidden in the real matter.
Applications
1) You can make an application by completing the online application found under ‘Links and Downloads’ on the AA Visiting School page. If you are not able to make an online application, email visitingschool@aaschool.ac.uk for instructions to pay by bank transfer.
2) Once you complete the online application and make a full payment, you are registered to the programme. A CV or a portfolio is not required.
All participants travelling from abroad are responsible for securing any visa required, and are advised to contact their home embassy early. After payment of fees, the AA School can provide a letter confirming participation in the workshop.
Fees
The AA Visiting School requires a fee of £695 per participant, which includes a £60 Visiting membership fee.
Fees do not include flights or accommodation, but accommodation options can be advised. Students need to bring their own laptops, digital equipment and model making tools. Please ensure this equipment is covered by your own insurance as the AA takes no responsibility for items lost or stolen at the workshop.
Eligibility
The workshop is open to current architecture and design students, phd candidates and young professionals. Software Requirements: basic knowledge of Rhinoceros or other 3D modeling software.
Venue of workshop: Galleria “Come Se”, via dei Bruzi 4, 00185 Roma, Italy
…
, that are specifically applicable to each site. We strive for intelligent abstractions of these local programmatic, climatic, and biotic conditions to inform the iterative development of digital models, resulting in a holistic and ecologically calibrated design. We are engaged in solo projects and multi-firm collaborations ranging in scale from experimental furniture to urban re-visioning.
We are located in Cincinnati, Ohio, a U.S. Rust Belt city currently experiencing rapid growth and strong momentum. The office is located in Cincinnati's Over-the-Rhine neighborhood, arguably the the largest, most intact urban historic district in the United States.
MMA is led by Michael McInturf, the current Interim Director of DAAP SAID, the University of Cincinnati's architecture school. DAAP SAID is hosting the 2015 ACADIA Conference.
We are looking for talented individuals to enrich our architectural practice, and to bring creative energy to our process of iterative design, computation, and 3D modeling!
The following position is available immediately:
COMPUTATIONAL EXPERT / ARCHITECTURAL DESIGNER
Desired Attributes:
Expert skills in Grasshopper (including Add-ons), familiarity with Rhino Plug-ins
Excellent conceptual and practical understanding of environmental analysis and parameters in architectural design
Experience defining geometric morphology with environmental inputs and climate analysis, in Grasshopper
Advanced modeling skills in Rhino NURBS
Excellent design sensibility and comfort with an iterative digital design process
Proficiency in Grasshopper data trees and various methods of tree mapping
Familiarity with Grasshopper optimization, evolutionary solvers, recursive definitions
Preferred knowledge of scripting/custom code within Grasshopper (using any of the following: VB.net, C#, or GhPython)
Familiarity with digital fabrication topics, such as understanding limitations (of materials, individual machines, axes, tool heads), generating tool paths, CAD/CAM, machine operation, etc
Requirements:
Architecture degree required, M.Arch preferred
1-3 years of architectural design experience required
Advanced knowledge of Rhino, expert knowledge of Grasshopper
Ability to effectively communicate with design team
Ability to efficiently design and 3D model iterative studies
Ability to efficiently prepare and use Grasshopper generative algorithms and their inputs
High proficiency in English
Please submit cv & portfolio (< 10 pages / 3MB) to: work@mcinturf.com
(We also have an opening for an Architectural Designer/3D Modeler. More information can be found on our website.)
_________…