\nCodon

Cell-f assembly

Posted in examples, tutorials by pierre forissier on December 20, 2011

Inspired by the reading of AN EVOLUTIONARY ARCHITECTURE by John Frazer and the generative toolbox.

Structure generations based on John Orton Conway’s Game of Life.  The goal is to explore the emerging resulting patterns of the genetic algorithm whilst stacking all generations. The automation requires an initial finite array of cells and a maximum number of generations. Their initial state (life or death) is randomly assigned based on an arbitrary threshold. The script calls a recursive routine that decides the state of each cell (life or death) depending on the state of their neighbours (8 in total) at the end of each iteration. In order to best approximate an infinite game board, the automation wraps at the edges.

The stacking generates unexpected & elaborate patterns in xyz directions. The search for emergent behaviours is on.

The initial script has been developed in Python for Rhino5. This version is not optimized but presents a clear function split. The sumNeighbours function is inspired from an elegant solution by algorithmicdesign.net

Code:

import rhinoscriptsyntax as rs
import math
import random

def RandomGenesis(intGridi,intGridj):
arrPt=[]
for i in range(intGridi):
arrj=[]
for j in range(intGridj):
rnd = random.random()
if rnd>0.97:# density threshold for initial cells
arrj.append(1)
else:
arrj.append(0)
arrPt.append(arrj)
return arrPt # arrPt is a list of i no. lists _ each list contains j no. elements (1s or 0s)

(more…)

Tagged with: , , ,

Shingles flow

Posted in examples, tutorials by pierre forissier on March 28, 2011

Script developed to populate free-form surfaces with overlapping irregular panels otherwise known as ‘shingles’. Sculpture project for North Scotland by biomorphis.

Call Main()
Sub Main()
Dim strSurface : strSurface = Rhino.GetObject(“Select original surface”,8)
Dim arrDomU, arrDomV
arrDomU = Rhino.SurfaceDomain(strSurface, 0)
arrDomV = Rhino.SurfaceDomain(strSurface, 1)
Dim strDivU : strDivU = Rhino.GetReal(“Please enter number of divisions in u direction”,200)
Dim strDivV : strDivV = Rhino.GetReal(“Please enter number of divisions in V direction”,20)
Dim n,t,p
Dim dblParameterU,dblParameterUGap
Dim dblParameterV
Dim dblParameterVLap
Dim arrPtU(),arrPtUOffset(),arrPtOverlap(),arrPtUGap()
Dim arrPtUV(),arrPtUVOffset(),arrPtUVOverlap(),arrPtUVGap()
Dim arrCtrPt()
Dim strLoft1,strLoft2
Dim arrObjects
Dim arrVecNorm
Dim arrKnot, arrKnotOffset,arrVectilt,arrKnotOverLap,arrKnotGap,arrKnotOffsetGap
Dim strSrfShingle,strShingleExtrudePath
Dim dblOverLap: dblOverLap = 0.2
Call Rhino.EnableRedraw(False)
For n=0 To strDivV
Dim dblVPercent: dblVPercent = ((arrDomV(1)-arrDomV(0))/strDivV)*0.3*rnd
dblParameterV=arrDomV(0)+((arrDomV(1)-arrDomV(0))/strDivV)*n + dblVPercent
dblParameterVLap=dblParameterV+((arrDomV(1)-arrDomV(0))/strDivV)*dblOverLap
For t=0 To strDivU
Dim dblUPercent : dblUPercent = (arrDomU(1)-arrDomU(0))/strDivU*0.3*rnd
dblParameterU=arrDomU(0)+((arrDomU(1)-arrDomU(0))/strDivU)*t + dblUPercent
dblParameterUGap=dblParameterU-((arrDomU(1)-arrDomU(0))/strDivU)*0.04′>>>>> gap dimension
arrKnot = Rhino.EvaluateSurface(strSurface,Array(dblParameterU,dblParameterV))
arrKnotOverLap = Rhino.EvaluateSurface(strSurface,Array(dblParameterUGap,dblParameterVLap))
arrKnotGap = Rhino.EvaluateSurface(strSurface,Array(dblParameterUGap,dblParameterV))
arrVecNorm = Rhino.SurfaceNormal(strSurface,Array(dblParameterUGap,dblParameterV))
If isarray(arrVecNorm)Then
Dim dblSlateTilt : dblSlateTilt = (10+5*rnd)
arrVectilt = Rhino.VectorScale(arrVecNorm,dblSlateTilt)
arrKnotOffset= Rhino.PointAdd(arrKnot,arrVectilt)
arrKnotOffsetGap= Rhino.PointAdd(arrKnotGap,arrVectilt)
End If
(more…)
Tagged with: , , ,

T-Splines towers

Posted in examples by pierre forissier on December 11, 2009

Exploring T-Splines options and manual operations.

Tagged with: , , ,

T-Splines frame

Posted in examples by pierre forissier on December 10, 2009

Pavilion modelled with T-Splines trial version for rhino. It’s a really nice plug-in….

Tagged with: , , ,

Panelion

Posted in examples by pierre forissier on October 20, 2008

Inspired by DRL TEN Pavilion.

Modeled in Rhino with Paneling Tool onto loft surface.

Original panel modeled in SketchUp (see below) and imported into Rhino. Seamless joints are obtained by selecting the loft surface as a base surface after you selected the x, y & 3rd point refs. Simple.


Tagged with: , ,

blobtecture

Posted in examples by peterguthrie on October 5, 2008

blob2

blob1

blob3

Another experiment with the new PanelingTools plugin for Rhino.

UPDATE: There are now some examples and short tutorials on the mcneel labs website for PanelingTools

Here is the result of the ptPanelSurface command on a nurbs surface (the surface is just some ellipses lofted together):

surface

and this shows the object that I used to populate that surface, with annotations showing in which order you pick points with the ptOrientToGrid command:

object

Tagged with: , , ,

panelingtools building

Posted in examples by peterguthrie on October 3, 2008

paneling05

paneling01

paneling02

paneling03

paneling04

This was made using the new plugin for rhino PanelingTools.

It can divide a surface into a grid and then orient (flow) objects along it, deforming the objects to fit as it goes.

Lots of fun!

Tagged with: , , ,
Follow

Get every new post delivered to your Inbox.

Join 25 other followers