problem later) to fit more shapes that are otherwise won't fit in.
On the example below horizontal rectangle couldn't fit in but its rotated analog could and thus was placed in.
Later, when placed shapes are used to generate frames, because of this rotation, the position of the starting points changes and because of the approach I use to generate the frames some angle values are attached to the wrong corners, this brakes the frame shape and looks like this (on the left the frame of sick shape and on the right the frame of the healthy shape):
Again, this happens because the angle values are assigned to the specific corners (points) and previously rotated shapes get these all messed up:
Easy fix, don't rotate the shapes, problem is, I've already baked a good number of them for later use. I'd like to avoid regeneration because it takes a lot of time and without rotation I constrict the algorithm even more.
Better fix, use a different approach, this is where I'd like to hear suggestions and kicks in a right direction. Please take a look at my definition. It works but I have a feeling like giving an amputee a job of sweeping the floor.
…
ns. but first allow me to explain what i'm trying to do: i have a serial device i want to talk to, but i have to do it using some sort of handshaking. for instance, when i send a command/data, i need to wait for an appropriate response before sending another. i have used andy payne's general serial components from firefly, but i don't think they'll work for what i want to do, and in general, i want to know how to do this from scratch. i'm using the pyserial library to do the comm, and i can get it to work within one script. here's an example of a working (mostly) port open/close script (x=input param for baud, y=input param for port name, z=boolean input param for open/close):
import serialmyPort=serial.Serial()myPort.baudrate = xmyPort.port = yif z == True: try: myPort.open() except: print "Something went wrong. Cannot open port." if myPort.isOpen() == True: print myPort.name + " is open" if z != True: try: myPort.close() except: print "Something went wrong. Cannot close port." if myPort.isOpen != True: print myPort.name + " is closed"
this all works well and good. here are my questions:
1) I can open the port and then close it. however, if i try to re-open it, i get an access denied error. it seems rhino is holding the port open, as i have to re-start rhino to get it working again. i read through the discussions and didn't see any definitive answers to this problem. any advice?
2) I'd like to share this port with other components (or at least break up the functions of opening/closing the port and read/write, not unlike how the firefly components are organized), but i have no idea how to share an object instance between components. i did see that there is a sticky dict and tried to add myPort to it, but i kept getting errors in the other component when i try to use the object's methods. for instance:
Component 1 Script:
import serial
import scriptcontext
myPort=serial.Serial("COM4", 9600)
scriptcontext.sticky['myPort']=myPort
Component 2 Script:
import serial
import scriptcontext
myPort=scriptcontext.sticky['myPort']
print myPort.read()
but i get messages like:
Runtime error (MissingMemberException): 'Serial' object has no attribute '_port_handle'
any assistance would be greatly appreciated!!
best,
~BB~…
creating the structural frame, finding the endpoints, linking these endpoints with curves and afterwards lofting the surfaces between the curves.
The results were quite nice, however, the procedure is very time consuming and inefficient. There is just too much copy-pasting involved.
(see attached file: "Old Attempts.zip" )
Mesh relaxation:
I have later on used Daniel Piker's tutorials on Mesh Relaxation and realized that this might be the way to go.
The link to these online tutorials on wewanttolearn.net is:
https://wewanttolearn.wordpress.com/2011/10/22/mesh-relaxation-kangaroo-tutorial/
His tutorials, however, only deal with mesh boxes which are ideal cubes. He then joins them together in various directions, but it is under 90 degrees angle.
( see attached file: "Daniel Pikers Examples" )
What I would like to achieve:
I want my bridges to go in all directions and angles, not just under 90 degree angle.
Ideally I would like to make a square (polygon) follow a curve (which moves in all axis) at certain number of division points. I would then loft these squares into a mesh and use that shape as a mesh box. I would later use this mesh box and relax it the same way as Daniel Piker used the cubes in his tutorial. The anchor points are only the vertices of the squares which create the lofted mesh box.
( see attached file: "New Attempts" )
As you can see below this procedure works even if the curve is moving in all directions not only along xy axis. There are, however, many problems connected to it.
The problem:
Despite all the effort I cannot seem to come up with a design where I would be able to draw a random curve which would be the guideline for my mesh box and then apply this box to one definition in order to relax the mesh and create the shape that I want. Without this I am again forced into a lot of copy pasting as the final mesh box is made out of several sections.
Also is there any way I could make the final resulting mesh a bit smoother? Increasing the number of mesh faces is probably the only way, right?
Thank you guys so much for any potential help.
All best,
Luka
…
phere with the maximum number of triangles but not much than a defined threshold.
I scaled that mesh just to fit Rhino grid, but it is not mandatory. What is useful, is to scale not uniformly the mesh (Scale NU). It could be done after cellular modifier applied or before or before and after. The 3 options are possible in the script. If you don’t need them just put 1 in scale sliders.
Ellipsoid mesh is the populated with points, I put 2 independents populations to randomize a bit further. For each vertices of the mesh the closest distance from the populated points is calculated.
Here is an illustration in color of this distance.
This distance is then used to calculate a bump. If domain for bump is beginning with negatives values to 0, it carves the mesh. Instead it bumps/inflates it.
Some images to illustrate the difference with populating 100 points with one or two populations.
Here some images to illustrate the application of scale before carving or after.
Next phase apply noise. At the moment I don't find it good.…
to host the annual parade of Samba Schools during the Carnival festival. For the remaining 361 days of the year it stands empty and desolate as a massive dividing wall within its degraded urban context. Renovated in 2012 and now the future site for the 2016 Olympic marathon finish line and archery events, the Sambadromo is receiving renewed international attention, but it drastically needs to accommodate new types of programme and improve its connection with its surrounding context. AAVS Rio de Janeiro will explore ways to intervene within and transform the Sambadromo, with a potential focus on the VIP and Press Rooms ‘camarotes’, which were originally designed to house classrooms when Carnival was not taking place, and are now the site for over-commercialized, under-designed temporary installations during Carnival, and abandoned throughout the rest of the year. Teaching team:The teaching team will be led by Elena Manferdini, from Atelier Manferdini (www.ateliermanferdini.com), to teach and use advanced digital design and fabrication to generate iterative transformations in the creation of new micro-infrastructures. Computational and fabrication skills: The workshop will teach advanced computational design skills. A series of physical models will be built using digital fabrication techniques, such as laser-cutting and rapid-prototyping, that will be taught during the workshop. No previous digital or fabrication experience is needed. Applications: http://www.aaschool.ac.uk/STUDY/VISITING/rio http://rio.aaschool.ac.uk/2015-aa-marathon-runway-sambadromo/ or mail brazilvisitingschool@aaschool.ac.uk…
stems, wonderful)
- Michael Hansel, Techniques and Technologies in Morphogenetic Design
(a series of early articles and essays)
- Anne Save de Beaureceuil and Franklin Lee,
Articulated Ground Mediating Environment and Culture
(Students work from the AA where parametric design is linked with environmental and social strategies)
- Richard Hawkins, The Blind Watchaker
(Evolution re-created and "proved" through the computer to be linked with Galapagos)
- Janine M. Benyus, Biomimicry
(didn't read it yet but apparently really good, anyone?)
- Frei Otto: Finding Form
(a classic)
- Deleuze & Guattari: Rhizome
(another classic)
…
noji@gmail.com>) was my student, came to build the design in 1:1 scale. One AA teacher helped her with the Bend curve and used Kangarro. I simplified the script, if you need to see my project umbrella(http://www.grasshopper3d.com/forum/topics/umbrella-porject?xg_source=activity) made to study the script. Contact her that will have updated information. My email: artagent@yahoo.com
…
Introduzione a Grasshopper", il primo manuale su Grasshopper.
.
I corsi PLUG IT nascono dalla volontà di promuovere le nuove tecnologie digitali di supporto alla progettazione e condividere il know-how maturato attraverso ricerca, collaborazione con i più importanti studi di architettura e pubblicazioni internazionali.
.
Verranno introdotte le nozioni base di Grasshopper approfondendo le metodologie della progettazione parametrica e le tecniche di modellazione algoritmica per la generazione di forme complesse. Il corso è rivolto a studenti e professionisti con esperienza minima nella modellazione 3D e si articolerà in lezioni teoriche ed esercitazioni.
. Argomenti trattati:
- Introduzione alla progettazione parametrica: teoria, esempi, casi studio - Grasshopper: concetti base, logica algoritmica, interfaccia grafica - Nozioni fondamentali: componenti, connessioni, data flow
- Funzioni matematiche e logiche, serie, gestione dei dati - Analisi e definizione di curve e superfici
- Definizione di griglie e pattern complessi - Trasformazioni geometriche, paneling - Attrattori, image sampler
- Data tree: gestione di dati complessi - Digital fabrication: teoria ed esempi - Nesting: scomposizione di oggetti tridimensionali in sezioni piane per macchine CNC
.
Verrà rilasciato un attestato finale.
.
Ulteriori info e programma completo su: www.arturotedeschi.com e su www.samilolab.it…
uired information, a poor representation of data evolve misreading messages and by turn ambiguous responses especially with complex data. Inforgraphics are graphic visual representations of information, data or knowledge intended to present complex information quickly and clearly. In the nowadays flow of complex information, Infographics is the key for optimized visual communication. The use of infographics is an important step towards developing a pedagogical approach that draws on visuals where 90% of Information is transmitted to the brain so it is crucial to tickle the optic nerves to get people excited about data. The workshop investigates how computational tools can aid in designing and controlling complex information to be easily understood in addition to improve cognition by utilizing graphics to enhance the human visual system’s ability to see patterns and trends and much more likely to be remembered in today’s fast – paced environment. This workshop investigates multiple computational tools and techniques of developing coefficient visualization of data types including; network, statistical and hierarchal data. The workshop objective is to reconsider visual representation a promising design tool for architects, artists and designers. /// Application To apply, please follow this link to fill the application form https://docs.google.com/forms/d/1HOv6c1_LzhHNJU5n_FLvuhC-Yg75HDfbEcq6TN6mulI/viewform /// Fees 1200 EGP for students / 1500 EGP for graduates and young professionals more info on the workshop webpage: http://www.encodestudio.net/#!infographics/cqvl
POSTS
…
ike using something like the Z vector, but technically you can use any vector you want. This vector will actually determine the static rotatation of all the planes, so you can control that here if you like. One important thing that I've noticed is that the closer the vector is to the plane of the curve or if its too similar to one of the tangent vectors, the more likely you'll have "flipping"
2) Take the cross product between the tangent and the static vector. This will be your first perpendicular vector, which you can use for the X component of the plane.
3) Take the cross product between the tangent and the result of the previous cross product. Use this result as the Y component of the plane. All three components (X, Y, and Z (which is the tangent vector)) are all perpendicular to each other now.
After you've done that you should have planes that decrease twisting. If your curve is not planar, then there will always be some twisting in the frames, but it will be minimal enough to use them effectively.
There also may be "flipping" within the frames, which means one (or both) of two things. First, you could have planes that have reversed their vectors, so the X vector is properly oriented, but pointing down when it should be pointing up. Second, the X and Y vectors could have potentially swapped, so that Y "should" be X and X "should" be Y. In order to check these things, you'll need to do a few tests. The first one is find out whether the vector (X or Y) of the plane your testing is pointing in the opposite direction of previous vector. The second test is to find out whether the vector (X or Y) of the plane your testing is perpendicular to the previous vector. In both cases, an angle test between the two vectors will be able to tell you what you need to know, but you will likely NEVER get exactly 180 for an opposite test or 90 for a perpendicular test. That means that you have to choose a range with which to determine that a given vector is opposite or perpendicular.
You should start testing the X vector to see if anything is wrong. If you find that the X vector is fine, then just move on because Rhino will only allow you to create right handed planes, and the Z vector (the tangent) will always be the same.
I don't believe that there's a native function within the old dotNET SDK for calculating angles, so use the example at the link below. It basically takes the arcCosine of the Dot Product of the two vectors your testing to return the angle in Radians. I'm not sure if this function is included in RhinoCommon or not....
http://wiki.mcneel.com/developer/sdksamples/anglebetweenvectors…