center_node.zip 指定したノード群において、中心となるノードはどのように考えればよいでしょうか。指定ノード群からの分散が最も小さくなるノードを探す場合 mini deviation と 指定ノード群からの距離の合計が基も小さくなる場合 mini-sum のサンプルです。入力点群の最寄が指定ノードとなります。入力ノード群を動かして、どちらが中心ノードに使えそうか試してみてください。 分散の小さいノードを探す 距離の合計が小さいノードを探す
Month: June 2015
ノードの情報の書き込み graph_1_0
graph_module_betweenness_view_result.zip とりあえずのサンプルです。 write_info モジュールにつながっている Toggle を True にスイッチすると、ノードのパスカウントをRhinoモデルに書き込みます。Grasshopperのプレビューではなく、Rhinoモデルの実体として(ベイクされたものといえばよいでしょうか)書き込まれてしまうため、値が変わるたびに SelText、 Delete などでテクストオブジェクトを消さなければなりません。面倒です。プレビューでダイナミックに変更するやり方、情報求む。
studio_utility_1_0.py 更新(GH-pythonサンプル)
cluster_sample.zip
studio_utility_1_0.py 更新
download studio_utility_1_0.py studio_utility_1_0.py ユーティリティモジュールを更新しました。いくつか機能追加です。クラスタリングの関数がありますが、これはユークリッド距離によるものなので、スタジオで必要な”ネットワーク距離でのクラスタリング”はもう一ひねり必要です。それらは後ほど。 クラスタリングは k-means法(クラスタ数指定)、k-means ++ 法(クラスタ数指定)、ward法(ステップ指定)、ward法(クラスタ数指定) となっています。それぞれググればアルゴリズムは調べられると思います。 Rhino-Pythonでのサンプルコード GH-Pythonでのサンプルはこちら 以下実装関数:
flowchart_shibuya
フローチャート 0.与条件 ―植物のバッファ(3mをとる)。 ―建物の条件 ―必要な面積を設定 ―敷地の条件 ―敷地境界ギリギリに建築が挿入されないようにクリアランスをとる ーローディングのための動線を設定 ーーーーーーーーーーーーーーーーーーーーーー初期設定 1.樹木を配置する 2.ボロノイ図を描く 3.ボロノイ領域の境界線を抽出する ―最長一筆? 4.幅を持たせて面積を算出する ―クリアしてたら5.へ ―クリアしてなかったら1.へ 5.外部空間の近接中心性の評価をする ー中心によるように建築ヴォリュームを浮かせていく ーーーーーーーーーーーここまでが建物のヴォリュームの概形と配置(前回話し合ったのはここまでです) 6.内部空間の近接中心性、媒介中心性、mini-maxを評価 ―諸室を配置していく 7.配置の評価(配置をどう評価するかは未定) ―評価が悪ければ8.へ ―評価が高ければ9.へ ーーーーーーーーーーーーーーーーーーーーーーここまでがプログラムの配置 8.Feedback ―適切な樹木密度を定めていく 9.終了 このような形だと思います。
flowchart_ichisugi
前回の議論をふまえ変更を加えました。 150606_ichisugi また前回のフローチャートと宿題は以下の通りです。 150606_ichisugi(before)
flowchart_kumagai
前回のスタジオでの議論を踏まえつつ、必要と思われる部分に変更を加えました。 現時点では評価の方法が曖昧なので、数値化できるよう具体的にしていきたいと思います。 はじめに用語の意味を整理しました。 _________________________________________________________ *用語の定義 ・住居ユニット:単身ユニット+家族ユニット 単身ユニット:寝室のみの個室 家族ユニット:キッチン、トイレ、風呂を含む個室 ・共有施設:共用スペース+パブリックスペース+中庭 共用スペース:主に単身ユニット生活者が利用する パブリックスペース:全居住者が利用する 中庭:住居ユニットのように矩形平面の外部空間、全居住者が利用する _________________________________________________________ *フローチャート 1.敷地に2×2のグリッドを引く 動線の確保、整理のため 2.面積が100㎡以上のプログラムを配置 保育所、コンビニ、バスケットコート 周辺からのアクセス、日影等を考慮し配置を決定 3.単身ユニットと家族ユニットを複合したグループを設計 グループは5ユニットまで グループの総面積は192㎡まで 各ユニットはグループ内の2ユニットと隣接する 4.グループをランダムに配置 防犯の視点から、家族ユニットを含むグループは敷地外周から15ⅿオフセットした線以内に配置 5.中庭ユニットをランダムに配置 6.住居・中庭ユニットを除く敷地内を2×2のグリッドによりネットワーク化 7.プログラムの規模ごとに(利用者総数/共有人数)個のクラスタに分ける ウォード法を用いる 8.各クラスタごとのmini-sumポイントを求める 9.mini-sumポイント間の位置関係を評価 mini-sumポイントが均等に分散するように再配置する 4.に戻る 10.各プログラムを配置
flowchart_uchida
0606_uchida
ghpythonlib.componentsをつかってコンポーネント機能をpythonからコール
utility_test2.zip ghpythonlib.componentsをつかってコンポーネント機能をpythonからコールするサンプルです。 スタジオモジュールを併用して内外・干渉判定をしながら点を打ち、その点群からヴォロノイエッジを生成しています。
feedback, step プロセスを行う構成
world_sample_00.gh MAS(マルチエージェントシステム)やひとつの生成結果をフィードバックする現象のモデル化、設計システムを考える場合、コンポーネントを実行するたびに各変数が初期化されるのは困りますし、システム全体であるいは個々のエージェント等が変数の値を保つ必要があります。 まずはクラスなどでプロトタイプを記述し、そのインスタンスを別のコンポーネントに送り、送った側でインスタンスの関数をコールする、という構成で実現することができます。 WorldPlan コンポーネント側 (プロトタイプ宣言とインスタンス生成、インスタンスのポート’a’への送信) クラスの記述方法を説明すべきですが、クラス内部で保つ変数(メンバー変数)は、self. で定義・アクセスします。proc という関数の中に、各設計ステップの処理を書いていきます。siteという入力ポートが暫定でありますが、ここが敷地情報、境界情報、何らかの初期座標、点、などを入力する想定です。 Process コンポーネント側 (インスタンスの受け取り、インスタンス関数の実行) こちらのエディタを開いて、”test”ボタンを押下する度に1ステップ実行されます。 ↓このあたりのサンプルはすべてこの構成です。 MAS基本形 define functions, define prototypes(class) シミュレーション Werner’s Model シミュレーション Reaction-diffusion system 反応拡散系モデル Category Archives: MAS (Multi-Agent System) Category Archives: CA (Cellular Automaton) Percolation





