Scripting Salon #4: notes

We met at Doma, a coffee shop in the West Village. Very pretty place, crowded but manageable (secured a table fairly easily), but alas it provided no wireless connection and there were no neighboring open networks! So I think we will push for Brooklyn next time.

In attendance: Adam, Che-wei, Marc, and myself.

Discussion was wide-ranging, touching lightly on all kinds of interesting ideas and people. I’ve made a list of whatever I remember (which is most of it, since I took notes). The only in-depth discussion, I would say, concerned the curriculum for Adam’s and my arch 213 class at Pratt. Che-wei and Adam both think Maxwell is probably the best renderer for the students to use, because of its ease-of-use, particularly the light mixing (variable lighting is baked in to the rendered file, so that you can play with it *after the fact*). We discussed trying a “field-effect”-based project for the middle of the semester, leaving the detailed interior rendering assignment for the final. We also discussed the importance of using interiors/thresholds that the students can really document well themselves. I.e. perhaps we will allow only real spaces in the city, rather than architectural gems they can only access through published drawings and images.

On working with agents to generate geometry: C-W suggests I check out Roland’s “KAgent“, which I had meant to do before (when Roland mentioned it to me) but forgot about.

On web-hosting: C-W uses an outfit called CWI, which he says guarantees 100% uptime (!). He says it’s up way more consistently than MediaTemple (which he’s also used).

On Rhino:

  • Adam recommends checking out the ArchCut plugin for doing nice sections.
  • I ask about deformers in Rhino, and am told that “Splop”, “UDT Tools”, and “CageEdit” are all worth checking out (start with CageEdit, methinks).
  • Adam is considering using TSplines in his class, since there’s a 30-day demo the students could use.
  • Marc says there is now a way to script with Python in Rhino! Must check it out… note: it appears to be only via COM, which is probably not worth the trouble (I find almost no references with cursory searching on Google and
  • Marc also says he’s running into many performance issues with VBScript in Rhino (i.e. the native Rhino scripting), so he is looking around for alternatives. He’s trying to decide between and Python, it seems.  We had a hand-waving discussion while sitting in the cafe, but now I have some better material for you Marc:
  • is primarily intended as a language for creating user interfaces for desktop programs.  It’s an application development platform.  It’s very well connected with all kinds of Microsoft automation stuff, but its users are mostly guys in large software companies doing interface work, I believe.
  • Python is primarily intended for web and non-GUI work (i.e. smaller stuff, cross-platform), and is designed to be lightweight/flexible and easy to learn.  It is a very general-purpose language because it has all the object-oriented features of larger languages.  It also happens to handle text manipulation very well — much better than VB — and I think this makes it a much better choice for you because I think you will be wanting to output Rhino macros from your code, right?  Python will make this a total breeze. will make it somewhat painful — you will not be using for the purposes it was designed for.
  • re. the “resuming” of a loop after an error/exception, yes, seems to have this feature, which is fairly surprising (I’ve never heard of this kind of thing before), but in fact if you handle your exceptions correctly in your code, you can basically duplicate this functionality in any exception-handling language, and python does this fine.
  • So basically, go with Python!!!! It has a much more experimental community, even if there aren’t a lot of geometry-heads using Python out there yet.
  • I wonder if Marc is actually thinking of generating the rhino commands (macros, I guess) from the other code, so that he can do more complicated stuff faster? Here’s a python example of that: kite design.
  • On ITP, wearable computing, pneumatics:

    I asked Che-wei whether there were any “Smart Home”-style work there might be at ITP, and he said two classes would be worth checking out: “Metaforms” (taught by Dana Karwas) and “the Softness of Things” (teacher unknown to me at present). He also suggested I check out the X10 system of “smart home” components – they are hackable, apparently. Che-wei is in a “wearables” studio this semester, by the way, and is working on an air-muscle-driven harness for the lower body, to help you “run faster, jump higher, etc.”. Can’t wait to see the outcome!!! We got talking about pneumatics in general and apparently Home Depot uses pneumatic tubes in much the way I saw them used at IKEA in Elizabeth, NJ — to check personal cheques. Che-wei mentioned another indoor delivery system he’s seen, a very thin conveyor belt that runs around the wall and into which you can drop thin things like envelopes, which stand upright as they slide around the room. Also on the topic of wearables, he mentioned Neil Girshenfeld’s work at MIT, but I think he meant this: MIThril . They are building linux-based wearable computers in handy components (processor separate from memory separate from screen). Must check it out in more detail…
    On AutoCAD and scripting:

    I have to give a lecture this semester that introduces scripting in our primarily AutoCAD-based drawing class at Pratt. AutoLisp as a formal tool is apparently very slow and, of course, considered arcane. For logistical stuff in AutoCAD, Marc says people seem to be using VBA to work between Excel and AutoCAD. The gentlemen reminded me of Scriptographer, too, which is something I should certainly check out for the lecture — much more accessible than automating CAD, no?

    4 comments to Scripting Salon #4: notes

    • Thks George. I was looking around to try to find information about how to use Rhino with Python and came up mostly empty handed. The link you gave seems to use Python outside of Rhino, and only binds to the program via commands that it generates that you have to run at the command line. Would be interested to know if there is any info floating around about an implimentation of Python within Rhino

    • George

      I couldn’t find anything either on that. But in fact there is a lot to be said for just generating the rhino commands from python, if you can keep all the geometry straight until that moment of output.

      But it’s very tempting to check out Maya now that python is available for it.  I just read a bit about the latest Maya (8.5) and I have to admit it’s pretty intriguing.  Here’s a list of general new features, which include better node-level control stuff, as well as python support and the ability to run on Mac OS X!

      Ever since Autodesk bought Maya I’ve been wondering what they would do with it, given that they also owned Max.

    • Hi George,

      Great to see this interest on rhino + python ( jungleboogie? ).
      I’ve developed a package to program rhino from python that really works very well.
      Also it allows you to write more OOP code ( think srf.Area() instead of RS.SurfaceArea(srfID) ).

      Get in touch if you’re interested. I hope to publish to project some time soon on a google code page.



    • Hi Georg,

      Great to see you guys have taken an interest in Rhino + Python (jungleboogie?) as well.
      I’ve developed a module that allows one to program rhino from python in a more OOP fashion ( think srf.Area() rather than RS.SurfaceArea(srfID) ). Though you really seem to miss an important point concerning python. Python is the sole language I can think of that _scales_. Not only in the sense that both novices and experts program in python, also in the sense that it scales from a 4 line shell script ( shocking to see how much can be done in those ) to large scale distributed FEM apps, running on cray computers. Let me know if you’ve got an interest in the project. I’ll try and set up a google code page shortly.



    Leave a Reply




    You can use these HTML tags

    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>