如何用 grasshopper 模擬建築的人流?

在北京的設計周看到的,想請教下應該如何實現


先說題主的問題看起來不太像是人流模擬

比較像是空間句法(space syntax)里的可視性(visuality)分析

=====

這陣子剛好有修一門課在教類似的東西

不管是在processing 或是 GH里的python/C#都可以實現

基本概念是,要活用agent-based system

以一個大型街頭活動來說

可以區分成

人/ 食物攤販/ 飲料攤販/ 廁所/ 表演舞台

其中人可以區分成

a.有明確目標 (我就是要去看錶演,我就是要去上廁所)

b.跟隨意閑晃 (廁所上一上,就跑去看錶演,再跑去吃食物)

以Java語言來說

每一個點,代表一個人,而在創造出這個點的時候

a群組的人會被灌輸隨機的一個需求(食物攤販/ 飲料攤販/ 廁所/ 表演舞台)

b群組則是隨著時間演進而會改變需求

同時也要設定在屬於人的這個class裡面,經過一段時間若需求沒有被滿足,則會死掉(或者說離場)

附上一張大概模擬的樣子

你看到那些最小的點就是人群模擬,稍微大一點的是廁所與食物飲料攤販,最大的是表演舞台

左上角的幾種分別是

D-Map - 人群死亡的地方會以透明淡灰色標註,越多人死的地方,會越來越白,表示那個地方的流動性最差

Density - 則是顯示了哪個區域最為擁擠

Counter - 則是顯示各攤販被光顧了幾次

Path - 則是把所有人群走過的路線以點線相連

Panic - 則是模擬疏散時人群散光的狀況,你可以看到人是怎樣的散去,大概花了多少時間

真要解釋完整需要花不少篇幅...

如果有更多人關注等有空再來好好打一篇


@萌萌噠少爺

有大神提示用GH中quelea 的插件,於是本人進行了試驗並且記錄了一下試驗過程,這是一個坑,還未完結,先佔再填。

本文只是一個磚,各位大神,求請教

——————————分割線————————————————

首先百度quelea 是這樣的

quelea 紅嘴奎利亞 是什麼生物

按照GH插件的尿性,他們和它的功能之間必有共性,於是,從維基百科發現這個

軟體介紹

Agent-Based Design for Grasshopper

+ A new paradigm for 3D modeling utilizing agents.

+ Assign forces and behaviors to systems of agents to create interactions.

+ Utilize any data to drive the system.

+ Easily debug your system by displaying individual force vectors.

+ High performance, parallel algorithms, spatial data-structures.

+ Write your own custom forces, no coding required.

+ Open source framework for others to build custom behaviors.

+ Boid forces: Cohese, Separate, Align, View.

+ Contain Agents within Brep, Box, Surface, and Polysurface environments.

+ Forces: Path Follow, Attract, Contain, Surface Flow, Seek, Arrive, Avoid Obstacle, Avoid Unaligned Collision, Sense Image, Sense Point, more to come.

+ Behaviors: Bounce Contain, Kill Contain, Initial Velocity, Eat, Set Velocity, more to come.

Future work:

+ Behaviors to drive simulations of people and vehicles.

+ Temporal inputs can change the actions of the system over time.

從GH官網上摘下來的,反正沒怎麼看懂,但是最後兩句還蠻有意思的,第一條是不是指樓主這個問題。

下載——省略

紅嘴奎利亞界面

子目錄

agent rules emitters environment particle rules quelea utility veh...

然後我下到了軟體說明中的案例文件

我們簡化案例文件,刪除多餘的設置之後就變成下圖

從這個文件中,很容易看出這個文件其實分成幾個部分。

猜測 中間部分應該是計算的核心,不斷的將計算組件減少,直到如下圖的時候還可以計算。

據此可以猜測,這個叫做system的運算器應該是核心,所有的設定條件輸入到這個system裡面,再結合之前的軟體界面上的幾個類別標題,基本可以了解出一些信息。

system為運算需求,必須要滿足quelea settingsemittersenvironment immerquelea 這五個元素,然後我們從菜單欄中找出這五個元素所在的組分析感受一下。

quelea,

在這一組中,我們發現了案例文件中使用的4個運算器,如下圖

setting:

與particle quelea settings 相同小組的還有兩個 consturct agent 和 construct vehicle,於是我吧它們拉出來遛一遛,馬上發現了同名的部分,基本可以理解為關於紅嘴鳥的個個屬性設置。

這個時我瞎設置的玩的,請忽略,但是可以通過這種方法了解各個屬性的含義,此處自行了解。

system 和 engine

這兩個應該是恆連接的吧,目前還沒有看到有其他叫做system的介面,為什麼不直接整合成一個呢

deconstruct 與前面三個呼應

少廢話,拉出來遛一遛

前三個應該是與上文對應的,生產出來的粒子(鳥兒 --這麼叫好像怪怪的,突然想起來覺得叫做粒子好像專業些)的各種屬性,應該可以與GH自帶的display結合出可視化的圖,具體的沒有研究,結合樓主問題中的案例,應該是用這些component。

後三個看上去應該也是差不多的,與前面的區別可能主要是在於前面提取屬性,後面直接提取元素。這個是下圖這樣拉出來遛一遛之後覺得的。

emitter

翻譯過來叫做發射器,也就是說應該是原始發射物的形狀(如果我來漢化我覺得應該起名叫做紅嘴鳥鳥巢。)

隨便實驗了其中一個長方體的鳥巢,鳥兒們應該是從鳥巢表面發射出來的,而且看起來應該是均勻發射(未求證)。

environment

與上發射器同理,感覺很好理解,就是鳥兒們飛行的邊界。

其中值得注意的是 ,後面兩個,這個給樓主這個案例的模擬提供了可能性。

如此之後,還剩三組運算器

agent rules 字面上來講應該是對粒子的設置吧

案例文件中並未用到這幾個運算器,拉其中出來遛,找了半天才找到介面。

接上去之後所有的鳥都和圖標一樣往一起飛了,嗯 很神奇。

然後又拉出一個來試試

所有粒子全部網target point飛行。

然後有一個不太一樣的

eat behavior

嗯這個很奇怪,拉出來也沒看懂。

就剩這一隻了,貌似是指其他的全部被吃掉了,目前也沒有試出有什麼規律,等待大神解毒。

utility和veh...

貌似這兩個要一起看 deconstruct quelea network

第一個是要把鳥群變成一個一個的鳥

quelea network ,沒看懂 ,好像讓每隻鳥變成一個群了,求解讀。

除了

後三個運算器

只看出好像圖片讓粒子屬性受到影響,並沒有看懂發生了什麼。

未完待續

下一步將結合樓主的問題進行實驗。

————————————分割線————————————

未解決的問題

1、utility 和veh組運算器

2、連接方式(樓主的圖應該是需要像最高票那樣設置然後根據粒子的密度來出的圖

3、這個運算器的套路

——————————分割線——————————————

不知恥的拿出自己的微信公眾號,專門用於記錄自己的學習軌跡。

這幾天好像突然關注的人變多了,樓主近來比較忙,填坑時間大致會在七月初,同時微信素材也在積累,爭取能夠周期化

http://weixin.qq.com/r/Azmutu7Eg7P8rarV92wR (二維碼自動識別)

各位趕緊丟璞玉


有個grasshopper插件叫quelea,不謝

processing什麼的去死吧


可以用processing實現

用processing 模擬sworm 人流

如果非要導入gh的話 下個gwal插件(好像叫這個。。)


GH裡面有個插件叫做Kangaroo

可以做這方面的分析,但不知道具體效果怎麼樣

答辯完試試看再來回答


記得好像有個anylogic professional可以做人流模擬...之前試圖用它來做車站人流..


說的那麼複雜,不就indexing嗎?


求詳細回答……也好奇這個怎麼做的……


空間句法吧


私以為這才是人流模擬吧


推薦閱讀:

大牛程序員的傳記(自傳或他人作傳), 有哪些書籍?
有哪些 Win95/98 時代的人無法理解的現在的事情?
有哪些方便的備份系統的方法?
如何優雅地判斷 N 個布爾值是否全部相等?
大學計算機專業翹掉所有課自學可以嗎?

TAG:Python | 計算機 | 建築 | Grasshopper |