Showing posts with label surface. Show all posts
Showing posts with label surface. Show all posts

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!

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!

Wave Surface
Torus Shell Mobius Segment

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!

Monday, May 4, 2009

Open Source Spotlight 01: K3DSurf


As an ongoing feature, I will spotlight various Open Source design software that I find useful, fun, interesting... and most of all COOL.

K3DSurf
Click here to Visit the K3DSurf Website and Download

From the Website:
K3DSurf is a program to visualize and manipulate Mathematical models in three, four, five and six dimensions. K3DSurf supports Parametric equations and Isosurfaces.

As a designer, if you are at all interested in mathematical form finding, definitely check this software out... the simple interface allows you to navigate through a huge library of mathematically derived forms and surfaces. You can manipulate/create equations, adjust mesh resolutions, and output the mesh (*.obj) for use in other programs. Below is the result of some fun I had playing around with a gyroid for 5 minutes....

Sunday, April 19, 2009

Ribbing Revisited

I have received several requests to post the Grasshopper definition for rib system screen shot I posted here.

I did not post it before because the definition was extremely unorganized and very "touchy".

I have since rebuilt the definition to be compatible with GH v.0.6. Also, the definition no longer relies on solid booleans to create the rib notches (I have found solid booleans to be extremely unreliable in Grasshopper).

Anyway... now available by popular demand:
Click Here to Download Cylindrical+Vertical Ribbing 1.0

Note: I make no guarantees for how well the definition works. Sometimes it has problems when a vertical rib intersects a surface seam... Suggestions welcome!

Sunday, February 22, 2009

The Torus

Here is a strategy I am working on in Grasshopper for creating rationalized doubly curved surfaces. The example below uses a torus (defined parametrically using a GH function component). The use of a toroidal "slice" to drive the geometry allows for flat panels, repetitive panel sizes, and quadrilateral panel shapes.

Surface Analysis

Below are examples of using GH for analysis. By being able to perform these kinds of analysis directly within GH, there is the opportunity to use the data as a generative tool within a larger parametric framework. The sun system was created at tedngai.net and there you can find the definitions for the last two files (daily and yearly analysis).
Surface Curvature Analysis (gives similar resultes as Rhino's CurvatureAnalysis command)

Flat Panels Analysis (colors flat panels based on how far they deviate from each other)

Sun Angle Visualization (visualizes how the sun is hitting a surface at a given time)

Daily Sun Angle Analysis (definition found at tedngai.net)

Yearly Sun Angle Analysis (definition found at tedngai.net)

Wednesday, February 11, 2009

USC Parametric Lecture and GH Mini-Tutorial

On Monday, I presented a lecture on parametric techniques in practice followed by a tutorial on Grasshopper. The presentation was for Jeffrey Kim's Rhino course. Jeff is an instructor and principal of Forward Design. The students were enthused by the technology and were quick to pick up some of the basics of GH. I introduced the same panel exercise as I did before with my office (NBBJ).

Panel exercise by Jeffrey Chinn

Panel exercise by Patrick Wong

Sunday, February 8, 2009

Ribbing

Another Grasshopper study. This definition is similar to the rib definition found at Lift Architects. However, the Lift one only generates a rib structure in X, Y directions. This one cuts in the Z-direction and creates sectional ribs around a circular path allowing for a complete enclosure. The definition uses the same starting surface as the previous tessellation post.

Tessellation

A Grasshopper experiment in surface tessellation and creating variable openings within the triangles. This GH definition was rebuilt, modified, and optimzed based on a definition found at Designalyze.


Tuesday, February 3, 2009

NBBJ Grasshopper Workshop 1

Below are some of the results from the Grasshopper workshop I did for my office, NBBJ Los Angeles. We did two exercises. The first was an exercise in creating a surface which changed shape in relation to a point object. The second (featured below) was an exercise where the participants modeled a unique panel object and then propagated it across a curved surface. Some participants had not previously used Rhino.

Monday, December 22, 2008