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~…
.
Today we have gone live, and the plugin is available on Food4Rhino. You will find an installer package, sample files, and a demo video on getting started:
http://www.food4rhino.com/project/human-ui
Visit the Bitbucket Repo and poke around in the code:
https://bitbucket.org/andheum/humanui
Check out today's coverage in Architect Magazine:
http://www.architectmagazine.com/technology/nbbj-releases-human-ui-to-bring-parametric-modeling-to-the-masses_o
Finally join our group and ask any questions or post any comments here:
http://www.grasshopper3d.com/group/human-ui
See below for detailed description!
----------------------------------
Human UI
Primary Development by:
Lead Developer: Andrew Heumann / andheum / @andrewheumann
Product Manager: Marc Syp / marcsyp / @mpsyp
Contributing Developer: Nate Holland / nateholland / @_NateHolland
Gone are the days of faking a user interface by laying out sliders and text panels and hiding wires on the Grasshopper canvas. Human UI interfaces are entirely separate from the Grasshopper canvas and leverage the power of Windows Presentation Foundation (WPF), a graphical subsystem for rendering user interfaces in the Windows environment.
OLD NEW
In other words: Human UI makes your GH definition feel like a Windows app. Create tabbed views, dynamic sliders, pulldown menus, checkboxes, and even 3D viewports and web browsers that look great and make sense to anyone--including designers and clients with no understanding of Grasshopper.
Human UI has been in development at NBBJ for over a year, as part of a larger NBBJ Design Computation initiative to deliver our tools internally as Products -- with fully automated installation, managed dependencies, analytics, documentation, and “magical” user experience. Human UI has been a huge component of the user experience part of this puzzle, and we are excited to share it with the larger Grasshopper community so that others can benefit from it and contribute to its development.
The initial release of Human UI is accompanied by a few simple examples to get you started, but we have developed sophisticated user interfaces with these tools at NBBJ and will slowly be rolling out more advanced examples. We also look forward to opening up the development to the community and seeing what new features and paradigms we can add.
Download the plugin at Food4Rhino and get started building Custom UIs for Grasshopper right away! We are happy to answer any questions or field discussion in the dedicated Grasshopper Group. Please join us!
Join the Grasshopper Group
http://www.grasshopper3d.com/group/human-ui
Download the plugin + sample files
http://www.food4rhino.com/project/human-ui
Visit the Bitbucket Repo
https://bitbucket.org/andheum/humanui
We look forward to seeing where this project takes you, please share your projects made with Human UI!
Sincerely,
Design Computation Leadership Team, NBBJ
…
t the maximum potential with the bridge BIM+PARAMETRIC DESIGN ;D
During this Intense Week, we will learn about the power of Rhino + Grasshopper + ArchiCAD with Professional and Useful examples for our Normal Working day :D
You will get Advanced Library Files + Personal Web + Knowledge and Skills to start using this incredible Methodology ;D
Also, the week is having Lectures from different Experts sharing their Computational Working Experiences ;D And Jam Sessions! opening the door to 5 interesting topics to research, learn and experiment together :D
2020 is your YEAR ;D !!!
Complete details and registration……
hopper no requiere de conocimientos de programación o scripting para permitir al diseñador trabajar de forma generativa y paramétrica. No son necesarios conocimientos previos de Grasshopper pero sí de Rhino a nivel básico.
Controlmad es Centro Formador Autorizado Rhinoceros y Rhino fab Studio.
Nuestros profesores son Instructores Autorizados Rhinoceros con experiencia universitaria, nacional e internacional.
El curso y los ejercicios a desarrollar están enfocados a diseñadores, arquitectos, ingenieros y estudiantes.
En este curso introductorio el alumno se familiarizará con términos básicos de la estructura de Grasshopper, como “listas de datos”, “dominios”, “estructuras en árbol”, etc.
Es un curso de 18 horas, con el que se pretende entrar en la lógica de trabajo de Grasshopper mediante diversos ejercicios, de forma que el alumno sea capaz posteriormente de desarrollar sus propias gramáticas, con la confianza que da comprender los términos básicos de programación sobre los que se apoya todo el sistema de trabajo de Grasshopper.Para este curso no son necesarios conocimientos previos de Grasshopper, pero sí de Rhino (a nivel básico).
También se vincula el programa con la impresión 3D aprendiendo a exportar archivos desde Grasshopper con los requisitos mínimos de impresión 3D. Se realizará una demo de impresión en el aula.
El primer día del curso se le facilita al alumno un manual-tutorial con los ejercicios a realizar, en PDF.
A la finalización del curso, y siempre que el alumno haya asistido al 80% de las clases, se le otorgará un diploma oficial acreditativo del curso.
Fechas: 5, 6, 12 y 13 de marzo
Horario: sábado y domingo 16 - 20,30h (Madrid, CET)
Lugar: Sesiones On-line en directo a través de nuestra plataforma online.controlmad.com
…
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
…
ur setup. Can you say what sensor you are using? Are you using an Arduino to write this ascii information to the serial port? If so, there may be some formatting code for the string that you'll need to do to get the Read component to function properly. I see that you were able to open the port and Start reading... so my first thought is that the data is formatted correctly....
All of the read components look for a specific character (in this case two characters) to indicate when it has reached the end of the line being read and should spit out the data. In this case, Firefly uses the Carriage Return (\r) and Line Feed (\n) to know when it has reached the end of the line. In arduino, these are automatically added to any line if you use the Serial.println("blah, blah, blah"); command. Notice, this is different from the Serial.print("nothing to see here"); command. This doesn't mean that you can't still use the regular print command... it's just you need to use the println command to indicate when you've reached the end of the line. Let's take a look at a simple example.
void setup() { Serial.begin(9600);}void loop() { int sensorValue = analogRead(A0); Serial.print("The value of the sensor is: "); Serial.println(sensorValue);
delay(20); // important to wait some small time so you aren't sending just a ton of info over to GH which will cause it to crash :(
}
The first print statement prints a string to the serial port... and the next one adds the current sensor value... and THEN adds the carriage return and line feed to start a new line. The nice thing about using these together is that you can concatenate any type of data you want. If you were to upload this sketch, you should see a sentence being printed to the serial port that says "The value of the sensor is: 512". I made up the number, but you get the idea. Notice, I also had to include a delay function. You don't always need this (there are other ways to go about this) but the important thing to note is that the loop cycle on the Arduino can run really fast. I mean... really fast. So, you wont want to send so much data over to GH, because this could flood the string buffer in the Read component and cause it to crash (eventually). It's a good idea to add some small time interval just to slow it down a bit. I should say that I've optimized the refresh rate in the next release so it's significantly faster... so hopefully this wont be as big of a problem... but hopefully that helps some.
Now... Why are you writing data to a sensor? Sensors by default are considered inputs... so I'm quite confused as to why you would want to send data back (if you are... then you need some way to handle the string data being sent from GH... this is the whole reason we built the Firefly firmata... it sets up the two-way protocol so you don't have to deal with all of that mess... If you're going to read and write, you're better off just uploading the firmata and using the Uno Read and Write components). Also, I'm not very familiar with the Hyperterm or Advanced Serial Port Terminal... but I will say that could get COM conflicts if you're trying to open the port with different tools. Anyway, I hope some of this helps you get up and running.
Cheers,
Andy
…
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
…