29 January 2010

Image Field04 ///////////////////////////////////////////////////////////

Investigation on the potentiality of numerical field generated by a source image. The height of one ellipse control point is linked with grayscale value of the image generating parametric variations in the starting flatten pattern.

27 January 2010

Image Field03 ///////////////////////////////////////////////////////////

A quick test from image field definition (link1, link2). Height of panels and apertures are controlled by an image in grayscale.

20 January 2010

Rhino Tessellation04c_GH curvature analisys pattern01///////////////////////////////

I've translated this rhinoscript (link1, link2) in a grasshopper version.
The definition:
.subdivides a surface into a quadrangular panels.
.plots a circle or a closed spline(similar to an ellipse) with center in the centroid of each panels.
.scale the radius dimension trough a numeric values extrapolated from the curvature analisys of the input surface.

18 January 2010

rh lattice tesselation02//////////////////////////////////////////

Some images on lattice tesselation rhinoscript application.

17 January 2010

rh lattice tesselation01//////////////////////////////////////////

Just another code done some time ago on lattice tesselation. The code :
.divides a surface in U&V points defined by the user
.draws a matrix of points that follows the simple pattern of two splines
.creates circles ( number of circles are defined by the user) perpendicular to a curve
.creates a loft surface trough the circles

here the code:
Option Explicit
'Script written by Davide del Giudice
'Script copyrighted by www.madeincalifornia.blogspot.com
'Script version venerdì 28 agosto 2009 16.07.36

MsgBox " LATTICE TESSELATION/// Script written by Davide del Giudice/// www.madeincalifornia.blogspot.com "

Call DivideSurface()
Sub DivideSurface()
Dim strSrf:strSrf= rhino.getobject("Select surface",8,16)
If isNull(strsrf) Then Exit Sub
Dim intUint: intUint= rhino.getInteger(" U divisions", 20,4,100)
Dim intVint:intVint= rhino.GetInteger(" V divisions", 20,4,100)

Dim IntNPts: intNPts = Rhino.GetInteger("how many samples?", 10, 2, 100) 'chiedo il dimensionamento

If isNull(intUint) Then Exit Sub
If isNull(intVint) Then Exit Sub
If isNull(IntNPts) Then Exit Sub

rhino.print" script started now, enjoy!"
'Get U values
Dim arrSrfDomU : arrSrfDomU= Rhino.SurfaceDomain(strSrf,0)
Dim uMin: uMin= arrsrfDomU (0)
Dim uMax:uMax = arrsrfDomU (1)
Dim uStep:uStep=(uMax-uMin)/intUint

'Get V values
Dim arrSrfDomV : arrSrfDomV= Rhino.SurfaceDomain(strSrf,1)
Dim vMin: vMin= arrsrfDomV (0)
Dim vMax:vMax = arrsrfDomV (1)
Dim vStep:vStep=(vMax-vMin)/intVint

'crate panels
Dim i,j
Dim arrpt01,arrpt02,arrpt03,arrpt04,arrpt05,arrpt06,arrpt07,arrpt08,arrpt09,arrpt10,arrpt11,arrpt12,arrpt13,arrpt14,arrcnrpts1,arrcnrpts2,arrpoints,strline1,strline2

For i=uMin To uMax-uStep Step 6*uStep

For j= vMin To vMax-vStep Step 2*vStep

'first panel


'second panel


'point in an array

arrcnrpts1= array(arrpt01,arrpt02,arrpt03,arrpt04,arrpt09,arrpt10,arrpt11)
arrcnrpts2= array(arrpt05,arrpt06,arrpt07,arrpt08,arrpt12,arrpt13,arrpt14)

Rhino.AddPoints (arrcnrpts1)

strline1= rhino.addcurve (arrcnrpts1)
strline2= rhino.addcurve(arrcnrpts2)

Dim arrDom: arrDom = Rhino.CurveDomain(strline1)
Dim dblparam,dblStep
ReDim arrCirc1(intNpts),arrCirc2(intNpts)
Dim k,arrplane1,dblradius,arrplane2

dblStep = (arrDom(1)-arrDom(0))/(intNPts)

For k=0 To intNPts 'Step 0.1

dblParam = arrDom(0) + k*dblStep

arrPlane1 = Rhino.CurvePerpFrame(strline1, dblParam)
arrPlane2 = Rhino.CurvePerpFrame(strline2, dblParam)

arrCirc1(k)= Rhino.AddCircle(arrPlane1, .05)
arrCirc2(k)= Rhino.AddCircle(arrPlane2, .05)

Call Rhino.AddLoftSrf (arrcirc1)
Rhino.AddLoftSrf (arrcirc2)

Next 'end j loop
Next 'endi loop

rhino.HideObject strSrf

rhino.print " script end"

End Sub

07 January 2010

Rh array 01 //////////////////////////////////////////////////////////////////////////////////

Here some codes about array in rhinoscript. The code works with a simple array of points and creates spheres with growing radius. The position of the points in the 3d space is determinated by a formula. These are some exercises starting from scratch in rhinoscript code done some time ago.

MIC Sphere array1a

Option Explicit
'Script written by davide del giudice
'Script copyrighted by www.madeincalifornia.blogspot.com
'Script version Thursday, 16 September 2009 17:43:39
Dim i,arrpoint1,strSphere

For i=0 To 100

arrPoint1 = Array(i/5,cos(i),sin(i))

Rhino.AddPoint arrPoint1
Rhino.AddSphere arrPoint1, i*0.01


MIC Sphere array_circle vector n-1_02
Option Explicit
'Script written by davide del giudice
'Script copyrighted by www.madeincalifornia.blogspot.com
'Script version Thursday, 16 September 2009 17:43:39


Dim i,j,arrpoint1,arrPoint2,arrPoint3,strSphere,arrPlane,arrLine1,arrLine2
Dim arrCircle1,arrCircle2,arrDynamic(0),arrVector1,arrVector2,arrPlane1,arrPlane2

For i=0 To 200

arrPoint1 = Array(cos(i)*i*0.01,sin(i)*i*0.01,i*0.05)
Rhino.AddPoint arrPoint1
'Rhino.AddSphere arrPoint1, i*0.001

arrVector1=Rhino.VectorCreate (arrPoint1, arrPoint2)
arrVector2=Rhino.VectorCreate (arrPoint1, arrPoint3)

arrPlane1 = Rhino.PlaneFromNormal (arrPoint1, arrVector1)
arrPlane2= Rhino.PlaneFromNormal (arrPoint1, arrVector2)

arrCircle1=Rhino.AddCircle (arrPlane1, 0.05)
arrCircle2=Rhino.AddCircle (arrPlane2, 0.05)

arrLine1= Rhino.AddLine (arrPoint1, arrPoint2)

' rhino.AddLoftSrf arrCircle1,arrCircle2


For j=0 To ubound (arrDynamic)

'rhino.AddLoftSrf arrCircle1,arrCircle2

End Sub

MIC Sphere array_phyllotaxis2

Option Explicit
'Script written by davide del giudice
'Script copyrighted by www.madeincalifornia.blogspot.com
'Script version Thursday, 16 September 2009 17:43:39

Dim i,arrpoint1,arrPoint2,strSphere

For i=0 To 500

arrPoint1 = Array(cos(i)*i,sin(i)*i,i/1000)
arrPoint2 = Array((cos(i+1)*i),(sin(i+1)*i)+1,(i+1/1000))

Rhino.AddPoint arrPoint1
Rhino.AddPoint arrPoint2
'Rhino.AddSphere arrPoint1, i*0.1

rhino.AddLine arrPoint1,arrPoint2

04 January 2010

Co-de-iT website launch 01012010

I'm very happy to announce that with Andrea Graziano and Alessio Erioli we are starting a new adventure called Co-de-iT.

Co-de-iT is a connectivity HUB for computation, design, research & teach
ing in architecture. Project development and consultancy happen here, both first person by our team members or by building communication with specific required knowledge subjects, bridging different fields to the project.

Co-de-iT is also configured as a HUB that means to operate as a catalyzer in the architectural process to trigger and engage (both conceptually and technically) levels of complexity and differentiation as an evolved answer to project instances that range from conceptual design to personalized fabrication.

Co-de-iT try to promote in Italy, but not only, events and workshops about digital tools and generative methodology into architectural and design process.
Co-de-iT website
Co-de-iT about us page
Co-de-iT (starting) code page
Co-de-iT twitter page
Co-de-iT facebook page