반응형


rect(0, 0, 50, 50);   //White rectangle
pushMatrix();
//기준점으로 부터 30,20 만큼 이동하여 그려준다
translate(30, 20);
fill(0); 
rect(0, 0, 50, 50);   //Black rectangle
//다시 원점으로 부터 거리 계산하여 그려준다
popMatrix();
fill(102); 
rect(15, 10, 50, 50); //Gray rectangle

//푸시와 팝매트릭스는 결국 짝을 이루어야 사용가능
//아래는 푸시와 팝 매트릭스 설명
//Pops the current transformation matrix off the matrix stack.
//Understanding pushing and popping requires understanding the concept
//of a matrix stack.
//The pushMatrix() function saves the current coordinate system to the stack
//and popMatrix() restores the prior coordinate system. pushMatrix()
//and popMatrix() are used in conjuction with the other transformation
//methods and may be embedded to control the scope of the transformations

주석을 지웠다 써가며 테스트 해보는것이 도움이 될듯하다

반응형
반응형

import oscP5.*;
import netP5.*;

OscP5 oscP5;
NetAddress myRemoteLocation;

void setup()
{
  size(400,400);
  frameRate(25);
 
  oscP5 = new OscP5(this, 12000);
 
  //ip와 포트번호를 가지고 있는 netAddress이다.
  myRemoteLocation = new NetAddress("127.0.0.1",12000);
}

void draw(){
  background(0);
}
void test1()
{
 // String s = "Test11 ";
  background(100,100,0);
  text(72,20, 80);
}
//마우스 이벤트
void mousePressed()
{
  OscMessage myMessage = new OscMessage("/test");
 
  myMessage.add(123);
  myMessage.add("hello");
 
  oscP5.send(myMessage, myRemoteLocation);
}

//메세지 리시브

void oscEvent(OscMessage theOscMessage) {
// draw1();
print(" addrpattern: "+theOscMessage.addrPattern());
}

간단한 예제이다.
소켓통신을 공부했다면 어느정도 이해가 되는 소스
oscP5 라이브러리가 도데체 뭔가 하고 헤맷었는데.
이미 내가 알고있는 사이트에서 만든 라이브러리였다.
아 진짜 바보.
약자라는걸 왜 눈치를 못챘지?

반응형
반응형

독학하는것도 좋긴한데,
시간이 오래걸린다는게 문제...

가격이 부담되긴 한데,
생각해봐야지.



http://music.dongguk.ac.kr/mmjw/


 
반응형
반응형
아 정말 바보인가..ㅡ.ㅡ열라 헤멨다.

Getting Started에 나온 대로 그대로 했는데 뭐가 잘못되었을까,하며 짜증을 내려던 찰라
경모형이 왔다.
차근차근 내가 했던 행동들을 하나씩 보여주면서 하니,
실수했던 부분들이 있었다.
아 영어..ㅡ.ㅡㅋ

http://www.onar3d.com/mother/
우선 저기방문할것.

To get the included examples running, follow the following steps:

1. Copy Gradient.jar and Waltz.jar to wherever you want to keep your synths.

->하드드라이브에 아무데나 폴더 생성하고 거기에다가 이 파일을 넣으면된다
나는 c:\synths 를 만들고 거기에 파일 세이빙

2. Update mother.ini to refer to that path, eg: SynthFolder=X:\\Stuff\\My Synths;
   Also create subfolders "data" and "libraries",
   e.g. X:\Stuff\My Synths\data and X:\Stuff\My Synths\libraries.

->이것땜에 고생했다.
워드패드로 열어야 수정이 쉽다, 노트패드로 열어서 괜한곳에 경로를 수정하고있었음
아까 만들어준 폴더의 경로를 입력
c:\\synths;


3. Running example controller:

   Max/MSP Windows:
    Start "Mother_Controller_Example - 0.3.exe",
       and make sure to allow it through any firewalls you have,
       or it will not be able to communicate with Mother.

->난 윈도우 사용자로써, 저거 파일 실행해줬음..ㅋ

   OSX:
    Download Max/MSP runtime from www.cycling74.com,
    and use it to open the included "Mother_Controller_Example - 0.3.mxf" file.

   Pure Data Alternative:    
    Download and install Pure Data extended from: http://puredata.info/downloads,
    and open the pd patch "PureData controller example.pd",
    included with this Mother distribution. 
->여기서 이걸 빼먹고 갔다...
OSX사용자만 보라는건줄 알고...ㅡㅠ
어쨌든 저 사이트가서 퓨어데이터 다운받아서
실행후->파일 읽어준다

4. Start Mother.exe, add an instance of each synth using the controller example buttons,
   and try out the various adjustments.
->Mother.exe실행
MAX/MSP에서 이런저런 값들을 변경해주면 된다.

5. Read the included documentation, documentation related to using OSC (http://opensoundcontrol.org/),
   and get started making your own synths and user interfaces for controlling them!

If it doesn't work right away:

    * Make sure you are pointing mother to a valid filepath for the synths,
      and that you are using the double backslash '\\' in the path.
     
    * Make sure you graphics card and the installed drivers support OpenGL 2.0
   
    * Make sure the communication between the controller and Mother is not blocked by a firewall,
      and that the network ports specified in Mother.ini are available.
   
    * Email me at onar3d@hotmail.com :)

exception.
그라디언트가 잘 실행이 안되는거 같아서
라이브러리
C:\Stuff\Synths\libraries
에 colorutils geomutils  jar파일을 넣어주니 잘 되네염^^
반응형
반응형

openframeworks C++를 기반으로 한 라이브러리로 현재 활발하게 활동하고 있는 Zach Lieberman Theo Watson 이 이끌고 있습니다.

아티스트와 디자이너들을 위한 프로그램으로는 Processing Max/Msp/Jitter 가 가장 유명한데 두 프로그램 모두 사용하다 보면 일정 틀을 가지게 되곤 합니다. 능숙한 프로그래머들이 자유자재로 다루기는 하지만 기존의 작업들을 보면 프로세싱으로 만들었다거나 맥스를 사용했다는 것이 충분이 짐작갈 정도로 틀을 깨기 힘든 것이 사실입니다. 이러한 경향을 띄게 되는 이유는 아무래도 프로그래머들보다 아티스트, 디자이너를 위한 프로그램이다 보니 실제 코드들을 사용하기 쉽게 단순화 시키는 과정에서 나오는 것인데요 이를 탈피해보고자 만들게 된 프로그램이 openframeworks 입니다. Openframeworks 역시 사용하기 쉽도록 여러 라이브러리를 만들어 놓은 상태이지만 c++ 기반이다 보니 좀더 다양하고 자유로운 작업이 가능합니다.


이제 막 퍼지고 있는 프로그램이어서 아직 사용자가 그리 많지는 않습니다. 등록된 웹싸이트의 사용자가 1600명 정도니까요. 하지만 점점 이 프로그램을 사용하는 사람들이 늘고 있습니다. C언어를 배우는 것이 쉽지 않기 때문에 아무래도 프로그래머로 시작하여 아티스트가 되는 사람들이 빨리 시작하고 있구요, java의 연산처리속도가 많이 빨라졌다고는 하나 아직까진 c++이 더 빠르기 때문에 빠른 처리속도를 원하는 실시간 비주얼라이제이션과 관련된 작업을 하는 사람들 위주로 점점 퍼저나가고 있습니다.

 

처음 싸이트에 들어가면 몇가지 작업 이외에는 아무것도 보이지 않습니다. 우선 메일링 리스트를 가입해 주시고 http://www.openframeworks.cc/forum/faq.php 이곳에서 등록을 해주셔야 합니다. 재미있게도 스팸으로 가입되는 것을 막기위해 재미있는 문제도 있고 (제 경우는 농장에서 기르는 동물을 클릭하라는 문제였습니다.) ‘당신은 인간입니까?’ 라는 유머러스한 문제도 있었습니다. 이러한 질문에서도 알 수 있듯 이 싸이트는 진지한 아트를 토론하는 곳 보다는 프로그램 베이스의 미디어 아트를 하는 사람들이 즐겁게 프로그램을 배우고 서로의 작업을 구경하는 곳에 더 가깝습니다.


기타 프로그램들과 비교했을 때 아무래도 c++ 베이스이다 보니 시작이 힘들고 사용자가 적어 예제 작업도 많이 부족합니다만 Zach 이 열심히 만들고 있으니 앞으로 기대가 되고 있습니다. 이번 Ars Electronica 2008에서 부스를 마련하여 이 프로그램을 이용하여 Zachery Lieberman, Golan Levin 과 같은 유명 미디어 아티스트들이 즉석에서 관객들의 요청을 받아 작업하는 공간을 공개하기도 했습니다. http://www.openframeworks.cc/ars/

Zach은 현재 뉴욕에 있는 eyebeam 에서 R&D OpenLab Fellows 있어서 openframeworks 에 대한 워크샵을 자주 하고 있습니다. www.eyebeam.org 이곳에서 워크샵에 대한 정보를 얻으실 수 있고, 또한 아래 싸이트에서 openframeworks 로 검색하시면 많은 작업들을 보실수 있습니다.

www.flickr.com, http://www.youtube.com/, http://vimeo.com/of.

 

프로세싱의 경우 수많은 아티스트와 사용자들이 어우러져 거대한 커뮤니티를 이루었고 오픈소스의 힘으로 점점 그 가능성이 확장되고 있습니다. 미디어 아티스트, 특히 프로그램베이스로 작업을 하는 사람들에겐 이 분야에서는 정말 오아시스 같은 존재였는데 Openframeworks 가 생김으로서 또 하나의 샘을 만난 것 같습니다. 아직 부족한 부분이 많이 있지만 프로세싱과 어깨를 견주는 싸이트가 되어 미디어아트의 한 획을 긋는 싸이트가 되었음 하는 바램입니다.

 

소개영상 http://vimeo.com/921725


글. 김성훈(뉴욕대학교 ITP
과정, skymod@gmail.com)

반응형
반응형
3개월남짓 프로젝트를 진행하였던 3D FX-Finder이다.
이 프로그램은 기존에 나와있는 피난 시뮬레이션(Simulex, Pathfinder등..)처럼 상용화 할수 있는 시뮬레이션 프로그램을 만들고 싶어서 제작하게 된 프로그램이다.

우리나라의 경우 피난 시뮬레이션 개발에 미비한 수준이다.
그리하여 나(TA2K)를 비롯한 총 6명의 대학생이 개발에 도전하게 되었다.

이 프로그램의 특징은 피난 시뮬레이션에 화재 정보를 대입하여
화재+피난 시뮬레이션을 구현하였다는 것에 있다.


우리나라에서는 화재정보를 처음으로 도입한 피난 프로그램이고,
해외에서도 화재를 도입하여 피난 프로그램을 제작하는 프로그래밍 많이 없다.


우리의 경우 미국 NIST 에서 제작한 화재 시뮬레이션인 FDS의  Output File을 이용하여,
화재정보를 대입하였다.


초반에 여러 대학교 교수님에게 이메일도 보내보고, 알려달라고 부탁도 해보았지만
도와주는 교수님이 너무 없어서 힘들었던 프로젝트 였다.

나의 전공자체가 Computer Science였기에, 프로 젝트를 진행하는 내내 화제, 피난 시뮬레이팅 관련 서적과 사이트를
읽고 또 읽을수 밖에 없었다.

어렵게 어렵게 탄생한  3D FX-Finder!!
아직은 개선사항들이 남아있기는 하다.

이번 소프트웨어 공모전에 출품하였다.
잘 되었으면 좋겠다.
-TA2K-


다음은 시연회 동영상 이다.

자세한 정보는 공모전 후에 공개할 것이다.
반응형
반응형

3D FX-Finder

(3D Fire&Exit Finder)

 

 

 

 

9.11테러, 대구지하철 참사에 인명피해가 많이 발생했던 이유는 무엇이며 사람들은 어떠한 방식으로 피난을 했을까? 이러한 궁금증을 해소시켜줄 FX-Finder는 건물의 도면 CAD파일을 이용하여 공간을 자동으로 시각화 시켜준 뒤, 피난자들의 특성(속도, 성별, 건물이해도 등)에 따라 그들의 피난시간을 고려하여 피난정보를 산출하게 된다. 최근 초고층 건물이 늘어나면서 선진국가는 고층건물 내 피난 문제를 미리 예견하는 피난시뮬레이팅 프로그램의 제작이 활발해지고 있다. 그러나 국내실정은 미약한 상황이다. 이 같은 프로그램들은 서울대 등 소수 대학원 연구실에서 연구목적으로 개발된 프로그램들 뿐이다. 이 같은 프로그램은 실제 현장에서 사용되기에는 무리가 있다. 그리하여 기존의 국내 프로그램의 부족한 부분을 개선하고, 선진국에서 개발된 피난 프로그램의 특징인 사람군집현상을 적용한 모델을 도입하였다. FX-Finder는 국내 최초로 FDS(화재 시뮬레이션 프로그램)의 결과값을 이용한 화재+피난 시뮬레이션 프로그램을 개발하였다.

 

 


 

 




1절 프로젝트 개요

 

9.11테러, 대구지하철 참사에 인명피해가 많이 발생했던 이유는 무엇이며 사람들은 어떠한 방식으로 피난을 했을까? 이 물음에 답을 구하기 위해 기존 분석 시스템은 사람들의 이야기를 종합하고 피난경로 및 상황을 수동으로 유추 한 후 피난정보를 산출하였다. 그러나 이와 같은 방식은 사람들의 실제 행동을 반영하지 않으므로 정확한 분석결과라 보기 어려웠다.

 

 

 

 

 

 

<그림1.1 [9.11]테러>

<그림 1.2 대구 지하철 사고 >

 

그리하여 우리는 보다 정확한 정보를 추출할 수 있는 FX-Finder를 개발하게 되였다. Fx-Finder는 건물의 도면 CAD파일을 이용하여 공간을 자동으로 시각화 시켜준 뒤, 피난자들의 특성(속도, 성별, 건물이해도 등)에 따라 각각의 피난시간을 고려하여 피난정보를 산출하게 된다.

 

1.1개발 배경 및 목적

 

화재 피난 프로그램을 개발을 시작 하게 된 것은 두 가지 동기에 의해서 였다. 첫번째로 대전 소방본부 에서 Pyrosim이라는 화재 분석 시뮬레이션 도입하였다는 뉴스를 접한 후 였다. 그러나 우리나라에서는 이 같은 프로그램을 개발하는 곳이 없어 비싼 로열티를 들여 기업 및 공공기관에서 프로그램을 구매하여 사용한다는 것이였다. 안타까워 하던 중 문득 이런 생각이 들었다.“화재가 났을 때 건물 내 화재 정보뿐 아니라 사람이 피난하는 모습까지 시뮬레이팅 할 수 있는 프로그램을 만들어 보면 어떨까?”라는 생각이 들었다.

 

두번째로 도심의 인구가 증가하고 건축기술이 발전함에 따라 면적당 최대 수용인원을 늘리기 위하여 건물들이 초고층화 되어가고 있다. 초고층 건물에서 화재 등의 위급상황이 발생할 경우, 건물의 특성상 피난시간이 오래 걸리게 된다. 사전에 계획된 피난 시나리오가 없다면 많은 인명피해가 예상 되어 진다. 그렇다면 건물을 짓기 전에 피난 문제를 분석할 수 있는 도구를 만들면 어떨까? 라는 생각을 가지게 되었다. 그리하여 시뮬레이팅 프로그램 개발을 시작하게 되었다. 그렇다면 선진국에서는 피난시뮬레이션 프로그램이 어느정도 개발이 되어 있을까?

 

 

 

 

 

 

 

 

<외국에서 개발된 피난 프로그램의 종류>

 

 

 

 

 

 

<그림1.3>

영국 IES사의 시뮬렉스

가격은 500만원선

<그림1.4>

미국 Thunderhead Engineering사의

 Pathfinder가격은1000만원선(7200달러)

<그림1.5>

영국 Legion사에서 개발된 Legion Limited가격은 약 1억원선(45000파운드)

 

  인명피해를 사고 이전에 계산할 수 있다는 장점을 가진 공간 및 피난 분석 프로그램들을 선진국에서는 1990년대 중반부터 개발하기 시작하였다. 그리하여 각 국가 연구소에서는 피난 분석 프로그램을 만들어 실제 현장에서 사용되고 있는 반면, 국내에서는 아직 시작단계로, 많이 뒤쳐져 있는 상황이다. 이와 같은 문제를 인지하여 본 프로그램을 개발하게 되었고, 이것을 통하여 인명피해의 결과를 계산하여 피해를 최소화 할 수 있도록 도와주는 프로그램을 제작 하게 되었다.

 

1.2추진체계 및 일정

 

기간 :4월5째주`~7월4째주(14주)+a
   팀장 : 나

팀원 : 6명

-       분석, 설계, 검증 : 나

-       제작 : 2명

-       3D그래픽, 테스트: 2명

-       WPF UI: 1명

 

4월

5월

6월

7월

5

1

2

3

4

5

1

2

3

4

1

2

3

4

주제선정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

자료수집

 

 

 

 

 

 

 

 

 

 

 

 

 

 

관련 기술 스터디

 

 

 

 

 

 

 

 

 

 

 

 

 

 

알고리즘및

 관련 논문분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FDS학습 및 분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사 프로그램 분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

평면도, 단면도 정보추출

 

 

 

 

 

 

 

 

 

 

 

 

 

 

단층 시뮬레이션 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다층 시뮬레이션 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CAD정보 WPF3D 형태로 변환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2D, 3D mapping

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사람특성에 맞게

엔진변경

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FDS Output 연산

 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UI 및 기타 기능구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

스트

디버깅

 

 

 

 

 

 

 

 

 

 

 

 

 

 

검증

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문서 정리

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<표1.2.1> 프로젝트 일정표

 

1.3부분 별 수행 업무 수행 및 담당자

 

분 야

담당 업무

사용 툴/ 언어/ 라이브러리

담 당 자

논문 분석 및 적용

-논문을 분석한 뒤 적용범위 선정 및 프로그래밍 할 수 있도록 설계

-


평면도, 단면도 정보추출

- CAD파일에서 얻어온 Raw Data를 받아와 정보화 시키는 작업.

Visual C#, Vector Draw

단층 시뮬레이션 구현

-키르히너 모델을 적용하여 단층에서 피난이 가능하도록 구현

Visual C#, Vector Draw

다층시뮬레이션 구현

- 층과 층 사이를 계단으로 연결시켜주어 다층 피난이 가능하도록 구현

Visual C#, Vector Draw

CAD정보 WPF3D 형태로 변환

-  CAD정보로 WPF폼에 3D건물을 증축

Visual C#, Vector Draw

FDS Output 연산

 엔진구현

-FDS화제모델 설계

- 시뮬레이팅후 DEVE 파일이용 엔진구현

Visual C#,FDS,MS -SQL2005


UI 및 기타 기능구현

-UI설계, 디자인

- 프로그램의 기타 기능 구현

Visual C#, Vector Draw,Chart FX


<표1.3.1> 프로젝트 업무수행 및 담당자

 

1.4 프로젝트 개발 범위

 

본 프로젝트는 한국에서 개발된 피난 시뮬레이션들과 다른 알고리즘을 가진 모델로 개발하고자 하였다. 인간의 시각적 인지를 이용한 서울대의 프로그램이 독자화 되서 사용되어왔던 것을 계기로, 우리프로그램만의 특별한 알고리즘 계산법을 적용 시키고 싶었다. 그리고 피난 프로그램중 가장 유명한 Simulex 및 PathFinder를 롤 모델로 삼았다. 그 이유는 이미 검증된 피난 프로그램으로, 우리가 제작한 프로그램과의 결과값 비교시 유사한 값이 나오도록 하기 위해서 였다. 그리하여 각각의 프로그램의 장점을 파악하여, 우리 프로그램에 적용하였다.

엔진의 경우 인천대에서 개발된 프로그램 및 미국 Thunder 사에서 개발된 PathFinder의 경우 둘다 A* 알고리즘을 적용하였는데, 우리 프로젝트의 경우 그와 유사한 Static Floor Field 알고리즘을 적용하였다. 왜냐하면 개미의 페로몬 현상을 응용한 위급상황시 군집하게되는 현상을 적용하기 위해서 A*알고리즘 보다는 Static Floor Field가 적합하다고 생각하기 때문이다. 그러나 피난자들이 군집하게 되면서 서로 밀고 밀리는 Push Force현상은 적용하지 않았다.

그래픽의 경우 CAD파일을 정보화 시켜 2D및 3D화 시켜주는데 초점을 맞추었다. 화려한 디자인과 실제 피난자 케릭터가 이동하려는 모습을 구현하려 하였으나, WPF3D폼에 엔진과 연동하여 움직이게 하는데에 충분한 학습시간이 부족하여 구현하지 못하였다.

화제관련하여, 기본적으로 화제모델을 설정할줄 알아야 화제에 대한 정보를 적용시킬수 있기 때문에 FDS(화제시뮬레이션) Output 파일의 경우, 사용자를 FDS를 사용할수 있는 사용자로 제한하였다.  보통 FDS 시뮬레이팅 후 2차 검증과정으로 피난 시뮬레이션을 하는 것을 보며 FDS사용자에게 잘 맞는 피난 시뮬레이션이라고 생각 하였다.


2절 배경지식

 

2.1. 기존 피난 시뮬레이션 프로그램 설명

2.1.1. 시뮬레이션 프로그램의 흐름

 

시뮬레이션 기술은 우리에게 멀리 있는 일처럼 느껴지곤 한다. 그러나 우리는 정말 시뮬레이션과 가깝게 지내고 있다. 매일 시뮬레이션 한 날씨 정보를 통하여 하루의 일상을 계획하기도 하고, 스타크래프트 같은 가상전쟁 전략시뮬레이션 게임을 하기도 한다. 이처럼 무언가 예상하여 행할수 있는 프로그램들을 통칭하여 시뮬레이션이라고 한다.

그럼 연구 및 데이터를 습득하기 위한 시뮬레이션은 언제 행하여 질까? 실제로 실험하기 위험한 상황이나 많은 제약이 따르는 실험, 비용이 많이 발생하는 실험등에 시뮬레이션을 주로 사용하고 있다. 과거에는 간단한 시뮬레이션만을 구현하였지만, 현재는 컴퓨터 연산속도가 향상됨에 따라 복잡한 시뮬레이션과 다양한 시뮬레이션 프로그램이 개발될 수 있게 되었다. 심지어 대륙과 대륙간 피난을 계산하는 복잡한 시뮬레이션 프로그램도 등장하고 있다. 대부분의 시뮬레이팅 프로그램은 고가인데, 피난 시뮬레이션의 경우 500만원부터 1억원이 넘는 프로그램까지 다양하다.

 

2.1.2. Simulex

 

시뮬렉스는 인간의 개인행동 모델을 적용한 피난 시뮬레이션 프로그램 이다. 이 프로그램은 영국IES사에1994년 개발되어 지금까지도 사용되고있는 프로그램이다. 피난 시뮬레이션 프로그램 중 가장 유명한 프로그램이기도 한 시뮬렉스는 지금까지 개발되고 있는 피난 프로그램의 롤모델로 자리잡고 있다. 그만큼 실제와 유사하다는 평을 받고 있다.

다음은 개략적인 시뮬렉스의 주요 특징이다.

u              건물 모델을 CAD DXF파일을 이용해 건물을 생성할수 있다.

u              다층건물 묘사를 위하여 계단으로 각 층을 연결하였다,

u              최종출구를 건물 안이나 밖에 정의 할수 있다.

u               0.2m * 0.2m 간격의 Mesh가 자동으로 생성된다

u              링크는 각 층을 연결하거나, 문의 기능으로도 사용이 가능하다

u              Mesh내 모든점과 출구까지 최단경로를 계산한 Distance map을 이용해 피난경로를 계산한다.

u              구성원을 체형, 이동속도, 반응시간등의 값의 변경으로 다양하게 정의가 가능하다

u              신체 사이즈를 고려하였다.

u              밀도에 의한 속도 감속이 이루어 진다

이러한 특징 때문에 사용자들이 쉽게 시뮬레이팅을 할수 있다.

 

2.1.3. PathFinder

 

PathFinder는 미국 Thunderhead 사에서 개발한 피난 프로그램이다. 이 회사에서는 FDS엔진을 이용한 화재 시뮬레이션 프로그램인 Pyrosim을 만든회사로도 유명하다. PathFinder는 피난 시뮬레이팅 하는 방식을 두가지로 두었다. SFPE Mode와 Steering Mode 로서, SFPE Mode는 SFPE HandBook에 나온 수치를 기준으로 적용하여 피난하는 방식이고, Steering Mode는 우리가 만든 FX-Finder와 마찬가지로 특정 논문에 의거하여 피난하는 방식이다. Craig Reynolds' paper "Steering Behaviors For Autonomous Characters" 의 논문을 참조하였다.[1] 특히 PathFinder의 경우 우리가 만든 FX-Finder와 유사한 경우가 많은데, 사람의 최단경로를 고려하여 A*알고리즘을 적용하였다는 것이고, 사람의 특성을 고려하기 위해 논문을 참조하여 적용하였다는 점이다. PathFinder는 시뮬렉스의 기본기능(피난자의 속성을 변경하여 피난할수 있음)을 흡수하여 구현하였고, 다른 피난 프로그램들과의 차이점은 3D로도 피난모습을 보여줄 수 있다는 점이다.

 

2.2. Kirhiner Model

2.2.1. 모델설명

 

현재 추세에 있는 피난 시뮬레이션은 Cellular automation model 방식으로 진행되고있다. Kirhiner Model은 생물학적으로 접근하여 관계를 설명할 수 있다 보행자가 피난시 사용하는 방법을 chemotaxis(주화성)이라 한다. 즉 생물이 특정한 화학반응에 의하여 이동하는 성질을 적용한 모델이다. 여기에는 Static Floor Field 와 Dynamic Floor Field 라는 필드가 존재한다. 이 두가지 필드는 조화를 이루어 최단경로를 찾기 위해 피난자의 보행을 예측하게 되는데, 지적능력과 군중현상을 대표하는 필드이다.(A profer combination of herding and use of knowledge about the shortest way to the exit)[2].

 

2.2.2. 알고리즘 소개

2.2.2.1. Static floor field

 

Static Floor Field의 경우는 우리가 흔히 접해왔던 최단경로를 찾는 알고리즘이라고 생각하면 된다. 이것과 비교되는 알고리즘으로는 A*알고리즘이 있다. 둘의 차이점은 다음과 같다. A*의 경우는 현재 위치에서 출구까지의 경로를 계산하는 방식이고, Static Floor field의 경우는 출구에서부터 피난자의 위치까지의 피난소요 경로를 계산하는 방식이다. 이 논문에서는 동, 서, 남, 북 4방향만 고려하여 피난을 고려하였다. 그러나 우리가 실제 프로그램을 구현할때에는 사람이 모두 움직일수 있는 8방향으로 고려하여 프로그램을 설계하였다.

 

2.2.2.2. Dynamic floor field

  

                            

 

<그림 2.1 개미의 페로몬 확산현상을 반영한 FX-Finder의 모습>

베르나르 베르베르가 쓴 <개미>를 읽어보면 이러한 내용이 소개된다. 개미는 왜 멀리가도 길을 잃지 않는가에 대한 내용이다. 흥미롭게도 개미는 자신이 이동할 때 페로몬을 뿌려 돌아올때도 페로몬이 있는 것을 확인하여 경로를 설정하여 돌아 온다고 한다. 많은 개미들이 많이 이동할수록 많은 페로몬들이 증가와 확산을 반복할 것이고, 그중 많은 페로몬이 뿌려진 길을 선택하게 된다. 이유는 많은 개미가 선택한 길이기 때문에 보다 정확하다고 생각하기 때문이다. 개미처럼 군집하여 타인에게 의존하는 현상을 화재에 적용해 보았다. 보통 화재나 위급상황시 자신이 독단적으로 건물의 출구를 빠져나가는 것은 건물의 이해도가 높지 않은 이상은 시도하기 어렵다. 보다 많은 사람들이 선택한 길을 통하여 탈출하려 하는 습성을 개미의 Chemical trace에 접목한 필드가 바로 Dynamic floor field이다.

 

2.2.2.3. 계산 및 위치선정 방식

 

위에서 언급한 Dynamic Floor Field 와 Static Floor Field 의 값을 연산하여 출구를 찾아간다. 이동하는 경로에 장애물이나, 피난자가 있을 때 까지 고려하여 이동할 수 있도록 고려하였다. 자세한 내용은 아래의Core Techniques에서 설명하도록 하겠다. 또한 각각의 사람들마다 개성을 부여하기 위하여 피난 속도, 반응시간 등을 적용시킬수 있도록 설계하였다. 보통 피난 시간을 계산할 경우

 

       피난시간(REST) = 피난전 행동시간 + 피난시간

피난시간(REST) = Td+Ta+To+Ti+Te

여기서

Td : 불이 감지되는데 걸리는 시간

Ta : 불이감지되어서부터 거주자들이 인지하는데 걸리는 시간

To : 불이 난 것을 인지했을 때부터 거주자들이 행동을 취할 때까지 걸리는 시간

Ti : 행동을 취하기로 결정한 때부터 피난을 시작하는 데까지 걸린 시간

Te : 피난하기 시작하면서부터 피난이 끝날 때까지 걸리는 시간

 

으로 계산되는데,  FX-Finder의 경우 Td+Ta+To+Ti 시간 과 Te의 두개의 시간, 즉 피난전 행동시간과 피난시간으로 구분하여 설정 할 수 있도록 고려해 주었다.

 

2.3. FDS(화제 시뮬레이션)

 

FDS(Fire Dynamics Simulator)프로그램은 미국 NIST의 Kevin B. McGrattan에 의해 개발된 화제시뮬레이션 프로그램이다. 화염이나 연기와 같이 화재에 의해 유도된 유체흐름에 대해 해석하는 전산유체역학(CFD)모델이다. 이 소프트웨어는 수적으로 느린 속도, 불로부터 나온 열과 연기에 초점을 맞춘 열적 구동되는되는 흐름에 대해 적절한 Navier-Strokes 방정식을 풀 때 사용된다. 이 방정식은 저속흐름 그리고 화재로부터 생성된 연기나 열전달에 중점을 두는 열적유동의 해석에 적당하다.[3] 시뮬레이팅의 결과를 OpenGL기술을 이용한 SmokeView를 제공한다. 그리하여 보다 쉽게 연산된 결과를 볼 수 있다. 현재 NIST사 에서도 화제와 피난을 접목시킨 FDS+EVAC beta버전을 출시하였다.

 



[1] 자세한레퍼런스 공개는 공모전 이후에 하겠습니다.



 

<화재정보를 보여주고 있는 3D FX-Finder>





<distance map>



 

<각종 화재정보를 시간의 흐름에 따라 그래프로 보여주고 있는 FX-Finder > 

 

5절 결론 및 개선방향

 

5.1 결론 및 기대효과

 

FX-Finder를 통하여 얻을 수 있는 효과는 다음과 같다. 건물의 정보가 있는 CAD파일만 가지고 있다면 화재나 위급상황의 발생전에 위험을 미리 평가하고 위험에 대처할 수 있다. 또한 방송영상 자료나 안전도 검증자료로도 다양하게 활용될 수 있다.

피난프로그램의 대부분을 수입에 의존하는 국내 상황에서 FX-Finder는 국내 재난프로그램에 많은 변화와 발전을 가져오는 계기가 될 것이다.

테스트시 비교군으로 썼던 Thunderhead사의 PathFinder의 경우는 약 1000만원 정도 하는 고가의 프로그램이다. 그러나 이 프로그램 조차도 시뮬레이션 프로그램중에는 저가에 속한다. 1억원이 넘는 피난프로그램이 있을 정도로 대부분의 피난 프로그램들의 단가가 높은데, 국내기술로 피난프로그램을 개발한다면 외화 절감에도 상당한 효과를 가져올 수 있다.

 

 

 

 

5.2 테스트 및 검증

5.2.1 국내외 시뮬레이션 프로그램 비교

 

국내외 시뮬레이션 프로그램 비교

 프로그램명(회사명)

<국가>

FX-Finder(RaOn)

<한국>

피난 시뮬레이션(인천대)

<한국>

PathFinder(Thunderhead)

<미국>

Simulex (IES)

<영국>

Agent-Based?

O

O

O

O

사람의 특성을 적용?

O

X

O

O

사용 알고리즘은?

 키르히너 모델

(최단경로 모델+군집현상)

 A* 알고리즘(최단경로 모델)

 A* 알고리즘+Craig Reynolds 모델

(최단경로 모델+군집현상)

(최단경로 모델+군집현상)

화재데이터 표시?

O

X

X

X

사용자 편의성 고려기능

차트, 사람추가 및 출구추가등 기본기능 구현

없음

기본기능(사람추가 삭제, 출구추가 등)

기본기능(사람추가 삭제, 출구추가 등)

사용 용도

사람의 특성을 적용한 화재 피난

가장 빠른 경로 피난만 가능

사람의 행동 특성을 적용한 피난 프로그램

사람의 행동 특성을 적용한 피난 프로그램

피난시간(인지시간+대피시간)구현

O

X

O

O

3D보기 기능

O

X

O

X

속도 가속/감속 및 속도 변환 옵션

O

(밀도에 의한 속도감속은 구현 안됨)

X

O

O

개발시기

09년

08년

09년

1994년

 

화재시뮬레이션 적용,3D

3D

3D, 인간행동 특성 반영

인간행동의 특성을 반영

 

.

.

1000만원

700만원

 

우리가 만든 FX-Finder와 Thunderhead사에서 만든 Pathfiner를 같은 조건하에 비교 실험 해 보았다. 실험 모델은 선문대학교 신축 기숙사를 선정하였고, 11가지 상황을 3번씩, 총 33번의 테스트를 해 보았다. 다음은 실험에 대한 결과이다.

 

 

 

 

5.2.2 대학 신축기숙사 테스트 결과(피난시간)

  

테스트 결과

테스트 맵

기숙사

개발 프로그램

FX-FINDER

비교군

PATHFINER

 

test내용

프로그램

1차

2차

3차

1

직선으로 피난시

FX-Finder

38

37

38

 

 

PathFinder

37.5

37.5

37.5

2

11개방에 4명씩 44명 (노인, 어린이, 성인남녀)

FX-Finder

79

80

80

 

 

PathFinder

81

81.3

81

3

군집현상(입구)100명

FX-Finder

8

10

9

 

 

PathFinder

21

22

22

4

대규모이동(200)명

FX-Finder

78

83

81

 

 

PathFinder

81.3

81.8

81.3

 

 

 

1차

2차

3차

5

22명 (각방에1명씩)11개방

FX-Finder

47

47

48

 

 

PathFinder

49.3

49.5

49.3

6

80명(각방에4명)

FX-Finder

49

49

50

 

 

PathFinder

51.5

51.5

51.5

7

44명(위에 각방의 4명씩 11방)

FX-Finder

49

48

49

 

 

PathFinder

51.5

52

51

 전체피난

1차

2차

3차

8

복도끝에서 출구까지-1명

FX-Finder

44

44

44

 

 

PathFinder

46.3

46.3

46.3

9

복도끝에서 출구까지-36명 일때

FX-Finder

50

49

49

 

 

PathFinder

53

53

52.8

10

복도끝에서 출구까지-100명 일때

FX-Finder

59

58

56

 

 

PathFinder

61.3

61.3

63

11

복도끝에서 출구까지-200명 일때

FX-Finder

70

69

67

 

 

PathFinder

76

76

74

 

 

 

 

 

 

 


 

5.2.3 대학 신축기숙사 테스트 결과(오차범위)

오차범위

 

 

오차범위

1차

2차

3차

1

직선으로 피난시

0.5

0.5

0.5

0.5

 

 

 

 

 

 

2

11개방에 4명씩 44명 (노인,어린이,성인남녀)

1.4333333

2

1.3

1

 

 

 

 

 

 

3

군집현상(입구)100명

12.666667

13

12

13

 

 

 

 

 

 

4

대규모이동(200)명

1.6

3.3

1.2

0.3

 

 

 

 

 

 

 

 

 

 

 

 

5

22명 (각방에1명씩)11개방

2.0333333

2.3

2.5

1.3

 

 

 

 

 

 

6

80명(각방에4명)

2.1666667

2.5

2.5

1.5

 

 

 

 

 

 

7

44명(위에 각방의 4명씩 11방)

2.8333333

2.5

4

2

 

 

 

 

 

 

 

전체피난

 

 

 

 

8

복도끝에서 출구까지-1명

2.3

2.3

2.3

2.3

 

 

 

 

 

 

9

복도끝에서 출구까지-36명 일때

3.6

3

4

3.8

 

 

 

 

 

 

10

복도끝에서 출구까지-100명 일때

4.2

2.3

3.3

7

 

 

 

 

 

 

11

복도끝에서 출구까지-200명 일때

6.6666667

6

7

7

 

 

 

 

 

 

평균 오차

3.6363636

기록원 : 장**

 

실험결과 대량의 군집현상을 제외하고는 비교군인 Pathfinder와 유사한 결과가 나오는 것을 볼 수 있다. 각기 다른 알고리즘을 사용하였지만, 사람의 행동특성을 반영한 알고리즘이라는 유사성 때문에 비슷한 결과가 나올수 있었다. 

 

자세한 프로필 및 연락 주실 분들은
amhoya@hanmail.net
으로 메일 주세요. 


 

반응형
반응형
웹서핑을 하다 괜찮은 인터렉티브 아트 발견~!

DJ의 스크래칭 음악을
visual로 표현한 작품
데이터를 이진화 시켰는지 흑백의 조합속에서도
꽤 느낌있는 작품이 나온다.

이퀼라이져와는 느낌이 조금 다른 비쥬얼
관심있다면 동영상을~!

http://www.v-scratch.net





V-Scratch is a software/hardware environment which allows for unique visual interpretations in turntable composition. It transposes nuances made by the rotation of the record: the variations of speed, audio spectrum and volume. In addition, the physical act of spinning the record back and forth is transmitted through an optical mouse. All these variables enable a simultaneous performance of moving image and sound while creating an infinite space for possible results.



반응형

+ Recent posts