algorithmic modeling for Rhino

Chris Wilkins
  • Male
  • Clemson, SC
  • United States
Share on Facebook
Share on Facebook MySpace

Chris Wilkins's Friends

  • Joe Redwing Miranda
  • Matthew Tanti
  • Earl Washington
  • Hironori Ohtoshi
  • Khizer Ishtiaq
  • Mar Ferrer
  • Fernando Rial
  • Senad Gvozden
  • Matt
  • Arturo Tedeschi
  • Ben Fortunato
  • Gregory Epps
  • tommy
  • Ryan Freeland
  • Yiorgos Deaftone

Chris Wilkins's Groups


Chris Wilkins's Page

Profile Information

Chris Wilkins's Videos

  • Add Videos
  • View All

Comment Wall (19 comments)

You need to be a member of Grasshopper to add comments!

At 6:04am on February 21, 2011, Hironori Ohtoshi said…
Thanks for your message. I joined your circle last Friday; and that image was my first uploaded one executed with rhino + grasshopper. I have been using this fascinating software since last October; and I also like to enjoy the circle…
At 5:51pm on February 14, 2011, Benjamin Golder said…

And you should look for any .net compatible implementations of the proj4, gdal, ogr, and geos libraries, because they can do most anything you might want, as well as  ton more.

These would allow you to read and write virtually any gis data (shapefiles, raster images, kml, geoJSON, etc.) as well as to perform geospatial processing and easily deal with different projections and geographic coordinate systems.

In other words, someone has already written open source code to do most of what you or I would want, and I'm starting to think that I should just learn to work with ogr instead of working on my shapefile reader.

At 5:43pm on February 14, 2011, Benjamin Golder said…

2. convert each ShpFeature (a python class I created to hold each feature in the shapefile) into Rhino Geometry

 - for this step, I created a set of functions that I will post to GitHub in the next week (these functions could certainly be expanded, especially for multi-patch shape features which are sort of like meshes). When I do that, I can update the shapefile reader code as well

 - The associated dbf table data for each feature should probably be stored in some attributes. So far I've used the UserString data in Rhino.DocObjects.ObjectAttributes, but something else might have to be figured out for Grasshopper, since it doesn't use DocObjects (I'm starting to feel like Grasshopper should just have ObjectAttributes as a basic data type or something similar).

to help understand the code, you might want to check out theESRI shapefile specification.

At 5:41pm on February 14, 2011, Benjamin Golder said…

Hi Chris,

I think it would be great if you converted my python code to VB.NET. You'll have to basically rewrite the python classes I made, as well as the functions for converting shapefile features to rhino geometry. There are dependency issues as well, because I am using specific Python libraries along with the dbfUtils module. You might want to seek out some appropriate substitutes within the .NET framework for reading byte data from binary files and for reading dbf files.

To convert shapefiles to rhino geometry, I divided the process into two steps:

1. using a python class to read the shapefile and then easily access it's various information. The class is instantiated using a file path to a shapefile:

s = Shp.ShpFile("/some/readable/path/to/a/shapefile.shp")

list_of_ShpFeatures = s.records

in the constructor method of ShpFile, it reads the whole shapefile using some nested methods for reading 


At 10:30am on February 8, 2011, Benjamin Golder said…

Yeah, we're basically importing shapefiles and converting them to Rhino geometry. I should update the shapefile code and add the Rhino converter to GitHub. The finches component, at this point, does not include any GIS-related functions, and is primarily for batch processing along with some other creative possible uses. In order to make a grasshopper component that reads shapefiles, I either have to convert all the shapefile reading code to C# or find a way to embed ironpython in a grasshopper component.


In terms of dealing with shapefiles and GIS, I would suggest looking into Geodjango and the OGR/GDAL library. I'm learning about it now, and it has some very easy ways of dealing with GIS data. You can use Python to run all of it, which is really nice.


KML is just one among many text formats used to describe geospatial data, and I haven't worked with it much, but GeoJSON looks a little nicer to work with, as does WKT.


Unfortunately there's still no easy-to-use GUI  for GIS that is very affordable (in my opinion). But if you're a student ArcGIS is free for one year, and can do probably anything you would want.

At 3:39pm on January 16, 2011, Fernando Rial said…
Thank Chris, I´m working on it. By now in the good direction. I´ll you know about the result.
At 1:04am on January 12, 2011, Fernando Rial said…

Hi Chris,


Thanks for getting back to me. I wrote about this post: as I was trying to make something similar. I finally downloaded the definition, but it was exactly was I was looking for. 

I started a discussion yesterday about what I´m trying to do:

Mirco Bianchine replied brilliantly to it but I still don´t know how to separate the romboids from each other. I guess it is making a offset of the griven 4 point surfaces towards the interior of the surface and have that surface as a target surface for the box morph.

I´ll give it a try a post what I have.


Thanks for your help,



At 1:28am on June 16, 2010, tommy said…
thanks Chris,
i rendered with hypershot 9 for windows and vray 1.5 for rhino (sphere render).
At 1:57pm on May 10, 2010, Irene Scudellari said…
Congratulation! no problem enjoy your holiday I will sort it out!thanks
At 1:11pm on May 10, 2010, Irene Scudellari said…
Thanks Chris,

I don't know scripting and I have to design this bridge ASAP. The fact is that my bridge plan is based on a rhombus shape and is also partly curved..just to make things easier!!

I am using as radius of the sphere the distance between the centre of the sphere and the point that I should obtain by intersecting the sphere with a plane, or I could use the diagonal equations. Is that right? It doesn't work very well though, when the two circles intersect the surface sometime disappear. I am still a bit confused about the folding geometry.





  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service