algorithmic modeling for Rhino

So here's one - create a Delta Bot mechanism using as few components as possible.

Basically recreate what you see in this video:

A delta bot has 3 arms - each arm has 2 segments. The first segment (the shorter one) rotates in one direction about a fixed point. This rotation is generally limited to 0-180 degrees. The longer segment can rotate freely at the "elbow" (like a socket joint). All 3 arms converge at a single point (where an end effector would be). To generate this point I referenced a curve from rhino and I move the point along the curve in grasshopper.

I did it in 9 components (including the method of creating the point on the curve and piping the lines at the end).

The length/sizes of your arms can be whatever you would like. Just for reference my short segments are 1.5 inches and long segments are 3 inches. 

Rules are that it must be GH native with no scripting. Deadline is monday the 26th at midnight (pacific time).

let me know if you have any questions!

Views: 1670

Replies to This Discussion

bump to the top of the list

done with 12 components, not counting params and panels for numeric input.


Not sure if this was just a simulation or whether we were supposed to drive the delta bot from the rotation of the small arms.


Hi Brian, from the other's replies I can see I was on the right lines. Thank you very much for this question it was very enjoyable.

Glad you liked it!

after what I've learnt today this is my final gholf code submission: 10 Components in all including crv param and pipe


Not sure how many components this is... not very many, but I added a few steps to have a circular standoff at the end for a head attachment (instead of going straight to a point).  Anyway, here's a quick video.


Hi Andy,

you can reduce that further :) (see attached)

Just curious: Why did you use a Mesh for the intersection?


Hi Danny,

Thanks for the suggestions... You're right that it wasn't the most elegant solution and should have been cleaned up a bit.  To be honest, I built a version of the delta bot last summer, but was in a bit of hurry at the time and kind of rushed through the solution.  I used a mesh/curve intersection because I thought it would be faster (more efficient) than a surface/curve intersection.  Neither are probably the 'correct' way to go about it because it's likely slower than other methods in general... but like I said I was in a hurry.   I just thought I would post my file (after deleting most of the unnecessary parts) for others in case they were interested... but your file is more efficient.

I'm curious (and I know this is a little bit against the challenge rules for this one), but I'd be curious to see what the most elegant scripting way to do this would be (perhaps without intersections).  I've found that scripting most things will lead to faster solution cycles, and since this would ultimately be used to control a few servos, to get them to run smoothly (slower solution cycles lead to jitter or pauses in the motor movement) you need a solution which could run as fast as possible.  Anyone got a scripting solution for this?


I agree, I think every question should be answered in three Categories: Native, Plug-in and Script.

Mainly because it's impossible to stay on top of all the Plug-ins available and it would be nice to showcase what their benefits are. Also scripting is by far my weakest side in grasshopper and to see a script version of what I have tried to achieve in grasshopper would contribute a huge gain in my learning curve.

I just made a scripting version of this (based on Danny's definition... but just doing it inside a script)  It's still pretty messy, so I'd like to clean it up a bit, and I haven't done the outputs for the servo angles... but I'll try to look at it a little more and post when I can.


I dont know how it could be shorter ;/

10 not including sliders and inputs : point and curve to draw







  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service