JSON

  • It's time to talk about a little project I started over the holiday break: connecting Project Refinery – the optimization engine for Dynamo that will help drive Generative Design workflows – to Virtual Reality. It's a project I've been thinking about for some time, now, and was originally inspired by two things: the workflow Van Wijnen uses Refinery for makes heavy use of VR for visualization – to evaluate designs with internal stakeholders – but right now they export the geometry from Dynamo to Revit and then use Enscape to visualize the scenes. It's not a complicated process, but it…

  • Now that we've seen a couple of posts showing how to query information about Hue lights via a Philips Hue bridge from Dynamo Studio, it's time for the really fun stuff: controlling lights from Dynamo. To make this happen some changes were needed to the zero-touch node that talks to the Philips Hue API on behalf of Dynamo, mainly to allow the setting of a light's properties. The Philips Hue API allows this to be done either via Hue, Saturation and Brightness or by the XY offset in the CIE colour space. I ended up exposing the ability to set…

  • In the last post we looked at some initial code to get basic information about the lights connected to a Philips Hue bridge. In this post we're going to extend the code to expose more information but also to query the bridge repeatedly, allowing the graph to display the latest light colours as they change. Here's a view of the updated graph. A few things have changed: firstly the Bridge object exposes some new information – in our case we can see the names of the lights, but we could also access the names and IDs of the various groups,…

  • I mentioned in a recent post that I was chewing on how design apps might connect with building automation systems to display data via lights. My first step along this path was to see how Dynamo Studio might connect into my home's Philips Hue bridge and get information about the "smart" lights it contains. To do this I created a zero-touch node in C# that calls into the Philips Hue API exposed by my local bridge. (To make this piece work you need to follow the steps on this page that show how to create an authorised user ID for…

  • Now that we've introduced how the CRX will be loaded by AutoCAD I/O – via an Autoloader bundle – we're going to take a look at the code needed to create and test our Activity using it. As a starting point – and as mentioned last time – you should get hold of the code in this sample on GitHub and copy & paste the (C# & XML) code we've seen in the last two posts into their respective files. The code we're going to see in today's post belongs in Client\Program.cs. We're very much tailoring the existing implementation, making…

  • The Autodesk Technical Summit is an annual, internal, 2-day technical conference for members of Autodesk's engineering staff. I've been lucky enough to attend since 2011 (the first was held in 2010), and have seen the event grow both in breadth and attendance, over the years: this year there were 500 attendees from around the world and some really excellent presentations. Most years I've been at the event as a presenter (I talked about F# in 2011, Kinect in 2012 and then both Kinect Fusion and Leap Motion in 2013): this is the first time I was there purely as an…

  • After introducing the series and looking at a sample 2D JavaScript application, it's time to go 3D. Well, 2.5D, anyway. We're going to implement a simple sample using the Isomer library that extracts bounding box information about 3D solids – which could be extended to get more detailed topological information, albeit with quite some work – and displays them in an isometric view in the HTML canvas. This time we're only going to have a single button in our UI allowing model updates to be refreshed in our isometric view. I decided to leave this as a manual operation, but…

  • Having introduced this series, it's time to look at some code. This first sample shows how to create and host a web-page that uses an external graphics library – in our case Paper.js – within an AutoCAD application. The main "trick" to this is going to be getting the data from the HTML page into AutoCAD, which we'll do by extending AutoCAD's shaping layer. Bear in mind that this code will work with AutoCAD 2015, but I can't guarantee it will do so with 2014 (the JavaScript API was very much a "preview" in that release). Something I should say,…

  • I was happy to see Scott's announcement that a tool I'd seen demoed back at AU – and during my recent trip to Israel – has now been published to the iOS App Store (even if it's really a Labs release, at this stage). It was developed by the Applied Research group in our Tel Aviv office, the team that brought you ShapeShifter. It's an iPad app called Vectorize It that allows you to generate vectors from raster images – whether taken by the iPad's camera or picked from its image gallery – with the capability of opening the resultant…

  • Over the weekend I managed to complete the BerkeleyX Foundations of Computer Graphics class. This was really an excellent class, both in terms of the structure of the lectures and the homework assignments, which actually scaled in a non-linear way (the last assignment took as much time to complete as the previous three combined). But you were eased into it and didn't strictly need to do the last piece of homework (which was to write a ray-tracer from scratch) to get a "pass" on the course. What's nice about these MOOCs is that – in order to scale, putting the…