algorithmic modeling for Rhino


Industrial robotic automation has become commonplace in manufacturing and has been integrated into a wide range of processes from meat-packing to Tesla’s vaunted robotic assembly line for its Model S electric car. While architectural manufacturing has more recently implemented this technology, the conventional means for programming robotic motion have proven ill-suited to the architectural design process for two primary reasons:

  1. They are better suited for mass production than mass customization

  2. They are not directly linked to the CAD model, meaning variation and iteration must be performed manually through an export/import process

Historically it’s been critical for designers to maintain open lines of communication with construction personnel and fabricators to successfully realize their collective vision. This course will seek to improve these lines of communications while rectifying the architecture-specific issues outlined above through a data-driven parametric design workflow which integrates upstream analysis, geometric modeling, and downstream robotic toolpathing into a single live definition, allowing for a direct relationship between initial data inputs and robotic motion.

A mass-customized architectural assembly will be proposed, simulated, and prototyped using HAL-generated ABB RAPID code to drive the ABB IRB 140 industrial robotic arm’s IRC5 controller. This assembly will be a series of vaulted shell structures constructed from thin plastics such as high impact polystyrene (HIPS) sheets. In order for such a thin material to span the structure, stiffness (or an improved resistance to deflection under load) must be considered at both the local level of the panel’s shape and the global level of the shell’s form and panel-to-panel connections. Stiffness will be added to the HIPS panels by testing heat-based deformation of the plastic, such as creasing and stretching to create depth along the spanning axis and induce double-curvature.

Each robotic technique may require its own end-of-arm tooling as well as custom molds and jigs, which is very costly. Clustering methods and genetic optimization algorithms will be implemented in the panel rationalization process to control variation.


Views: 2201

Replies to This Discussion

I faced with a "normal problem" due to my surface design. Normals on top of my surface and bottom of my surface facing opposite ways. This caused problems with TCP and robot. The robot tries to keep defined position of the tool, but when the plane normals turned upside down robot cannot reach to that position or crash itself. We solved that problem with a little change. Basically, selected planes with negative normals and flipped these planes for a more consistent robotic move. 


I am having issues with reaching targets. It may be an issue with the way that the robot is turning around to loop back to follow the toolpath. I've attached the .gh file and screenshots. 

Hello All,

I am having an error with my Hal script for the Light pavilion. Please see image attached. I believe it has to do with the rotation of the robot arms. Do I have to set up the robot rotation tolerances similarly to how we did in the first assignment drawing script?

Any help would be appreciated!


I am having similar issues. Even with a simple surface the IKSolver is throwing errors when I switch to code generation. The errors occur at the start and stop points of the robot movement. 

Hey Wayne and Adam,

At a glance this is an issue caused by extreme movements, hence the error "joint no.X is executing a reor of XXX degrees". The quickest fix here is to use the Toolpath Interpolator from the Robotics>Base tab or to subdivide your own curves into more segments. This is one of those errors that's due to machine constraints but those are the limits of your tools so it's important to abide by them. 

If that doesn't work let me know.

Having HAL Licensing issues. I paid for the license, and pasted the file in my HAL components directory. The defined tool is giving me this error:

"1. Your license is not covering ABB RAPID compatibility.To get more informations about HAL commercial packs, please go to, or contact us at"

I hope you've solved this by now but if not try popping the licence file into the HAL folder rather than the Libraries root.

I have only 2 errors with my waypoints and I couldn't figure out how to fix it. First, I tried to remove that specific point and custom plane with "cull item" but it didn't work. Then I tried to rotate the custom plane, which gives me an error, but again, it didn't work. We tried to start the code with these two errors and "Point 1" error didn't effect the robot, but when it comes to "point 284" the robot stopped. 


I tried 4 different surfaces and even a simple plane is not working.


I'm having the same errors, even with a simple plane. The 2 points of concern are at the start and end of the surface. I tried to build the surface into the beginning movement of the robot so no abrupt movements and rotations are being made, but still have an error at the start and end of the surface.

Hello Brian,
I have few questions,
1- I tried to add a 45 second pause at the point where the robot presses down to the pegs but it doesn't show in the preview how can i make sure if it is working?
2- I would like to change the speed of movement at different zones for instance it should move slower on the heating plate and relatively fast between transitions and slower again while pressing down. how can i do this?
3-  There is also a problem at the very end, the robot moves too quickly I am guessing it is because i only added the endpoints of the last vertical segment of the path and there is a long distance between the end points so the robot might be trying to go between two points really fast is this what is happening or is it fine just the preview shows it funky? 
Thank you






  • Add Photos
  • View All

© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service