Thursday, December 29, 2011

Survey Says...

I have published the results from the AEC Tech Survey

This began as a private survey of colleagues and personal connections who work in a variety of different sizes of Architecture firms in different parts of the country. I later opened this up to the blog and on my Facebook shortly thereafter. Overall, the number of responses was small (38 submissions) but interesting.

The survey for academic programs is still open...

Wednesday, December 28, 2011

The Hangzhou Tennis Center Issuu

Earlier this past year, I had presented a short paper at the ACADIA Regional conference on some of the parametric tools and systems used on the Hangzhou Tennis Center.

The full article is now available as an Issuu...

Saturday, December 24, 2011

Happy Holidays!

This year saw the release of the Slingshot! Database plug-in, workshops and a keynote at ACADIA Regional, presentations at Extreme BIM and ACSA, an article in the Oz Journal, and numerous little computational experiments.

Internet traffic to The Proving Ground has continued to grow over this past year and I wanted to thank you, the visitors, for your continued interest in the content. I am humbled that my little blog gets the attention it does.

I hope to keep things exciting here moving into the new year with more to come for Rhino, Grasshopper, Processing, Slingshot!, Revit/Vasari, and more....!

Some things to keep an eye on....

The Proving Ground's sister wiki has been going through some transformations with new content.

As of today, I have created a Facebook page... be sure to 'like' it!

Tuesday, December 13, 2011

Survey Time! Technology and AEC....

The Proving Ground tends to feature explorations related to more advanced uses of digital technology and computational tools.... But how is the larger rest of the AEC industry and academy moving along?

Are the latest tools being adopted by industry practitioners?
Where are the perceived value gains for new technology?
Is the BIM mightier than the sword?

These questions have been explored before, but I thought I would tap into my own network with the help of my handy-dandy Google Docs tools.

This short survey is intended as a general means of collecting information about the impact digital technology is making on practice and academia. While it may not be the most scientific, my hope is to test a few hypotheses about this subject and report back here...!

Please select the most appropriate survey...

OPTION 1 Professional:
Please complete this survey if you are involved in an AEC-related professional organization...

OPTION 2 Academic:
Please complete this survey if you are involved in an AEC-related academic program...

Results will be posted here in a few days (or weeks depending on how responses trickle in...)

Wednesday, December 7, 2011

More Upcoming Slingshot! Stuff...

The next update will introduce some standard tools to simplify creating database systems for storing and updating geometry and analysis results.

New "Sensor Component" will let you convert sensor data from analysis tools (like DIVA) in a structured database.

A few other database creation components will allow rapid creation and updating of geometric elements such as points, lines, and meshes.... These tools are sure to rapidly expand to include other forms of geometry types and representations.

And, of course, an update to the Twitter Search component. The component now parses search results into lists in addition to providing the raw Atom XML.

Thursday, December 1, 2011

Coming Soon...Slingshot! Geometry Tools

Coming soon... new Slingshot tools for translating geometry into executable SQL code for DB storage.

This images shows a component which takes a mesh as an input and converts it to a SQL code for use in different databases and accessed from different platforms.

Sunday, November 27, 2011

Secret Agent Men

No, this is not a post about secret agents... but rather computational agents! (ok, bad joke!)
Jose Sanchez has an excellent example of flocking agents at the Plethora Project. Additionally, Satoru Sugihara has some great tutorials on using the agent class for piGeon.

My videos below show flocking behavior in 3D...specifically in relationship to the boundaries defined by a surface.

I am fascinated by the ability to use this behavior to describe irregular surface patterning. The processing sketch constrains the agents to the UV space of the surface and draws traces of the agent movement. The color change refers to the UV position.

I am also interesting dynamic human interaction with the agent system. This example shows a ControlP5 interface for dynamically changing the flocking variables (alignment, cohesion, and separation). I can also adjust the line connection variable to study the relationship structure.

Sunday, November 20, 2011

Processing: Custom Paneling Interface

Building on my previous examples of combining the piGeon library with ControlP5, I put together another example showing an interface for exploring paneling options on a surface created in Rhino. The user is able to select different paneling patterns (quads, triangles, diagrids, etc) and visualize them as surface or wireframe cells. U and V parameters are controlled by sliders (sound familiar?)

Of course, this is something that is easy to accomplish with parametric tools like Grasshopper. However, my interest here is in being able to customize a simple, standalone, and easy-to-learn interfaces for specific design problems. Easy enough for grandma to use...

More as I have it...

Sunday, November 6, 2011

iGeo: Open Source 3D Software Library for Java

**updated with code**

This is one of the coolest things I have come across in awhile...

Satoru Sugihara, recently release iGeo: a "free and open source 3D modeling software library in Java for computational design in architecture, product design, interaction design and more."

As part of my enthusiastic response to this tool kit, I thought it would be an interesting experiment to combine piGeon with another popular processing GUI called ControlP5. ControlP5 is another great open source library for creating interactive controls such as sliders, toggles, knobs, and other gizmos.

piGeon provides an interface for Processing which makes iGeo easy to learn for quick implementation. Satoru has also provided some great tutorials...

iGeo is very extensive and well documented. The library provides fantastic support for NURBS and it is possible to read and write Rhino 3dm and Obj files.

Sunday, October 30, 2011

ACSA 2011 Admin Conference: Old School/New School

I am very excited to be involved in this year's ACSA Administrators Conference in Los Angeles. I was invited to participate in a panel discussion surrounding the challenges and opportunities for schools of architecture in the 21st century:

How should architecture schools respond to the changes posed by social media, the proliferation of data, globalization, climate change, and demands for economic and ethnic diversity? Are our existing educational concepts and methods adequate?

The Challenges and/or Opportunities panel will take place on Friday, November 11 from 10:30 to 12:00 AM and will include the following participants....

Ila Berman, California College of the Arts
Michael Speaks, Univesrity of Kentucky
Frances Bronet, University Oregon
Richard Sommer, University of Toronto
Robert Somol, University of Illinois, Chicago
Nathan Miller, NBBJ
Steven Lewis, RAW

A full schedule for the conference can be found here....

Thursday, October 27, 2011

NBBJ LA Project: Grand Stade de Casablanca

ArchDaily recently posted our proposal for the Grand Stade de Casablanca. The stadium is an 80,000 seat facility capable of hosting multiple types of sporting events. Grasshopper was used extensively in the design process to develop the concept and produce generative algorithms for the exterior faceted shell and paneling systems.

Architects: NBBJ & Yassir Khalil Studio
Location: Casablanca, Morocco
Structural Engineer: Schlaich Bergermann & Partner
Animation and Renderings: Studio 216

Saturday, October 15, 2011

What's New in Slingshot! Database v0.8?

Here are short visual tour of some the new features available in Slingshot! Database v0.8

1. Support for multiple database systems. The MySQL connector is still supported. ODBC and OLE DB allow access to many other RDBMS where information can be accessed, shared and coordinated with Grasshopper.
2. Perform SQL queries and commands on Excel files using OLE DB. Access information and search for data without launching the Excel program. (This is an alternative to the more common System.Runtime.InteropServices workflow.)
3. Access information from around the Web using FTP and HTTP components. Source information from websites and social networks. The Twitter Search component allows for Grasshopper to track recent posts and trends.

Thursday, October 13, 2011

Slingshot! Database Plug-in v0.8

I am happy to announce a new milestone update to the Slingshot! plug-in for Grasshopper. The aim of the tool is to combine the power of parametric modeling with relational database management systems. Previously, MySQL was the only RDBMS supported. The new version includes support for ODBC and OLE DB which will allow connections to many different types of databases such as Access, PostgreSQL, SQL server, etc. In addition, I am beginning to build a collection of other helpful (and sometimes fun) workflow tools for accessing web information.

The new version introduces new (yet familiar) database workflows. For those of you who have been putting the MySQL plug-in to good use, you may want to hold off on upgrading until I have some demonstration videos and instructions up.

The older versions of the MySQL plug-in will continue to be available. However, you should not have both installed at the same time (The Slingshot! tab will get messy!)

Here is a list of updates...(not comprehensive)
  • Now officially called Slingshot! Database
  • Plug-In supports MySQL, ODBC, and OLE DB.
  • Reorganized toolbar with new icons and components.
  • Query and Command components enable access to different databases.
  • SQL string components help users compose SQL code for use with query and command components.
  • Web tools provide support for FTP upload/download and HTTP streams.
  • Read and write to remote (and closed) Excel files using OLE DB access.
  • Twitter Search gives users access to the search API and returns XML into Grasshopper.
  • MySQL components now require the MySQL .NET connector 6.4.4

Tuesday, October 11, 2011

Oz Journal v33: Augment... Coming Soon!

Oz Journal v33 is available this month with a great collection of authors.

Yours truly has a write up... and from what I remember, it wasn't entirely incoherent! Check it out!

Edited by
Laura Beth Cochran and Samantha Smith

Less Is More Intense
Magnus Larsson

Revolutions of Choice
Frank Barkow

Hand Drawing in a Digital Age
Alan Dunlop

Shared Transformation
Lisa Iwamoto

Measurement, Uncertainty, and the Dataspace
Nathan Miller

Augmented Culture
Daniel Dendra

Illustrating Ecologies
Bradley Cantrell

Augmenting Architecture through Algorithmic Modeling
Nathan Howe

More. Better. Integrated.
Ryan Gedney

Ordering Complexity
Patrick Schumacher

Digital Craft
Monica Ponce de Leon

On Intimacy and Design
Ramona Albert and Christopher Johnson

Sunday, September 18, 2011

Force-Based Data Visualization

Using a combination of Slingshot! and Kangaroo Physics, this post demonstrates the self-organization of a complex data set. This approach is similar to the 2D tools available in graph visualizers such as Gephi.

The process uses the friend relationships on my Facebook network. This data is stored in a MySQL database and pulled into Grasshopper using Slingshot! The data set contains the names of all of my Facebook friends and their connection to my other friends. In 3D space, these connections are represented as lines.

When the data is first brought into the Grasshopper environment, the visualization is unstructured with name and connections scattered randomly in space.

Using Kangaroo Physics, the connection lines translate to force vectors which "push" and "pull" the names around. Based on relationships in the data, the 3D diagram will self-organize. Related friends cluster together using attraction forces. Friends with higher connectivity have a higher repulsion setting allowing them to be distinguished in the network.

The resulting structures are quite amazing. Navigating them shows a natural grouping of friends with some interesting granularity... For example: my relatives, work colleagues, and college friends exist in distinct clusters within the network. The source data does not inherently have these biases built in.

Interested in pulling your Facebook network information for some data viz? Check out this Gephi tutorial... Once you have it, you can store it in the format of your choosing.

Sunday, September 11, 2011

Slingshot! GH+MySQL v0.7.2.1 Released

This is a minor update to the Slingshot! MySQL plugin for Grasshopper. This version ensures compatibility with Grasshopper version 0.8.0051

In addition there have been a few parameter additions and some naming corrections. Check the version history for more details.

Tuesday, September 6, 2011

Blender Particle Systems with Grasshopper

Blender is a fantastic open source mesh modeling software often used in game development. The tool is full of rich features and may even give Maya a run for its money. You also can't beat its price tag (did I mention it is free?). For an API, it boasts an extensive Python scripting environment.

In addition to its mesh modeling tools, Blender also features some great physical effects including particle systems for simulating fluids and wind.

This blog post demonstrates creating a workflow for exporting particle information into a text file which can be accessed by Grasshopper for different purposes.

Sunday, August 28, 2011

Energy Modeling with Grasshopper (Proof-of-Concept)

Grasshopper users have all kinds of simulation tools at their disposal... however, I have yet to see an attempt at integrating energy simulation tools with Grasshopper... so here is a 'weekend warrior' study which links Grasshopper to EnergyPlus.

I wrote a few custom components which automate the formatting of Grasshopper geometry into a simulation-ready model that can be read directly by EnergyPlus. The colorful visualizations show a simple box structure going through an hourly analysis on a specified design day. The analysis results are streamed back into Grasshopper after the energy analysis is run

There is much potential here (and work to be done before I can put this into a full release!)... I would also like to consult with the experts first before I release this as a plug-in. I am not an MEP expert, after all...

We have just about everything else: solar (DIVA, Geco), structures (Karamba, StructDraw), physics (Kangaroo).... What other simulation tools will we see in Grasshopper's future?

Sunday, August 14, 2011

An Energy Model... of Earth? ASHRAE + Slingshot!

What do all of those ASHRAE Climactic Design Conditions look like?

Using some CSV file parsing, I translated the ASHRAE 2009 Design Conditions into a MySQL relational database. Location, heating, cooling, and extreme conditions for 5564 stations are stored in tables and can be dynamically searched. Using Slingshot!, I can query information and load it into Grasshopper for visualization...

Wednesday, August 3, 2011

NBBJ Design Computation - Job Opening

Dear Computation Community,
I am happy to announce that NBBJ is expanding its efforts in the field of Design Computation. We have officially opened a search for an additional expertise to work with me on a firm-wide effort based out of the Los Angeles studio. Please review the job description below.

If you are interested in this position, apply through the NBBJ website!

NBBJ Los Angeles is seeking an expert in Design Computation who will be placed in a co-leadership position with a collaborative team of experts. The Designer we are seeking must have a proven track-record for pushing the boundaries of design by drawing upon a deep interest in science, mathematics and computing. This individual should possess experience in applying technology driven methodologies in the context of real-world design problems.

The individual will have responsibilities which include collaborating on the design of architecture projects, working with teams to develop innovative computational design tools, and mentoring design teams in computational methods. The position will offer the candidate opportunities to grow within the firm and exposure to an innovative, fast-paced and highly collaborative environment.

• 4-year degree in related field required; Architectural degree a plus
• Minimum of 4-6 years of experience in leveraging computational methods for architectural design
• Advanced knowledge of parametric design software and generative design techniques (software may include Grasshopper, Generative Components, Catia, and/or Inventor)
• Working knowledge of common computer programming languages (VB.NET, C#, Python)
• Familiarity with scripting and application programming interfaces (API) for tools such as Revit, Rhino and/or AutoCAD
• Comfortable working in common 2D and 3D design environments including Revit, Rhino, and/or AutoCAD
• Proven experience teaching design computation
• Strong critical thinking and interpersonal communication skills
• Ability to travel and lead team training seminars in all of NBBJ’s office locations

Sunday, July 31, 2011

Genome Database using Slingshot!

Thanks the new record component and some fixed slider functionality, I was able to create a process for recording Galapagos iterations to a MySQL database via the Slingshot! plug-in...

The process for recording is fairly straight forward...

Step 1: Use the 'record' component to track changing sliders and fitness values.
Step 2: Run Galapagos
Step 3: Insert the recorded fitness and gene values into the database.
Step 4: Query the database to view and sort the genomes.

Quite handy for revisiting all iterations and comparing different ranges of fitness...

Thursday, July 21, 2011

The Supershape Returns... with Vasari and IronPython

So to continue the theme, I thought I would take a crack at creating a script for generating 3D Supershapes using strictly IronPython and the RevitPythonShell.

The script creates reference points based on mathematical formula and draws section curves in one direction. I then used the loft form method to connect adjacent curve together and describe the surface. I should note that lofting the sections together for a continuously smooth look fails under just about every scenario... I hope more options are available in the future.

Speed wise... well... it sure takes its sweet time to generate the geometry. Other scripting environments are lightning fast when dealing with similar levels of complexity. In the future, I hope the Revit/Vasari team can streamline the form creation process and provide more creation methods...

Tuesday, July 19, 2011

Installing IronPython with Vasari

Zach Kron from Buildz recently posted an very cool example of using IronPython with Revit/Vasari. This is made possible using RevitPythonShell by Daren Thomas. This got me excited to kill two bird's with one stone 1. See what Vasari is all about and 2. start digging into Python.

I had to go through a number of blog posts to get all the pieces to work together (most only told part of the story). The fact that Vasari tries to keep everything under the hood a secret does not help matters.

So to ensure you do not exhaust as much time getting it to work as I did... I present...

The 12 Step Program to get Vasari to work with IronPython

First why would you WANT to do this? Unless you are going through the VSTA in Revit ( this is not available in Vasari), you have to use Visual Studio to compile a plug-in and load it as an Add-In. This can be a cumbersome experience if you want a more fluid scripted workflow where you can test code on the fly.

RevitPythonShell. This plug-in gives Revit/Vasari the capability to execute IronPython scripts with full access to the Revit API. Once it is up and running, you are able to quickly test different code from either the command console or a script editor of your choice.

The steps below are more specific for Vasari. For those unfamiliar, Vasari is a standalone package of some of Revit's more conceptual modeling and analysis features. The application is a free download.


Note: Currently, RevitPythonShell works with Revit 2011 and Vasari 1.1. RevitPythonShell is not yet compatible with Revit 2012 or Vasari 2.0.

1. Download Autodesk Vasari 1.1
2. Download and install Python 2.5
3. Download and install RevitPythonShell (includes IronPython 2.0 DLLs)
4. Launch the Vasari.exe file for the first time.
5. After Vasari has launched... close Vasari.
Note: Vasari comes as a standalone exe file but it does create a few folders on your computer which you will need in order to get it to work with RevitPythonShell.

6. Navigate to the following directory (Windows 7): C:\Users\*yournamehere*\AppData\Roaming\Autodesk\Vasari\Addins\TP1.1
Note: This directory is where you can place custom Add-ins. Revit 2011 add-ins that take advantage of the conceptual massing environment can be also be used with Vasari. (More info can be found at TheBuildingCoder)

7. Download this revitpythonshell.addin file and place it in the TP1.1 directory.
Note: This is an XML file I made which contains a path to the RevitPythonShell.dll directory. You may need to open the file to verify the path to the assembly file is correct.

8. Launch Vasari 1.1
9. Exit the current massing editor ('Cancel Mass' in the ribbon)
10. Click on the 'Add-Ins' menu tab. Viola! If you did everything correctly, you should have a RevitPythonShell menu category with "Open Python Shell" and "Configure..." buttons available.
11. Click "Configure Commands". Check that a Search Path is included for C:\Python25\Lib (this is necessary to make use of the AutoComplete feature and to make use of other standard libraries)
12. Download an IronPython IDE (like SharpDevelop) to write scripts. You can load them using "Configure..." through the Vasari Add-In tab.

If this post needs any corrections or clarifications, please let me know!

Sunday, July 10, 2011

GH+MySQL v0.7.2 Released (w/ ODBC)

A new release of the Slingshot! GH+MySQL plug-in is available.

The release is a minor update which re-organizes a few categories and also includes a new generic MySQL Command component for executing SQL operations not included in other components.

The main reason for this release was to introduce ODBC (Open Database Connectivity) into the mix. The two components (ODBC Command and ODBC Query) should let users access any ODBC compliant database. I have tested the plug-in with PostgreSQL... if anyone tests them with others, please let me know!


Sunday, July 3, 2011

Wednesday, June 29, 2011

Free Download! ACADIA Regional 2011: Parametricism (SPC)

The book for the 2011 ACADIA Regional conference is available for a free download. The conference was hosted by the University of Nebraska Lincoln this past spring.

The proceedings feature an impressive line-up of research papers (including one of my own) complete with color images. The national conference has a lot to live up to moving into the fall!

Wednesday, June 22, 2011

Grasshopper > AutoCAD v0.1 Open Source Plug-in!

I have released an open source plug-in which enables Grasshopper to connect to AutoCAD's command line.

I have only tested this on one machine. Let me know how it works for you!

Sunday, May 29, 2011

Slingshot! GH+MySQL v0.7 Released

A new version of the Slingshot! plug-in has been released. The primary aim was to consolidate functionality for better workflow. In addition, some components have new or expanded output features which I hope will be useful.

PS I will be traveling to China tonight on business for the next three weeks. Apologies in advance if I am not able to provide support or answer questions immediately.

Tuesday, May 24, 2011

Extreme BIM @ USC

I have been invited to give a talk at USC's annual BIM symposium. This year, the topic is...

My lecture is titled Dataspaces and Uncertainty... in no way did I draw those words out of a hat at random. I will be discussing recent work at NBBJ, my Slingshot! project, and other observations on computation in practice.

The speaker list includes experts from around Los Angeles on the topic of parametric design and computation.

Participating firms include Perkins+Will, Morphosis, Gehry Partners, Gensler, Thornton Tomasetti, Buro Happold... and more!

Saturday, May 21, 2011

SQL Code: Create a Mesh Database

I have provided the SQL source code and a Grasshopper definition for creating a simple mesh database containing tables for vertices and faces. This is the standard database table format I have been using in my recent Slingshot! demos.

Sunday, May 15, 2011

Slingshot!... to the web???

Parametric, generative, BIM.... web browsing?

This proof-of-concept video shows a Grasshopper-generated model being updated and visualized within Google Chrome. The Slingshot! plug-in updates a database when the model changes.

After each, change the web browser is refreshed to show changes to the 3D visual and the database tables.

Sunday, May 8, 2011

Slingshot! Demo: Querying a Mesh

In the video demonstration below, MySQL queries are used to progressively assemble a Grasshopper mesh using information stored in database tables on a remote computer.

First, individual x,y,z coordinates are queried from a points table to create the point cloud.
Second, the index numbers for the faces are queried to produce the mesh surface
Third, gaussian curvature values are queried and used to produce the gradient color.

Get the latest release of the plug-in here....!

Sunday, May 1, 2011

Slingshot! GH+MySQL v0.6 Released

A new version of the Slingshot GH+MySQL plug-in has been released. The release improves on the workflow for writing information to a MySQL table. A new Write Table component is included which allows the user to dynamically insert and update multiple columns of data.

A workflow example for creating, writing, and querying is also included in this release.

Sunday, April 10, 2011

Slingshot! GH+MySQL Released for Testing!

The Grasshopper + MySQL plug-in has been officially released for testing under the umbrella of Slingshot! The plug-in combines the power of Grasshopper parametric design with the world's most popular open-source database: MySQL.

Visit the development wiki @ for more information!

Tutorials and other support materials are in the works. The download file contains a few examples.