PORTFOLIO 2015-2019 | SIGEN CHEN E: csgen@umich.edu T: 1(734)780-0935
SIGEN CHEN Portfolio:(Complete Version)
https://issuu.com/csgkelvin/docs/portfolio_sigen_chen
Contact Tel: 734-780-0935
PROFILE Master of Architecture Bachelor of Architecture
E-mail: csgen@umich.edu
Website: www.sigenchen.com
Profession Experience • Rearch Assistant
Lab for material architectures - University of Michigan • Internship in Archimorphic
Linkedin: linkedin.com/in/csgen
Rhino Grasshopper Revit AutoCAD Sketchup Photoshop Illustrator Indesign Microsoft Suite V-ray Kangaroo RhinoPython Python C# in Grasshopper Maya ZBrush Depthmap
• Rhino3D+Grasshopper lecturer
Remote March.2018 - June.2019 Remote Aug. 2016
Governmental project to preserve the traditional rural area in China • Yuanqian Rural Union Design studio
Studio for preserving and renovating the traditional houses in the rural area • Smart Geometry Conference
sg 2016: Hybrid Domains, at Chalmers University of Technology
Xiamen, China
Aug. 2016 - Oct. 2016 Xiamen, China Apr. 2016 Gothenburg, Sweden
Award • 2017 National TEAM 20 Architecture and Urban Planning Competition Finalist Award
Thesis Project at undergraduate, Xiamen University Watching and Reshaping • National Architecture and Urban Planning Studio Design, Excellence Prize
Thesis Project at undergraduate, Xiamen University Watching and Reshaping
• University of Michigan - Taubman College of Architecture and Urban Planning
Physical model making; Laser cutting; 3d printing; Fabrication
June.2018 - June.2019
• Ding Mei Village Renovation Design
Chinese: Native
Other Skills
Los Angeles, USA
StudiOne
Education
Swedish: Basic
June.2018 - Aug.2018
StudiOne
Lauguage English: Working Proficiency
Ann Arbor, MI, USA
Three-month summer internship • Design Tutor
Software
July. 2019 - Aug.2019
2 -Year Master of Architecture • School of Architecture, LTH, Lund University
Exchange program for a semester • School of Architecture, Xiamen University
5 -Year Bachelor of Architecture
Aug. 2017 Xiamen, China Nov. 2017 Xiamen, China
Sep. 2017 - May 2019 Ann Arbor, MI Jan. 2016 - May 2016 Lund, Sweden Sep. 2012 - June 2017 Xiamen, China
01 Watching and Reshaping Renovation of old opening market //Supervisor: Suyu Li, Jie Han //Reshape of Old Folk Market //Designer: Sigen Chen, Wenqian Chen //Contribution: All work presented //Thesis of Undergraduate //Site: Xiamen, Fujian, China //Time: 02,2017 - 05,2017 //Award: 2017 National TEAM 20 Architecture and Urban Planning Competition Finalist Award; National Architecture and Urban Planning Studio Design, Excellence Prize The proposal is the renovation of an old market. The original market is one of the oldest opening market in the city. However, it has been unorganized and crowded for years, which attracts less and less people and affects the business and surrounding residents a lot. The renovation aims to reactive the market and surrounding area, and revive the business. Some of old brick walls are reserved as the homage of the vernacular traditional construction. The new business is introduced to the market to increase the diversity. The original market area is divided into two parts, one of which contains the market and other programs, including restaurant, gardening experience, entertainment, etc. Another part is the urban farm, which produces vegetable, fruit, flowers that can partly supply the market. The urban farm is partly owned by nearby community, which strengthens the participation of the community. So the market with the urban farm reconstructs a self-sustained system that can get the profit to keep its maintainence and stop itself from aging and being abandoned again. The ground floor of the market is flexible and dynamic according to the time. After the opening market in the busy morning, all the tables can be lifted up and the whole space without barriers can contain other activity, such as performance, exibition, etc.
02 Soft Receptacle Qiao xiang Folk cultural and creative center design //Supervisor: Suyu, Li //Designer: Solo work //Contribution: All work presented //Program: 10300m2 cultural and creative center including exhibition, theatre and artifact studio //Site: Zhangzhou, Fujian, China //Time: 05,2015-06,2015 The project is located on the former site of the Qiaoxiang Theatre in ancient city of Zhangzhou, Fujian, China, with an old part of the theatre need to be preserved on the site. The site is on the margine of the ancient city, with its own history memory, however surrounded by both ancient and growing new city. Therefore the site is of great importance for harmonizing complicated spirits burdened on it. The amount of friendly public spaces in this area has been reduced for years because of the increaseing new buildings and traffic, which limit and harm the diversities and qualities of public activity. I hope that this project can provide more public space, as well as fulfill public potential and activate the surrounding area. In Chinese philosophy, the soft triumphs the hard. When there are different force from outside conflicting, sometimes the best way is to post a soft gesture to fit and handle the quandary. Like the water erodes rocks, the soft always overcomes the hard. On the other hand, the question about what would happen when the soft material and the hard one encounter each other fascinates me. They always create the space out of my expection. I explore different ways that the soft and hard material interact with each other, and how they merge into a receptacle that attracts and contains the pulic activity.
1 2 3 4 5 6 7 8 9 10 11 12 13A 13B 13C 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
0 1
Entrance hall Tickets Office Outdoor display Cafe Preparation Lobby Retail Cultural exhibition Cultral shop Outdoor square Open-air puppet show Puppet show theatre Small puppet show Indepedent puppet show Folk-custom exhibition Artifact exhibition Outdoor exhibition Team activity Workshop Pool Temporary exhibition Wing stage Dressing room Open to below Resting room Master studio Roof platform Art installations exhibition Tearoom Conference room Rehearsal room Vertical exhibition hall Device room
5
10M
First floor plan
ETFE membrane
Roof terrace Conference room Art Installation Exhibition Master Studio Workshop Space for public activity Artifact Exhibition
Folk-custom Exhibition Independent Puppet Theatre
Folk-custom Exhibition Small Puppet Theatre
Puppet Show Theatre
Folk-custom Exhibition Temporary Exhibition
Entrance Hall Pool Outdoor Exhibition
Open-air Puppet Show
Outdoor Public Square
Outdoor Display
site with a part of the old theatre
old squares that has disappeared
flow of pedestrian and dense assemble points
scattered blocks avoid the dense points
form a route open for public
carve the bottom part
dent the top layer as sightseeing platform
suken to intensify squares
Rain Water Wastewater Sun energy Wind energy Living system
Ecosystem ball Working system Agriculture Animal husbandry
Power Station
Water treatment
Algal biofuel
Sea Water
Fishery
03 Sea Utopia Qiao xiang Folk cultural and creative center design //Program: Future City based on global warming //Evolo 2017 proposal //Designer: Solo work //Contribution: All work presented The project is based on the background of global warming and contiunous sea level rising. Many big cities will be overwhelmed if the sea level goes on rising more and more quickly, and many humans have to found habitats over the water or sea. The project set up a skyscraper, which can be seen as a small city, to solve the dilemma and build a complete self-sustained system. The project is higher than the most current housing so that it can get rid of the flood. In addition, it is higher than the current wind generator, so it is reasonable to equip it with the wind generator, which will generate much more power for the whole building. The natural energy is fully utilized in this project, the wind, the sunlight, and the water. The sun light is always a problem for the deeper part when it comes to a super skyscraper. This is one of the most important reason that the lower part is composed of the rotable structure diven by the wind power gear. The kinetic system gets some reference from structure of Theo Jansen's walking beast, and it can make different parts enjoy the sunlight in different times.
Housing space
Transparent photovoltaics Walking paths
Kinectic Structure: The wind drive the the wind turbine, which spun the bevel gear on the top. The gear system then run the whole transmission through several gears
Fishery
Water treatment Wind generator Working space
Algal bioelectricity Power station Vertical transportation Animal husbandry
Agriculture
Ecosystem circle
Algal bioelectricity: The algae located at the lowest part can grow in the up and down sea water and produce energy through the photosynthesis. The wastewater from the higher feed the algae with various nutrients, thus form an effective cycle.
Agriculture: The new agriculture adopts the accurate drip irrigation and the automated mechanized system to boost the product and save the labor and space
Ecosystem circle/lab/museum: All the ecosystems that have been destroyed by the rising sea level and flood are shrunk into several spheres, for further observation and research, also tombs for nature
Fishery: Large fishing installations with huge nets can flexibly adjust itself to collect lots of fish and cultivate them surrounding the building for long time industry
Animal husbandry: Intencive animal husbandry facility feeds the stocks and compose a complete industry chain
Water treatment: Water treatment factory uses reverse osmosis(RO) technology to purify the collected sea water
Power station: Power station mainly uses the concentrator photovoltaics to transfer the sun energy to electricity, and it also utilizes wind energy collected from the top
Living Unit: Housings gather around the large loop, for the convenience of energy utility
Walking paths: Walking paths and the surrounding green form a huge vertical park with rich fresh air for people living in the higher building
Site Context and public axis
Lifting the residential tower to open the ground space
Extracting the service core, and back tower spanning over the flyover.
Sonic tube enclosing the flyover and the pedestrian
Hydroponic system and the interaction with the landscape
The complete design
04 Flyover Parasite Residential building in Detroit //Supervisor: El Hadi Jazairy & Sean Vance //Integrate different systems into the living project //Designer: Sigen Chen, Aaradhana Aiyappa, Trisha Das //Contribution: All work presented //Site: Detroit, United States //Time: 9, 2018-12,2018 Considering the existing flyover which is spacially intruding the site, the project aims to span over the flyover to integrate it as a part of the design. The project takes the advantage of the suspended steel truss system to enable the spanning. The main structure is consists of vertical columns and the double hight vierendeel truss located at the top and the mid level. The secondary structure are the frames placed each alternate floor, which are suspended by vertical connections. In this project, the units are modular. There are several type of modules aggregating in this system, which are similar to some extent. Each unit has its own framework. Theoretically, each unit can be pulled in and out whenever needs. In order to isolate the sounds and the vibration of the flyover, a tunnel is designed to enclose one section of the flyover to absorb the impact. At the meantime, a garden and farming space is also placed surround the tunnel, which activates the public atmosphere surrounding the flyover. The project integrates lots of public space into the residential design. The top and mid-level part is the double-height hydroponic gardens. There are also several hydroponic gardens in between residential units. These gardens can even produce vegetatable for residences. Surrounding the tunnel enclosing the flyover is the garden and farm space, with commercial and aesthetic value. At the ground floor, there is a market space for fresh food, which provided vegetable by the farm surrounding the flyover. The other space on the ground floor is integrated with the landscape extending to the river bank.
05 Immersive Illusion Immersive Museum Design //Supervisor: Matias del Campo, Sandra Manninger //Explore the Artificial Intelligence and images integrated in the design process //Designer: Sigen Chen, Varalikaraj Singh, Mengyang Wang //Contribution: All work presented //Thesis Project for Graduate //Site: Tokyo, Japan //Time: 02, 2019 - 05,2019 In today’s world of Data, where everyone is surrounded by it, we feel it is important to connect the data to the real world because it influences not just at the urban scale but also at the global level. This can be achieved by creating interactive virtual environment through architecture. The idea is to go beyond virtual contextualisation by creating interactive virtual environment through reflection and artificial intelligence. We gathered data from change in distribution of pixel caused due to variation in texture, color, brightness, saturation, and contrast among various images. The gathered information further helps to develop various forms with help of an algorithm. The ideal form is then utilised in the design of a museum of Immersive Illusions. This museum explores the idea of an immersive environment. The façade of the museum is user interactive, the user visiting the museum connects to an app where they send images of the city captured by them. The data of this image is then processed and create the form which is depicted on the digitala facade, representing the city and daily life in an uncanny way. The museum design seeks to achieve a synthesis of AI with architecture by a blurring of boundaries between the space through virtual reality, ultimately creating an immersive environment which starts questioning the boundary of the space and how it can affect the architecture.
ITERATIONS ITERATIONS
ITERATIONS ITERATIONS WITH WITH DIFFERENT DIFFERENT ISO ISO VALUE VALUE
ITERATIONS ITERATIONS WITH WITH DIFFERENT DIFFERENT RESOLUTION RESOLUTION
06 Pixel Data Firestation Design //Supervisor: Laida Aguirre //Firestation Design //Designer: Solo work //Contribution: All work presented //Site: Ann Arbor, Michigan, USA //Time: 10,2017-12,2017 The project is trying to explore a methodology with which to incorporate data into architectural design. The project engages the dramatic and fictional portrayal of firefighters in entertainment, specially through the movie "Towering Inferno". The project is about firestation, so this film is used to translate the fiction in this project. The way is to interprete the movie's dramatic arch from the perspective of colors. The first step is to mine the color palette to detect the mood changing during the film. The film is splitted into several sections every 10 minutes, whose color changing reflects the story line. The curves are extracted from the data chart, which represent the dramatic arch from another perspective. Then the data obtained is integrated into the design through a massing process where function is qualified through these changing forms. The amount of time that colors show up are translated into the height, and the extracted curves from the data chart are applied to the form of massing, which recomposite the whole story frame by frame. The project is trying to combine the visible way and the statistical way. The project does not attempt to be explicit about the information gathered but rather create spaces that can be similarly episodic and narrative driven. So each space people run into would show a part of the story by its form. Together, the project becomes a reappearance of the film narrative.
07 So Scopic Hotel Design and Post Digital Methodology //Supervisor: Jeffrey Halstead //Explore the relationship between building elevation and cinematography //Designer: Solo work //Contribution: All work presented //Time: 02, 2018 The project starts from exploring the methodology of make use of famous building facade with the focus on the visual effects brought by different perspective. Through projecting the facade of Portland Building to one simple cube, this post-modernism method is applied with the integration of digital tools such as ZBrush. Through scaling and projecting from different angles, the facade of Portland Building is recomposited on the cube. The fragments of Portland Building extract the feature of the facade in different ways and reconstruct a new object. Because of the rotating, scaling, overlapping and projecting from the perspective, fragments becomes exaggerating, while in a way still keep their identifiabiligy. The project is trying to integrate some cinametic ideas from the film Rear Window, which is famous for its set design. The film is describing the space in the courtyard and beside the windows. The courtyard is surrounded by several different scale buildings around it. They have different systems and overlap with each other. So the project tries to create and applies different window systems onto the exterior in different angles, overlapping and shifting their scale, the building facade becomes the reflection of urban context. Those different folding systems are also brought into the interior, which keeps the continuity of the exterior and the interior. So the exterior massing is overlapping and folding different faรงade systems and mapping onto it. The interior logic is trying to keep the folding systems and carve out the hollow space for courtyards. Another idea in the film is, in order to make the window as the story board that can show the event, the depth behind the window has to be compressed to some extent., so that everything can happen just beside the windows that like a stage. The main actor was sitting beside his own window to watch the show. This is the actually a double frame system. In order to explore different visual connection in the building, not only confine to what the film has shown, but also apply the logic to compress the space in another way and create more possibilities, I develop several types of windows in different scales, which shift the perspective angle, bring the scene into the interior through telescope device and periscope device. The diagram shows different potential of windows in different scales, the largest one can evolve into the occupiable space, others can develop into periscope device and telescope device, which is a way to manipulate the visual sense of space. Viewers can see something happen in some decoherent space from apertures. The courtyard here can be in reference with Rear Window, which is surrounded by several sides of walls and become the stage for watching. Those apertures are the instrument for observing the events happening in the courtyaryd.
08 Fog Oasis Humid Habitat for Local Community //Supervisor: Susanne Gosztonyi & David Andreen //Humid habitat for local community in Imlil //Collaborator: Sigita Pociute //Contribution: Concept Design, All Drawings presented, Physical&Digital modeling //Program: 3100m2, design the habitat for the little community located in the Imlil valley //Site: Imlil, Morocco //Time: 02,2016-05,2016 Imlil is a small village located in the Atlas Mountains in the Kingdom of Morocco. The major problem in the semi-arid area is the absence of water, even if the climate here is not so harsh as in the Sahara, the need for obtaining water are requring a unconventional solution, with more efficiency and less money. The program aims to provide a habitat for local community and solve the water scarcity in an efficient way, by focusing on the fog-harvesting technology and exploring the possibility of the integration between this technology and architecture. The initial idea of this fog harvesting mesh incorporated with whole structure was a simple flat mesh, which eventually envolved into an optimization that can handle and create a fog oasis habitat in the semi-arid valley.
Water harvesting mesh covering the whole area Tiny water pipes leading the water
Structures supporting the mesh Water pipes collecting water Roof balcony for private garden
The opening terrace on third level
The opening terrace on second level Bridges connecting different terraces
Living spaces Workshop for processing Workshop for handcraft
Reading room & Library Storage for food and tools Water grooves for collecting melting water Green public gardens among the houses Paths between houses and greens Water collections on the ground
Water channel leading down melting water
Crops and plants irrigated by the melting water
Underground water storage
Dry mesh
Water settle from mesh
Tube
Funnel
Collected water
Prototype
Funnel to lead down water
Tiny pipes getting water down Mesh for fog-harvesting
Different arc of water channel bump the water down and lead it to the collecting channel
Connecting with the other level of pipes
Prototype model
09 Synear City Mixed-use Project //Firm: Archimorphic- Los Angeles //Summer Architectural Internship //Location: Zhengzhou China //GFA: 204,124m2 //FAR: 3.99 //Program: Mall 44,090 m2 ; Lifestyle Retail 22,484 m2 ; LOFT 68,360 m2; SOHO 69,090 m2 //Team: Sigen Chen, Yixin Liu, Luoya Tu, Ruben Van Colenberghe //Contribution: 3D modelling, plans, sections, diagrams, etc. //Time: 06, 2018 Synear city is a mixed-use project with capacity of 204,000m2, including 44,000m2 commercial shopping mall, and 22,000 m2 lifestyle retail street. Three high-rise towers provide around 140,000 m2 LOFT and SOHO units, which has 4.48 m floor to floor height. It is one of the most popular products in the market due to its adaptability to change of use. I participated in concept design, schematic design and design development. Responsibilities include 3d modelling in Rhino and Revit, drawings (plans, sections, elevations, diagrams), preparing presentation documentations, etc.
10 Ariel City Mixed-use Project //Firm: Archimorphic- Los Angeles //Summer Architectural Internship //Location: Zhengzhou China //GFA: 285,163m2 //FAR: 3.65 //Program: Residential 201290.81 m2; Retail 2347.61 m2; Community Center 1884 m2; Kindergarten 2942.31 m2 //Team: Sigen Chen, Yixin Liu, Luoya Tu, Stella Chen, Ruben Van Colenberghe //Contribution: 3D modelling, plans, sections, diagrams, etc. //Time: 08, 2018 Ariel City is located at the junction of Honghe Road and Hengsi Road in Zhengzhou, Henan province. The entrances of the project are located at the south and east side to not interfere with urban green spaces located at the north and west sides. The project includes (10) residential towers, (1) community center, (1) kindergarten. The (6) identical towers are arranged around the four large unit buildings 2, 3, 9 and 10 and the central garden. The composition forms an opening facing the western urban green space. The community center and kindergarten are located at the east side, adjacent to Zongsan Road. The design begins with the intent to connect nature through the imagination of life into a series of space elements: courtyard, patio, balcony, terrace, and plants. Through these platforms air, light, and life are transfused into the interior of the building. I participated in concept design, schematic design and design development. Responsibilities include 3d modelling in Rhino and Revit, drawings (plans, sections, elevations, diagrams), preparing presentation documentations, etc.
11 Playscape Interactive Installation for Exhibit Colombus //Firm: Lab for material architectures - University of Michigan //Research Assistant //Team: Sean Ahlquist, Tracy Weisman, Yingying Zeng, Sigen Chen, Ruxin Xie, Allison Booth, Christopher Humphrey, etc. //Contribution: Digital modelling, Structure optimization, Data mapping, Fabrication //Time: 07, 2019-08,2019
Uniquely designed to engage neurodiverse individuals, such as those with autism spectrum disorder (ASD), Playscape is designed as a series of sensory-responsive moments made of custom-knitted fabrics and interactive lighting. While much of our built environment can be overstimulating to those with ASD, through extensive cross-disciplinary research, this installation embraces the beneficial aspects of hyper-awareness to environmental stimuli helping to foster a balanced state of well-being. Playscape gives individuals the agency to craft their own sensory experiences within an environment that offers opportunities to practice social and collaborative play. My responsibilities include digital modelling, structure analysis, data mapping, digital fabrication, onsite assembling.
12 Generation Research Multiple Form Finding Research with Digital Tools //Program: Physical simulation for multiple methods of form finding //Software: Rhino, Grasshopper, Kangaroo //Designer: Solo work //Contribution: All work presented
13 Bending Structure 7-Axis Robotic Arm Research //Supervisor: Wes Mcgee //Explore the robotic arm bending tool and potential of steel structure //Designer: Sigen Chen, Ziyuan Feng, Chao Deng //Contribution: All work presented //Digial Fabrication //Time: 10, 2018-11,2018
14 Computing Design RhinoPython Research //Supervisor: Glenn Wilcox //Integrate the Rhino Python scripting during the design process //Designer: Sigen Chen //Contribution: All work presented //Koch snowflake in 3D, Flocking agent system, etc. //Time: 10, 2018-12,2018 #Generate U V surface points import rhinoscriptsyntax as rs import random as rnd import math as mt
#define u and v values based on step u = UDomain[0] + Ustep * i v = VDomain[0] + Vstep * j
def Main():
#evaluate surface Pt[(i,j)] = rs.EvaluateSurface(srfGUID, u, v)
rs.EnableRedraw(False) intU = 15 intV = 15 Pt = {} PtEnd = {} pipecrv = [] #select surface srfGUID = rs.GetObject('select surface', rs.filter.surface) crvatt = rs.GetObject('select crv',rs.filter.curve) #find surface domain UDomain = rs.SurfaceDomain(srfGUID, 0) VDomain = rs.SurfaceDomain(srfGUID, 1) attractpoint = rs.EvaluateCurve(crvatt,rs.CurveParameter(crvatt,0.85)) print UDomain, VDomain #set step Ustep = (UDomain[1] - UDomain[0]) / intU Vstep = (VDomain[1] - VDomain[0]) / intV print Ustep, Vstep #loop to plot points for i in range(intU + 1): for j in range(intV + 1):
#plot points point = rs.AddPoint(Pt[(i,j)]) #rs.AddTextDot((i,j), point) #get vector normal to srfGUID at a u v parameter VecNorm = rs.SurfaceNormal(srfGUID, (u,v)) #scale vector VecNorm = rs.VectorScale(VecNorm, rnd.randrange(1,10)) #compute translation of point along vector PtEnd[(i,j)] = rs.PointAdd(Pt[(i,j)], VecNorm) #plot points point = rs.AddPoint(PtEnd[(i,j)]) for i in range(intU + 1): for j in range(intV + 1): if i > 0 and j > 0: #crv01 = rs.AddBox((Pt[(i,j)], Pt[(i-1,j)], Pt[(i-1,j-1)], Pt[(i,j-1)], PtEnd[(i,j)], PtEnd[(i-1,j)], PtEnd[(i-1,j-1)], PtEnd[(i,j-1)])) crv01 = rs.AddCurve((Pt[(i,j)], Pt[(i-1,j)], Pt[(i-1,j-1)], Pt[(i,j-1)], PtEnd[(i,j)], PtEnd[(i-1,j)], PtEnd[(i-1,j-1)], PtEnd[(i,j-1)])) #rs.AddPipe(crv01,(0,0.8,1),(0.4,0.4,1),cap = 2) pipecrv.append(crv01) #rs.AddLoftSrf((crv01, crv02)) for i in range (len(pipecrv)): crvend = rs.EvaluateCurve(pipecrv[i],rs. CurveParameter(pipecrv[i],1)) radius = rs.Distance(crvend, attractpoint)
#pipeobject = rs.AddPipe(pipecrv[i],(0),(radius*0.02),cap=2) #rs.ObjectColor(pipeobject, (rnd.randrange(0,255),rnd. randrange(0,255),rnd.randrange(0,255))) #mat = rs.AddMaterialToObject(pipeobject) mat = rs.AddMaterialToObject(rs.AddPipe(pipecrv[i],(0,0.8,1),(0. 3,0.3,radius*0.07),cap=2)) rs.MaterialColor(mat,(rnd.randrange(0,255),rnd. randrange(0,255),rnd.randrange(0,255))) rs.EnableRedraw(True) Main()
self.attraction = ATTRACTION self.radious = RADIOUS self.attractmesh = MESH #here make a new list to contain all previous positions for the trail self.trailPts = [] #save the current position as the first point in the trail self.trailPts.append(self.pos) #make a new variable to contan the ID string of the trail self.trailID = "" print "made an agent" def update(self, agentPopulation): #update the vector of the agent self.updateVec(agentPopulation) #move each agent self.move() self.drawTrail() def move(self):
vec)
#updates the position list of the agent self.pos = rs.PointAdd(self.pos, self. #store the new position in the trail list self.trailPts.append(self.pos)
#delete the old point object in rhino space rs.DeleteObject(self.pointID) if len(self.trailPts)>450: self.trailPts.pop(0) #make a new point object in rhino soace and store its new ID self.pointID = rs.AddPoint(self.pos) def updateVec(self, agentPopulation): neighborAgents = [] neighborAgentsDistances = [] for currentOtherAgent in agentPopulation : coord = currentOtherAgent.pos dist = rs.Distance (self.pos,coord) if dist< self.radious and dist>0: neighborAgents. append(currentOtherAgent) neighborAgentsDistances. append(dist)
import rhinoscriptsyntax as rs import random as rnd import scriptcontext as sc
if len(neighborAgents)>0: acc = [0,0,0] aVec = self. AlignmentVector(neighborAgents, neighborAgentsDistances)
if rs.VectorLength(aVec)>0: aVec = rs.VectorUnitize(aVec) aVec = rs.VectorScale(aVec, self. def __init__(self, POS, VEC, POINTID, ALIGNMENT, SEPARATION alignment) sVec = self.SeparationVector ,COHESION, ATTRACTION, RADIOUS, MESH ): (neighborAgents, neighborAgentsDistances) # initiate the class by matching the inputs to the variables in the if rs.VectorLength(sVec)>0: class sVec = rs.VectorUnitize(sVec) sVec = rs.VectorScale(sVec, self. self.pos = POS separation) self.vec = VEC cVec = self.CohesionVector self.pointID = POINTID (neighborAgents) self.alignment = ALIGNMENT self.separation = SEPARATION if rs.VectorLength(cVec)>0: self.cohesion = COHESION class Agent():
cVec = rs.VectorUnitize(cVec) cVec = rs.VectorScale(cVec, self. cohesion) attVec = self.SrfAttractVector() if rs.VectorLength(attVec) > 0: attVec = rs.VectorUnitize(attVec) attVec = rs.VectorScale(attVec, self. attraction) acc = rs.PointAdd(acc, aVec) acc = rs.PointAdd(acc, sVec) acc = rs.PointAdd(acc, cVec) acc = rs.PointAdd(acc, attVec) self.vec = rs.PointAdd(self.vec, acc) 1/10)
#self.vec = rs.VectorScale(self.vec, self.vec = rs.VectorUnitize(self.vec) #self.vec = rs.VectorScale(self.vec, 2)
else: acc = [0,0,0] attVec = self.SrfAttractVector() if rs.VectorLength(attVec) > 0: attVec = rs.VectorUnitize(attVec) attVec = rs.VectorScale(attVec, self. attraction) acc = rs.PointAdd(acc, attVec) self.vec = rs.PointAdd(self.vec,acc) self.vec = rs.VectorUnitize(self.vec) #self.vec = rs.VectorScale(self.vec, 2) self.updateVecBoundary() def updateVecBoundary(self): if self.pos[0] > 300: if self.vec[0] > 0: self.vec[0] = -rnd.randrange(1,10) if self.pos[0] < 0: if self.vec[0] <= 0: self.vec[0] = rnd.randrange(1,10) if self.pos[1] > 300: if self.vec[1] > 0: self.vec[1] = -rnd.randrange(1,10) if self.pos[1] < 0: if self.vec[1] <= 0: self.vec[1] = rnd.randrange(1,10) if self.pos[2] > 300: if self.vec[2] > 0: self.vec[2] = -rnd.randrange(1,10) if self.pos[2] < 0: if self.vec[2] <= 0: self.vec[2] = rnd.randrange(1,10) return self.vec def AlignmentVector(self, neighborAgents, neighborAgentsDistances): resultingVec =[0,0,0] for i in range(len(neighborAgents)): agent = neighborAgents[i] currentDist = neighborAgentsDistances[i] vec = rs.VectorScale(agent.vec,self. radious/currentDist) resultingVec = rs.PointAdd(resultingVec, vec) return resultingVec def SeparationVector (self, neighborAgents, neighborAgentsDistances): resultingVec = [0,0,0] for i in range(len(neighborAgents)):