r visual programming tools in the games world. MS's Kodu, looks interesting. Kismet and Visual3d look even more interesting..... mainly because they are more 'interactive' or 'reactive', rather than DAG-based.
Seems like the evolution path for GH-similar apps is:
1. base 3d or CAD app based on C/C++ code.
2. Add scripting language interface
3. Add some kind of visual interface
4. Add graph sorting / propagation engine
5. Re-jig base 3d or CADD app to make managed/interpreted scripts run faster, multi-threaded.
6. Add dynamic typed language, DLR stuff
6. ....
6. Add constraints solver...?
7. Rebuild CAD display engine to be procedural at the GPU level?
Seems like there are available tools for converting scripts into some kind of flowchart. There are even visual debuggers. MS even has something called the 'Debugger Canvas'. Spreadsheet constraints.
Seems like the time is ripe for lots of new apps like GH.
…
ectly in grasshopper (drawing a curve on top of a line with different angles), i did the curve shape in rhino and import it into grasshopper.
i'm having a problem where some of the sine curve shape can orient or map onto the triangle surfaces nicely, but some of them do not. whenever i try to orient the shape onto the bottom portion of the icosahedron, the shape becomes 'negative', forcing me to flip the lines before offsetting and patch (i am using loft method) or else it will become a weird loft (image 3).
i have tried several different ways to orient the ones that worked (orient 3d in rhino, rotate 3d etc.) and still could not get them to work.
the reason that i want them to face in the same direction is so that i can use WB thicken and make sure they extrude in the same direction. i have tried to unify the normal faces in grasshopper and still it is not working.
does anyone have any idea why or how can i do this? your help will be greatly appreciated. i am fairly a beginner in GH so if there is any other easier method to do this will also be great :)
…
ase of resource and energy consumption identify significant developments of our time. Against this background and in the context of sustainable fairness to future generations, there will be a greater focus on energy and ressource efficient building structures.
This interdisciplinary course aims to lay the foundations of a „force based design“ through theoretical input lectures and presentations. Varying examples will show that the efficiency of structures depends largely on the flow of forces within the structure. Possible optimisation strategies will be discussed in the light of material saving and their impact on architectural form.
This course will introduce you to the use of digital analysis and optimization tools. You will learn to deal with three-dimensional parametric software (Rhinoceros 3D, Grasshopper, Sofistik, Karamba, GeometryGym, Kangaroo).
Finally, the knowledge acquired will be applied and developed in designing a pedestrian bridge or a slender tower.
Participants will be able to recognize the effects of forces as design parameters. They will recognize the potential of building geometry in the context of architecture and resource-efficient designs.
Information » Application deadline 15 May » Course duration 18 - 30 August » Course language English » Target Groups Master students, graduates, doctoral candidates and young professionals » Requirements basic knowledge of 3D parametric software is recommended » Course fee 490 € (100 € discount for students and alumni) (290 € discount for students of the Bauhaus-Universität Weimar)
Lecturers » Prof. Dr.-Ing. Alexander Stahr - HTWK Leipzig » Dipl.-Ing. Christian Heidenreich - Bauhaus-Universität Weimar » B.Sc. Martin Dembski - Bauhaus-Universität Weimar
Guest Lecturers » Dipl. Eng. Arch. Simon Vogt - Transform Engineers, Hamburg » Dipl. Bauingenieur FH Nico-Ros-Zeile - ZPF Ingenieure, Basel (CH)…
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
mber of ways, and how they are represented will dictate the final outcome.
2)If you use rectangles a question for area would be how do you dictate the ratio between the width and length? It may be easier to use circles or rather simple points with a specific charge attached relating to required area, think of the metaball component in 2d or using an isosurface in 3d (I recommend Daniel Piker's Aether plugin). So do you want something orthogonal or more amorphous?
3)Means of creating adjacency: I think for the best results you will want something that operates recursively. Hoopsnake, Octopus, Loop all allow you to create your own recursive loops, however, you might find that using something like circle/sphere packing within kangaroo will give you the desired results. In the case of Kangaroo, the spheres can be given different volumes and the connective network treated as springs to push and pull things together.
4)At this point you will have your basic geometric relationships, start simple and build up. You will want to go back and embed more intelligence into the script pulling in new parameters and inputs to relate to the given context (orientation, sun angles, topo of site, vertical arrangement, circulation). Here you may add new forces to the kangaroo to create a repelling force or attraction to certain areas.
5)Once you have this all in place it is time to flesh out the model, floor plates, partition, aperture, etc. This can be done strictly in GH native. Your primary challenge is establish believable connection between the recursive solver and the forces and output, not an easy task, but very doable.
Good luck, …
ive input but I have no clue how to begin doing this. I've read about using Processing and have even tried something with Processing but it didn't work for me.
I haven't had any luck finding step by step tutorials on inputing data with the 'read file' tool either. I have a feeling that just knowing how to import data would help a lot but the only examples I've found didn't work for me.
I'll be honest though, when it comes to programming and code, I'm an idiot and at a very beginner level. However, once I have working code to study and play around with, I pick up pretty quickly. I've done this with some of the GH definitions I've found and had some good results.
Basically, it's been very difficult and frustrating since I've spend literally 4 weeks trying to figure this out. Like I said, I'm not good with code! Fortunately I've had a little bit of help from the GH community and am very thankful. With any luck, maybe some other people on here would be willing to help out a couple students working on a thesis project? We don't have money but could exchange fabrication services for your help with code or definitions. We have access to a 3 axis CNC mill, Laser Cutter and FDM printer.
Thanks for your time (and hopefully your help),
Matt.
…
to problems. If anyone wants to take a look at the attached file "605b-3" and try to help me, that would be awesome.
The way I'm thinking about creating the louvers:
1. Contour the shape (could be any shape, but I attached the one I'm trying to do it to)
2. Divide those contour curves
3. Find the 4 points on those curves that are furthest away from the center of each curve
4. Move those points slightly away from the center of each curve
5. Replace the unmoved points with the moved points
6. Interpolate/NURBS curve through the new list of points
7. Loft the new curves with the original contour curves
I think I'm close, but I'm getting stuck at the end- I thought shifting lists would be the best way to solve my problem, but I'm a little confused as to how grasshopper is organizing the list of new curves and how to match that organization to the original curves.
Attached is an image of where I am stuck. I can only create a surface in the gap that I'm trying to create by the louvers. Either that, or one or two of the curves tends to create a "tornado" looking thing and i can't figure out how to fix it without individually breaking up the list. Is there a way to set all the curve seams to be at the same location in a list?…
ry branches would be an added bonus.)
I had an idea of using contours to find the center point, then connecting these found center points to create my centerline. However, I am facing a few challenges... specifically, I do not know how deal with splits in the tree branch.
I think I have an idea for how to deal with this, but I am not skilled enough (yet) to execute. The whole idea would look like this:
1) create a list of contours through the tree branch
2) connect the center points of the contour lines
3) when a single contour produces two separate polylines (when the tree splits), AND the previous contour produces only a single polyline, divide the list into two new lists starting at that contour.
4)when a single contour produces two separate polylines, AND the previous contour also produces two separate polylines, draw a polyline between the closest pair of centroids.
Has anyone run into this (or something similar) before? And, is this a good way of going about it?
The attached script is incomplete, but has the oak tree branch internalized.
I have been struggling hard with this....Any help would be greatly appreciated!!
Thanks,
Ethan
…
Added by Ethan Davis at 8:55pm on September 4, 2017
erona, nei giorni 01,02 e 03 dicembre 2016.
Il comfort visivo e la gestione dell’illuminazione naturale in relazione al risparmio energetico diventano sempre più rilevanti per una progettazione innovativa degli edifici. Ad esempio, il nuovo protocollo LEED 4 riconosce crediti per le simulazioni di daylighting e conferma l’importanza degli aspetti progettuali per “collegare gli occupanti con lo spazio esterno, rinforzare i ritmi circadiani, ridurre i consumi di energia elettrica per l’illuminazione artificiale con l’introduzione della luce naturale negli spazi”. Senza strumenti software per la simulazione della luce non è possibile ottenere risultati di qualità. Radiance è un software validato, utilizzato sia a livello di ricerca che dai progettisti ed è tra i più accurati per la simulazione professionale della luce naturale e artificiale. Non ha limiti di complessità geometrica ed è adatto a essere integrato in altri software di calcolo e interfacce grafiche. Queste ultime facilitano le procedure di programmazione. Le principali e più versatili saranno oggetto del corso (DIVA4Rhino e Ladybug+ Honeybee, plug-in per Grasshopper e Rhinoceros 3D).
Il corso è rivolto a progettisti e ricercatori che vogliano acquisire strumenti pratici per la simulazione con Radiance al fine di mettere a punto e verificare le soluzioni più adatte alle proprie esigenze. Sono previste lezioni di teoria e pratica con esempi ed esercitazioni volte a coprire in modo dimostrativo ed interattivo i concetti trattati.
Le domande di iscrizione devono essere presentate entro il 16 novembre 2016.
La brochure con i contenuti del corso e tutte le informazioni sono disponibili su questo link
Il corso è sponsorizzato da Glas Müller.…
This is the actual reason I'm going through all this. I want to develop an algorithm that can be applied consistently and produce good results.
Here is a a little background. I'm working on my master's thesis in structural analysis. My thesis is on seismic behaviour of a roman temple in Portugal. I will be using a method of analysis suitable for block structures called the discrete element method. I am using a commercial code called 3DEC for this.
Now in order to the analysis I need to construct a 3D block model of my structure. I received a 3D scan of the entire structure (in *.wrl) format and spent a week trying to clean it up and slice it into the blocks that make up the structure. Now I want to use the scanned geometry of the blocks and describe a simplified prism around each that will represent the block in my analysis. I've attached a file with one of the columns in the temple. I think (at least with my tests so far) that it is representative of the all the blocks I'm dealing with.
Now my criteria for creation of the blocks:
I would like the contact area between the blocks to be as close as possible to the actual drum contact area,
I would like to get the volume of the blocks to be as close as possible (secondary to the contact area) to the volume of the actual drums in order to insure that the weight distribution in the structure is as close to reality as possible,
I would like the shape of the contact area to be as close to reality as possible
I order to satisfy all these requirements, I've done the following in my grasshopper file:
I take a section at the top and bottom of each of the drum meshes. I use this to extract the contact outline at the top and bottom of the drum. This is sometimes problematic and requires me to clean up the model and remove features that interfere.
Next I take each surface and try to fit a minimum circle around it. I try to do this because in my mind this is the best possible way to find the actual centre of the drum when there is cut outs and deterioration. This works well as long as more than half of the contact surface is still in its circular shape (third block from bottom in the example file doesn't satisfy this requirement and thus causes problems).
Knowing the centre, I use an algorithm I created in VB to search for one of the flutes on the contact profile. My ideas is that if I can find one of the flutes, I can then find the others by just going around at 30 degrees (there are 12 flutes) and find the location of all the flutes. In the VB code I've tried to explain my algorithm so I won't explain it here. I also think this algorithm is needlessly complicated and stupid as I'll explain later.
Once I've got one of the flutes, I just find the intersection of a line with at every 30 degrees with the outline curve.
Having all (12) points around the perimeter, I use an loop to scale the shape around the centre of the circle I found in step 1 to get the area within a tolerance value of the actual contact area (satisfying requirement 1). I was using HoopSnake before, but it required resetting every time so I decided to write my own thing.
I then connect the points on both top and bottom to get a solid block.
Now the problems are as follows:
Sometimes the algorithm doesn't find the best location as the starting point. As I said an important thing is that the circle is tangent to the flutes and that is true only if the column profile is larger than a half-circle.
The software I use requires convex blocks. I've tried to remedy this by using convex hull component before step 5 to insure the surfaces are convex.
I'm having issues sometimes with the alignment of top and bottom points. I think I just need to implement a component that sorts the points around a single basis so that there is no twisting.
I've been experimenting with convex hull as a general approach for defining the corner points, but I'm having problem take the convex hull curve and breaking it into a 12 sided polygon, preserving as much as possible the location of the flutes and the general shape of the contact surface.
I'm really sorry about the long post and complicated question. I hope someone can give some pointers on what I could try. I understand that this is not an easy question and that it is more a question of doing something rather than asking about grasshopper itself. My goal is to have an algorithm that I can explain as a general method for others to use in the future when dealing with these structures. This is only a small minor part of my thesis (the analysis is what is important) but it is taking a lot of time to figure out.
If you have any other questions, I would be more than happy to provide a better explanation. In the file I have created a region with all my input parameters. You can choose a different mesh from that point and change various settings. I hope that is self-explanatory.
Thanks for all your help,
Ali
BTW: I'm really sorry for the poor way I've done this stuff so far. I'm not a programmer and apart from some small macros in Excel I don't know much about this stuff. To add to that, I've just started with Rhino and Grasshopper about five days ago after almost pulling out all my hair trying to do this with AutoCAD!…