DesignScript now available for download from Autodesk Labs

I'm really excited about this. A new programming language and environment for AutoCAD is now available for download on Autodesk Labs (and here's the announcement on Scott's blog, in case, and you should also be aware of this login/download issue – something I just ran into myself).

Way back when, I helped integrate the initial incarnation of DesignScript – although at the time we were using its working name, D# – inside AutoCAD. The father of the language, Robert Aish, was put in touch with me on October 17th 2008 and by the time I headed for Las Vegas on November 30th we had a working prototype (which was good enough to demonstrate at the Design Computation Symposium and even to be included in a video shown during the AU 2008 mainstage presentation). It was quite an intense period, believe it or not.

Here's an old screenshot for chuckles:

D# demo for AU 2008

It was a really interesting project: working with Robert was a great experience, and we managed to create a demo app that had its claws deeply into AutoCAD in many areas (aside from a nice UI-level integration, we made heavy use of transient graphics for performance purposes, for instance).

A lot has clearly happened since then: professional language designers have become involved in the project, creating a design-centric, multi-paradigm (which in this case means primarily associative and imperative) programming language. A team of coders have created a core implementation that works extensively with AutoCAD geometry (as opposed to the small number of types we delivered with the initial demo).

I'm really looking forward to taking this version of DesignScript for a spin and posting a few samples on this blog. While it's ultimately a technology that's targeted at problems that would benefit from algorithmic or computational design – and mostly in the AEC space – I suspect that it could also be used more broadly. We'll see!

In the meantime, here's a quick snapshot of DesignScript inside AutoCAD 2013 (you need to be running the 64-bit version to install the Labs release) with the script from "Tutorial 1" loaded and executed:

The all new DesignScript with the 1st tutorial script loaded and executed

10 responses to “DesignScript now available for download from Autodesk Labs”

  1. is this another GeneritiveComponent?

  2. Hi Kean,

    Is it language a new wrapper for ObjectARX? Which object model it used? What reasons of creation of this language? Is it for Windows only, or no?

    Regards

  3. There are similarities, in that Dr Aish was also the person responsible for the creation of GC for Bentley. But it's quite different in approach (from what I'm led to believe - I'm not familiar with GC, myself). It's probably fair to say Dr Aish has applied the knowledge he gained from the implementation of GC in his work on DesignScript (i.e. I'd expect it to go beyond what is possible with GC).

    Kean

  4. Hi Andrey,

    Deep down the connection to AutoCAD geometry is performed via ObjectARX, but this is much more than a simple object model abstraction layer. It's the language's associativity - and how that works with respect to AutoCAD geometry - that really makes it stand out.

    I'll follow up on Monday with an explanation of some key differences between DesignScript and what is currently available in AutoCAD.

    I'm pretty sure this is Windows only, yes.

    Cheers,

    Kean

  5. since VSTA never happened, does Autodesk see this as its replacement for VBA? Does autodesk feel a gap is left by VBA's exit?

  6. Hi James,

    I don't know about the positioning around VBA, that's not my world. 🙂

    However, DesignScript was built from the ground up with the idea of supporting people creating interesting geometries.

    As such, it's optimised for a slightly different set of concerns than an application automation language. So I would see it as a complement to things like VBA or AutoLISP, one more for exploration than automation.

    Having said which, one of the useful features of DesignScript is that it provides an easy interaction layer with anything .NET/C#/VBA.NETish. So where's there's an automation API, we should be able to drive it through DesignScript 🙂

  7. Is DesignScript exposed through any .NET APIs? Is it strictly a scripting language or does it also provide methods for user input?

  8. Good questions... my understanding of the vision for DesignScript is that its "exploratory" nature should at some point be extended to dynamic manipulation of DesignScript variables. So you may have some kind of in-canvas gizmo or UI that would allow you to adjust variables and see the results on your model in real-time.

    As for interfacing with .NET... I don't think it will in the way you're asking, but there will be a Foreign Function Interface (FFI) as Luke has mentioned that allows you to interface external systems with DesignScript via .NET. But that's more integrating systems to provide data (as we've done with Ecotect) rather than allowing .NET apps to drive DesignScript.

    Again, that's my understanding of what's possible (or expected to be, at some point).

    Kean

  9. Hi Kean,
    Interesting stuff this DesignScript, especially since I am working on a similar concept, for AutoCad 2013, and having met Dr Aish many years ago in a London based introduction to GC, this spurned me on to do something for ACAD.

    I do have a question here, which bears some relevance to your statement about heavy use of Transient Graphics, and one on which I am completely stuck: Why can we not create a Transient Polyline3d? I really need to be able to draw transient 3d polylines, and it seems impossible to do.

    Hope you can shed some light.
    Regards
    John.

  10. Hi John,

    I suspect it's because the Polyline3d object is still a "complex" one (which means it's composed of multiple sub-entities, whereas the Polyline object is a streamlined version of the complex equivalent, Polyline2d). Creating and managing temporary Polyline3d objects would probably end up being trickier than expressing your own 3D object in terms of smaller linear (or curved) sections.

    I've done something similar in the past, jigging a 3D polyline as individual segments before creating a final Polyline3d in the drawing database:

    keanw.com/2011/04/enhanced-kinect-integration-for-3d-polyline-creation.html

    Regards,

    Kean

Leave a Reply to james Maeding Cancel reply

Your email address will not be published. Required fields are marked *