Keep an eye on The Proving Ground Wiki for course information.
Wednesday, December 1, 2010
USC ARCH 517: Spring 2011
I am pleased to announce that I will be returning to the USC spring semester line up to teach a 5-week seminar on the use of Grasshopper and Galapagos.
Saturday, November 13, 2010
Kangaroo Physics
Below are some videos showing off some of the fun I am having with the Kangaroo Physics engine by Daniel Piker. Kanagroo is a powerful and intuitive tool that allows you simulate physical phenomena, such as gravity, within the Grasshopper environment.
You can test drive Kangaroo by visiting KangarooPhysics.com
Click the images to go to videos:
You can test drive Kangaroo by visiting KangarooPhysics.com
Click the images to go to videos:
Sunday, November 7, 2010
ACADIA Regional 2011: Parametricism (SPC)
The 2011 ACADIA Regional Conference will be hosted by the University of Nebraska Lincoln in March.
Paper abstracts are due by December 21st, 2010.
Themes:
1.0 Analog Parametrics
2.0 Forms that Matter
3.0 Building Envelopes & Surface Geometry
4.0 Investigations in Digital Curricula
5.0 Reconfiguring Collaboration by Computational Means
6.0 Comprehensive (Parametric) Design
7.0 Simulations: Quantitative and Qualitative
8.0 In-Formation Based Design
Paper abstracts are due by December 21st, 2010.
Themes:
1.0 Analog Parametrics
2.0 Forms that Matter
3.0 Building Envelopes & Surface Geometry
4.0 Investigations in Digital Curricula
5.0 Reconfiguring Collaboration by Computational Means
6.0 Comprehensive (Parametric) Design
7.0 Simulations: Quantitative and Qualitative
8.0 In-Formation Based Design
Sunday, October 10, 2010
Grasshopper + AutoCAD IPC Video
A demonstration of inter-process communication between Grasshopper and AutoCAD. Grasshopper sends remote commands to AutoCAD to create 2D drawings of the tower floor plates. Tower floors are defined by arcs.
Saturday, October 9, 2010
Galapagos + Ecotect: Tower Form-Finding Video
The video shows a snippet of a tower form-finding process using Grasshopper, Galapagos, and Ecotect.
Custom Grasshopper components are used to send a tower mass to Ecotect and retrieve information via a DDE connection. Galapagos evaluates the tower analysis results and looks for shapes which have the lowest total radiation.
A low-poly shape is used for the purposes of speed in this video.
Custom Grasshopper components are used to send a tower mass to Ecotect and retrieve information via a DDE connection. Galapagos evaluates the tower analysis results and looks for shapes which have the lowest total radiation.
A low-poly shape is used for the purposes of speed in this video.
Friday, October 8, 2010
Web3D, VRML Testing
I'm not seeing much info on the use of using VRML or X3D on my usual blog circuit... so I thought I would do a quick post on the topic to point interested people in the right direction.
Setting up your web browser to view 3D files:
VRML Plugin and Browser Detector
Cosmo Player (View VRML Files in a web browser...I am currently using this to quickly test models)
After you have installed a web browser plug-in, you should be able to freely view 3D files...
Here are some other helpful resources....
Web3D Consortium
X3D for Developers
Give it a go... it's a lot of fun!
Setting up your web browser to view 3D files:
VRML Plugin and Browser Detector
Cosmo Player (View VRML Files in a web browser...I am currently using this to quickly test models)
After you have installed a web browser plug-in, you should be able to freely view 3D files...
Here are some other helpful resources....
Web3D Consortium
X3D for Developers
Give it a go... it's a lot of fun!
Friday, September 17, 2010
LADTF Lecture: Computational Design - Aesthetics and Approaches
Friday, September 10, 2010
The Los Angeles Design Technology Forum Lecture
I will be presenting at UCLA as part of the Los Angeles Design Technology forum on Thursday, September 16th @ 7:00 PM.
My presentation will be alongside Satoru Sugihara from Morphosis.
More information can be found at the LADTF website
Thursday, August 26, 2010
Grasshopper FTP Components
I have created a few scripting components that allow Grasshopper users to upload and download files using FTP.
An HTTP component allows the user to download files from a web address.
The components are located at The Proving Ground Wiki
An HTTP component allows the user to download files from a web address.
The components are located at The Proving Ground Wiki
Friday, July 16, 2010
ACADIA 2010
I am happy to announce that I will be presenting at the ACADIA 2010 conference in NYC @ the Cooper Union.
My presentation will look at some case studies to examine how design information exchange and collaboration occurs in an international setting. The presentation will also study emerging workflows and evaluate their benefits for integrating teams and maintaining information integrity.
For more information, visit the ACADIA 2010 website.
My presentation will look at some case studies to examine how design information exchange and collaboration occurs in an international setting. The presentation will also study emerging workflows and evaluate their benefits for integrating teams and maintaining information integrity.
For more information, visit the ACADIA 2010 website.
Monday, July 12, 2010
Making a Remote COM Connection to AutoCAD using VB.NET
Inter-process communication allows you to create dynamic workflows between software applications. This can be achieved in a variety of ways (COM, Remoting...)
The example below provides some basic code for establishing a COM connection to AutoCAD using VB.NET. After a connection is established, it is then possible to send remote commands to the AutoCAD command-line as well as automate other features in the program.
The screenshot shows a custom Grasshopper VB.NET component using this code.
The example below provides some basic code for establishing a COM connection to AutoCAD using VB.NET. After a connection is established, it is then possible to send remote commands to the AutoCAD command-line as well as automate other features in the program.
The screenshot shows a custom Grasshopper VB.NET component using this code.
The process is quite simple.... Head over to The Proving Ground Wiki for details...
Feedback Cloud Lecture: Teaser Image 01
My lecture for the BIM Analytics symposium will demonstrate a series of methodologies for achieving a performance-driven design and collaboration process.
As a teaser... here is one technique that I will demonstrate showing an "ecology" of tools in use at once.
The tools are connected together and sharing information using inter-process communication.
More 'teasers' to come....
A change to the Rhino surface will update the connected software environments creating a dynamic design-analyze-document process.
1. Rhino (surface design)
2. Grasshopper (surface rationalization, inter-process communication control)
3. Ecotect (Solar analysis)
4. AutoCAD (2D Panel documentation)
Credit: [uto] were the first ones to figure out the process for connecting Grasshopper to Ecotect and were generous enough to provide me with information on how Ecotect could be accessed remotely using DDE. The particular components depicted in the image are custom made 'from scratch' to suit my specific needs.
For those of you interested in a similar kind of Ecotect-Grasshopper DDE link, please refer to [uto]'s Grasshopper plug-in: Geco.
For those of you interested in the COM connection to AutoCAD, you may find some sample code in my post here.
Info on my BIM Analytics lecture: Feedback Cloud
As a teaser... here is one technique that I will demonstrate showing an "ecology" of tools in use at once.
The tools are connected together and sharing information using inter-process communication.
More 'teasers' to come....
A change to the Rhino surface will update the connected software environments creating a dynamic design-analyze-document process.
1. Rhino (surface design)
2. Grasshopper (surface rationalization, inter-process communication control)
3. Ecotect (Solar analysis)
4. AutoCAD (2D Panel documentation)
Credit: [uto] were the first ones to figure out the process for connecting Grasshopper to Ecotect and were generous enough to provide me with information on how Ecotect could be accessed remotely using DDE. The particular components depicted in the image are custom made 'from scratch' to suit my specific needs.
For those of you interested in a similar kind of Ecotect-Grasshopper DDE link, please refer to [uto]'s Grasshopper plug-in: Geco.
For those of you interested in the COM connection to AutoCAD, you may find some sample code in my post here.
Info on my BIM Analytics lecture: Feedback Cloud
Monday, June 14, 2010
USC BIM Conference Lecture: Feedback Cloud
I am pleased to announce that I have been invited to give a lecture at USC's 2010 BIM Conference: BIM Analytics.
My lecture is tentatively titled: Feedback Cloud: Tactics for Toolset Integration and Design Optimization.
The talk will outline the digital processes used on some recent NBBJ projects as well describe a few experiments for creating performance-driven design solutions in a team made up of diverse participants using a multitude of tools.
By coordinating customized tools and workflows, Feedback Cloud.....
1. Embraces technological difference within a team.
2. Provides an adaptive framework for design change and variation.
3. Links together design and analysis for a performance-driven process.
My talk is tentatively scheduled on Wednesday, August 4th @ 1:30-2:00.
The conference is free, however you will need to RSVP here.
Speakers at the conference include...
architecture + engineering
Rachelle Villalon, Jenna Knudsen, and Alex Korter, CO Architects
Erin McConahey, ARUP
Mitch Dec, David Summers, and Tianxin Xing, Glumac
construction
Jim Bedrick, Webcor
Viktor Bullain, Turner Construction
Jonathan Widney, Solibri
Darren Roos, Suffolk Construction Company, Inc.
parametrics / performance based or algorithmic based design
Nathan Miller, NBBJ
Kurt Komraus, Buro Happold
integration, standards, the big picture
Richard Nowicki, NTD Architecture
Lance Lareau, San Diego CCD
Michael Rendler, e7 Studio at LACCD
Chuck Good-Man, Irwin Partners Architects
My lecture is tentatively titled: Feedback Cloud: Tactics for Toolset Integration and Design Optimization.
The talk will outline the digital processes used on some recent NBBJ projects as well describe a few experiments for creating performance-driven design solutions in a team made up of diverse participants using a multitude of tools.
By coordinating customized tools and workflows, Feedback Cloud.....
1. Embraces technological difference within a team.
2. Provides an adaptive framework for design change and variation.
3. Links together design and analysis for a performance-driven process.
My talk is tentatively scheduled on Wednesday, August 4th @ 1:30-2:00.
The conference is free, however you will need to RSVP here.
Speakers at the conference include...
architecture + engineering
Rachelle Villalon, Jenna Knudsen, and Alex Korter, CO Architects
Erin McConahey, ARUP
Mitch Dec, David Summers, and Tianxin Xing, Glumac
construction
Jim Bedrick, Webcor
Viktor Bullain, Turner Construction
Jonathan Widney, Solibri
Darren Roos, Suffolk Construction Company, Inc.
parametrics / performance based or algorithmic based design
Nathan Miller, NBBJ
Kurt Komraus, Buro Happold
integration, standards, the big picture
Richard Nowicki, NTD Architecture
Lance Lareau, San Diego CCD
Michael Rendler, e7 Studio at LACCD
Chuck Good-Man, Irwin Partners Architects
Sunday, June 6, 2010
Reading OBJ Mesh Files from K3DSURF in Grasshopper
I have created a custom scripting component that reads OBJ mesh files created in K3DSURF and reconstructs a triangular mesh within Grasshopper. Currently, the component will only read triangular OBJ meshes.
This allows for a more seamless workflow between K3DSURF and Grasshopper by eliminating the need to import the mesh into Rhino and then link the mesh into Grasshopper. If the OBJ file is updated from K3DSURF, the change is immediately affects the Grasshopper script.
This allows for a more seamless workflow between K3DSURF and Grasshopper by eliminating the need to import the mesh into Rhino and then link the mesh into Grasshopper. If the OBJ file is updated from K3DSURF, the change is immediately affects the Grasshopper script.
Friday, May 28, 2010
Sending Remote Commands to Ecotect using VB.NET
A large pitfall in any design process is the disconnect between design and analysis. Software, like Ecotect, gives the designer the ability to perform detailed environmental analysis on a design. However, it is sometimes difficult to create a useful feedback of the analysis information to inform the design.
As a strategy, it is possible to use inter-process communication to bridge the gap between design and analysis environments. A fantastic example of this are the brilliant GH to Ecotect components developed by [uto]
When Ecotect is launched, it automatically creates a Dynamic Data Exchange server which allows the program to be accessed by remote applications. By accessing the DDE server, you can send commands to Ecotect as well as request information. Ecotect must always be running in the background for this to work. While DDE is older technology (in dotNet, it was replaced by "remoting"), it works quite well in this context.
Thanks to Thomas from [uto] for cluing me in on Ecotect's use of DDE!
As a strategy, it is possible to use inter-process communication to bridge the gap between design and analysis environments. A fantastic example of this are the brilliant GH to Ecotect components developed by [uto]
When Ecotect is launched, it automatically creates a Dynamic Data Exchange server which allows the program to be accessed by remote applications. By accessing the DDE server, you can send commands to Ecotect as well as request information. Ecotect must always be running in the background for this to work. While DDE is older technology (in dotNet, it was replaced by "remoting"), it works quite well in this context.
Thanks to Thomas from [uto] for cluing me in on Ecotect's use of DDE!
Sunday, May 23, 2010
Transformable Batwing Surface
I have created a fun definition for manipulating Schoen's batwing surface and tiling the results into 3D patterns.
Head on over to The Proving Ground Wiki to download the Grasshopper file.
FYI. All of my previous Grasshopper definitions (and more!) are hosted and organized on The Proving Ground Wiki. Enjoy!
Head on over to The Proving Ground Wiki to download the Grasshopper file.
FYI. All of my previous Grasshopper definitions (and more!) are hosted and organized on The Proving Ground Wiki. Enjoy!
Friday, May 7, 2010
Thursday, April 15, 2010
USC Arch 517 Grasshopper Course: It's Alive!
We are now half-way through the 5-week Grasshopper course at USC and The Proving Ground Wiki is coming alive!
Students are posting their experiments,the forum is becoming quite active, and class materials are being made available to download.... have a look!
Students are posting their experiments,the forum is becoming quite active, and class materials are being made available to download.... have a look!
Student: Jeffrey Vaglio
Sunday, April 11, 2010
arcCA 10.1: Parametrics and IPD
arcCA (Architecture California) has recently published its latest issue on Parametrics and IPD. Included is an article titled "Parametric Voices" where various practitioners and academics have chimed in with their thoughts on the relevance and potential of parametric technology. I am happy to have my thoughts included alongside other leading practitioners involved in the field....
Articles:
Integrated Project Delivery: A History of Leadership, Advocacy, and Commitment
by Stephan Castellanos, FAIA
Toward Integrated Project Delivery: A New Design and Delivery Method
by Armando L. Gonzalez, FAIA and David L. Goodale, AIA
Internships for IPD: Gaining Perspective on Collaboration
by Dorit Fromm, AIA
Parametric Design: A Brief History
by Stephen Phillips, PhD
Parametric Voices
With contributions from....
Mark Anderson, Anderson Anderson Architecture
Phil Bernstein, Autodesk
Thomas W. Chessum, CO Architects
Tim Durfee, DurfeeRegn
John Enright, Griffen Enright Architects
Thom Faulders, Faulders Studio
Lisa Iwamoto, IwamotoScott Architecture
Hina Jamelle, Contemporary Architecture Practice
Michael Meredith, MOS
Nathan Miller, NBBJ
Pierluigi Serraino, Author
Nick Sowers, UC Berkeley
Carrie Byles, SOM
Mark Sarkisian, Eric Long, David Shook, SOM Structural Group
Craig Hartman, SOM
Pick it up if happen to come across it!
Articles:
Integrated Project Delivery: A History of Leadership, Advocacy, and Commitment
by Stephan Castellanos, FAIA
Toward Integrated Project Delivery: A New Design and Delivery Method
by Armando L. Gonzalez, FAIA and David L. Goodale, AIA
Internships for IPD: Gaining Perspective on Collaboration
by Dorit Fromm, AIA
Parametric Design: A Brief History
by Stephen Phillips, PhD
Parametric Voices
With contributions from....
Mark Anderson, Anderson Anderson Architecture
Phil Bernstein, Autodesk
Thomas W. Chessum, CO Architects
Tim Durfee, DurfeeRegn
John Enright, Griffen Enright Architects
Thom Faulders, Faulders Studio
Lisa Iwamoto, IwamotoScott Architecture
Hina Jamelle, Contemporary Architecture Practice
Michael Meredith, MOS
Nathan Miller, NBBJ
Pierluigi Serraino, Author
Nick Sowers, UC Berkeley
Carrie Byles, SOM
Mark Sarkisian, Eric Long, David Shook, SOM Structural Group
Craig Hartman, SOM
Pick it up if happen to come across it!
Sunday, March 28, 2010
The Proving Ground Wiki: USC Arch 517 Class
To coincided with my 5-week Grasshopper seminar at USC, I have created The Proving Ground Wiki. The purpose is to encourage experimentation and collaboration among the students enrolled in the course. As the course moves forward, the wiki will evolve with new content in the form of diagrams, descriptions, and Grasshopper files.
The Proving Ground Wiki
Have a look.... and check back throughout April to see how the class is going!
Tuesday, March 23, 2010
NYCCT Emerge Lecture Images
Below are some images from my recent lecture at the New York City College of Technology. I had a fantastic visit!
Generally, the basic premise of my lecture "Algorithms, Parameters, Practice" is that the architect cannot divorce the work that they do from the tools that they employ. The tool itself is not simply a means to achieve an architectural idea but is, in part, a driver for thought itself (consciously, subconsciously, or both). To demonstrate this, I showcased a series of projects I have been working on at NBBJ where the design and optimization of the project went in tandem with the design and optimization of various toolsets.
Generally, the basic premise of my lecture "Algorithms, Parameters, Practice" is that the architect cannot divorce the work that they do from the tools that they employ. The tool itself is not simply a means to achieve an architectural idea but is, in part, a driver for thought itself (consciously, subconsciously, or both). To demonstrate this, I showcased a series of projects I have been working on at NBBJ where the design and optimization of the project went in tandem with the design and optimization of various toolsets.
Monday, February 15, 2010
Presenting @ NYCCT: Emerge Lecture Series
Tuesday, January 5, 2010
Revit API: Mathematical Form-Making
In addition to my continued exploration with Grasshopper, I will begin doing posts relating to my recent interest with the Revit API.... and as my previous post suggests, these interests are not necessarily going to be "exclusive" from one another....
Below are some examples of making some parametric surfaces using a simple API script. The kinds of surfaces you are able to create is limited for two reasons:
1. There are only about 4 ways to create a surface (Loft, extrude, sweep, revolve)... A surface from a point cloud or from 4-points would be very handy, Autodesk!
2. Revit doesn't seem to "like" self-intersecting surfaces very much... and even sometimes mistakes 'closed' shapes or shapes where edges touch for self-intersection....so no Kleins or Catalans, booo!
Sample Code (Wave surface):
Dim ref_ar_ar As ReferenceArrayArray = New ReferenceArrayArray()
Dim XYZ As Autodesk.Revit.Geometry.XYZ
For u As Double = 0 To 4 * Math.PI Step Math.PI / 4
Dim rfptsarr As ReferencePointArray = New ReferencePointArray()
For v As Double = 0 To 4 * Math.PI Step Math.PI / 4
Dim refpt As Autodesk.Revit.Elements.ReferencePoint
Dim x As Double
Dim y As Double
Dim z As Double
x = 10 * u
y = 10 * v
z = 10 * Math.Cos(u) + 10 * Math.Sin(v)
XYZ = revit_app.Create.NewXYZ(x, y, z)
refpt = revit_doc.FamilyCreate.NewReferencePoint(XYZ)
rfptsarr.Append(refpt)
Next
Dim crv As CurveByPoints = revit_doc.FamilyCreate.NewCurveByPoints(rfptsarr)
Dim ref_ar As ReferenceArray = New ReferenceArray()
ref_ar.Append(crv.GeometryCurve.Reference)
ref_ar_ar.Append(ref_ar)
Next
Dim loftform As Autodesk.Revit.Elements.Form = revit_doc.FamilyCreate.NewLoftForm(True, ref_ar_ar)
Enjoy!
Below are some examples of making some parametric surfaces using a simple API script. The kinds of surfaces you are able to create is limited for two reasons:
1. There are only about 4 ways to create a surface (Loft, extrude, sweep, revolve)... A surface from a point cloud or from 4-points would be very handy, Autodesk!
2. Revit doesn't seem to "like" self-intersecting surfaces very much... and even sometimes mistakes 'closed' shapes or shapes where edges touch for self-intersection....so no Kleins or Catalans, booo!
Wave Surface
Sample Code (Wave surface):
Dim ref_ar_ar As ReferenceArrayArray = New ReferenceArrayArray()
Dim XYZ As Autodesk.Revit.Geometry.XYZ
For u As Double = 0 To 4 * Math.PI Step Math.PI / 4
Dim rfptsarr As ReferencePointArray = New ReferencePointArray()
For v As Double = 0 To 4 * Math.PI Step Math.PI / 4
Dim refpt As Autodesk.Revit.Elements.ReferencePoint
Dim x As Double
Dim y As Double
Dim z As Double
x = 10 * u
y = 10 * v
z = 10 * Math.Cos(u) + 10 * Math.Sin(v)
XYZ = revit_app.Create.NewXYZ(x, y, z)
refpt = revit_doc.FamilyCreate.NewReferencePoint(XYZ)
rfptsarr.Append(refpt)
Next
Dim crv As CurveByPoints = revit_doc.FamilyCreate.NewCurveByPoints(rfptsarr)
Dim ref_ar As ReferenceArray = New ReferenceArray()
ref_ar.Append(crv.GeometryCurve.Reference)
ref_ar_ar.Append(ref_ar)
Next
Dim loftform As Autodesk.Revit.Elements.Form = revit_doc.FamilyCreate.NewLoftForm(True, ref_ar_ar)
Enjoy!
Sunday, January 3, 2010
Streaming Grasshopper Points into a Revit Conceptual Mass
This will be the first of a series of posts where I will explore various strategies for moving geometric and analytical data between software platforms...
While often times sufficient, I have sometimes found the standard means of Importing/Exporting model information using file formats to be quite cumbersome and limiting... especially in the case of Revit where it is next to impossible to modify or build from linked/imported files
Below is a basic example of streaming a list of XYZ coordinates from Grasshopper into a *csv file and then using that file to create reference points in a Revit conceptual mass... A custom script was written using the Revit API to read the CSV file and make the points.
Here is the Revit API code (in VB.NET) for reading the *.csv file :
Dim XYZfile As String = "insert file path here"
If File.Exists(XYZfile) Then
Dim FileReadXYZ As New StreamReader(XYZfile)
Do While FileReadXYZ.Peek <> -1
Dim XYZLine As String = FileReadXYZ.ReadLine()
Dim XYZData As String() = XYZLine.Split(",")
Dim XYZ As Autodesk.Revit.Geometry.XYZ
Dim RefPt As Autodesk.Revit.Elements.ReferencePoint
XYZ = revit_app.Create.NewXYZ(Convert.ToDouble(XYZData(0)), Convert.ToDouble(XYZData(1)), Convert.ToDouble(XYZData(2)))
RefPt = revit_doc.FamilyCreate.NewReferencePoint(XYZ)
Loop
End If
While often times sufficient, I have sometimes found the standard means of Importing/Exporting model information using file formats to be quite cumbersome and limiting... especially in the case of Revit where it is next to impossible to modify or build from linked/imported files
Below is a basic example of streaming a list of XYZ coordinates from Grasshopper into a *csv file and then using that file to create reference points in a Revit conceptual mass... A custom script was written using the Revit API to read the CSV file and make the points.
Here is the Revit API code (in VB.NET) for reading the *.csv file :
Dim XYZfile As String = "insert file path here"
If File.Exists(XYZfile) Then
Dim FileReadXYZ As New StreamReader(XYZfile)
Do While FileReadXYZ.Peek <> -1
Dim XYZLine As String = FileReadXYZ.ReadLine()
Dim XYZData As String() = XYZLine.Split(",")
Dim XYZ As Autodesk.Revit.Geometry.XYZ
Dim RefPt As Autodesk.Revit.Elements.ReferencePoint
XYZ = revit_app.Create.NewXYZ(Convert.ToDouble(XYZData(0)), Convert.ToDouble(XYZData(1)), Convert.ToDouble(XYZData(2)))
RefPt = revit_doc.FamilyCreate.NewReferencePoint(XYZ)
Loop
End If
Subscribe to:
Posts (Atom)