ACE

cdc wiki
Com2215 (토론 | 기여)님의 2022년 12월 27일 (화) 00:27 판 (설계)
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 사회현상 시뮬레이션 제작 툴 SIM:MONS..

영문 : Project SIM:MONS(SIMulator: Multi - Object for Numerous Simulations)..

과제 팀명

ACE

지도교수

안*현 교수님

개발기간

2022년 9월 ~ 2022년 12월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20169200** 박*홍(팀장)

서울시립대학교 컴퓨터과학부 20169200** 서*찬

서울시립대학교 컴퓨터과학부 20169200** 정*교

서울시립대학교 컴퓨터과학부 20169200** 최*용


서론

개발 과제의 개요

개발 과제 요약

프로젝트 SIM:MONS(SIMulator: Multi-Object for Numerous Simulations)는 감염병 전파 시뮬레이션, 화재 현장 시뮬레이션 등 다양한 시뮬레이션을 사용자가 직접 제작할 수 있는 범용적인 툴을 개발하는 것을 목표로 하고 있다. 사용자는 시뮬레이션에 사용될 객체의 변수값들을 설정하고, 각 객체들에 이벤트를 부여할 수 있다. 또한 프로그램은 사용자가 설정한 시뮬레이션 정보를 바탕으로 시뮬레이션 과정과 결과를 시각화 및 데이터화하여 제공한다.

개발 과제의 배경

◇ 기존 시뮬레이터들의 특징

시뮬레이션(simulation)이란 ‘실제로 실행하기 어려운 실험을 간단히 행하는 모의실험‘을 의미한다. 현재는 다양한 시뮬레이션 프로그램들의 등장으로, 현실에서 실행해보기 어려운 일들을 사전에 실험해볼 수 있게 되었다. 시뮬레이션은 생활 속 다양한 분야에서 사용되고 있다. 건설 회사에서는 건축 시뮬레이션을 통해 공사 중에 발생할 수 있는 피해를 사전에 파악하고, 기상청에서는 앞으로 있을 날씨의 흐름을 예측하여 예보를 전달한다. 과학자들은 입자 단위의 물리 실험을 시뮬레이션에서 진행하고, 군사 분야에서도 모의 전쟁 같은 부분에서 이를 활용하고 있다. 게임 분야에서도 시뮬레이션은 하나의 장르로서 자리잡고 있다. 사람들은 로켓 발사 시뮬레이션 게임 ‘커벌 스페이스 프로그램’에서 자신만의 로켓을 제작하고, ‘심시티’에서는 자신만의 도시를 만들기도 한다. 이러한 전문성을 가진 시뮬레이터와 게임성을 가진 시뮬레이터는 각각 명확한 장단점을 가지고 있다. 전문성을 가진 시뮬레이션은 구현 가능한 범위가 매우 넓고 실생활과 연관된 경우가 많다는 장점이 있지만, 그만큼 프로그램이 다루는 시뮬레이션 주제가 한정되어 있고 UI가 불친절한 경우가 많다는 단점이 있다. 게임성을 가진 시뮬레이션들은 조작이 유저친화적이고 시각적인 부분이 강조되어 관찰의 재미를 느낄 수 있지만, 개발자가 만들어낸 규칙 안에서 움직이기 때문에 구현 환경이 제한적이라는 특징을 가지고 있다.


◇ 프로젝트 SIM:MONS의 개발 배경

프로젝트 SIM:MONS는 ‘하나의 시뮬레이터에서 전문성과 게임성을 모두 잡을 수는 없을까?’라는 질문에서 시작되었다. 단순하고 유저친화적인 GUI 구성, 전문적인 시뮬레이터가 갖추어야 할 자유로운 구현을 모두 담은 시뮬레이터를 개발하는 것이 SIM:MONS의 개발 목표이다. 개발 목표를 이루어내기 위해 각 시뮬레이션들이 가지고 있던 장단점을 분석하였다. 추가적으로 기존 시뮬레이션 게임들의 UI 구성과 유저친화적인 기능들이 어떻게 이루어져있는지 분석하면서 프로젝트의 방향성을 잡았다. 같은 주제(객체, 이벤트 등)와 관련된 정보들은 한 화면에서 보여주고, 서로 상관관계가 있는 UI는 화면을 차지함에 있어 서로 충돌하지 않게 배치하는 것. 시뮬레이션 진행 결과를 실시간으로 확인하는 UI를 별도로 두어 시뮬레이션이 진행되는 모습을 다양하게 관찰할 수 있는 것. 시뮬레이션 맵의 구성을 키보드 입력이 아닌 마우스 드래그를 통해서도 가능하도록 하는 것. 이러한 기능들은 프로그램을 좀 더 직관적이고 친근하게 만드는 효과를 보여주었다. 기존의 전문가용 시뮬레이터의 요소에 이러한 기능들을 추가한다면 개발 목표를 이루어낼 수 있을 것이라고 생각했다.


◇ 프로젝트 SIM:MONS의 기대 효과

1) 시뮬레이션 실험에 대한 접근성을 완화하여 다양한 학문의 발전에 기여한다. SIM:MONS는 전문성과 게임성을 모두 갖춘 연구 도구가 될 것이다. SIM:MONS의 단순한 조작감은 기존의 시뮬레이션 제작 툴에 익숙하지 않던 연구자들이 다양한 실험을 진행해볼 수 있는 환경을 제공해줄 것으로 기대된다. 이전보다 더 많은 아이디어가 시뮬레이션 세계에서 구현되고, 다양한 실험들이 결과를 만들어 낼 것이다. 이는 자연스럽게 학문의 발전으로 이어질 것으로 예상된다.

2) 교육용으로 활용되어 학생들의 학습 능력을 증진시킨다. SIM:MONS는 교육용으로도 매우 적합한 모습을 하고 있다. 학생들은 SIM:MONS 속에서 과학 실험을 직접 설계해보고 실험 결과에 대한 그래프도 바로 확인할 수 있다. 이를 통해 기존의 실험들이 가지고 있던 잠재적 위험성과 비용적인 문제를 해결하고, 수치 분석에 들어가는 시간을 획기적으로 줄여줄 것으로 예상한다. 학생들의 교육에 대한 흥미를 높이는 것은 물론, 서로의 시뮬레이션을 공유하는 과정에서 발생되는 학습 시너지 효과를 기대할 수 있다.

3) 다양한 시뮬레이션을 공유함으로써 사회현상에 대한 문제를 다양한 관점에서 예측할 수 있게 된다. SIM:MONS는 자신이 만든 시뮬레이션을 다른 사람과 공유할 수 있다. 사용자는 서버 연동된 대시보드에서 관심이 있는 시뮬레이션을 직접 실행해볼 수도 있고, 이를 수정하면서 다른 결과를 도출해낼 수도 있다. 시뮬레이션에 대한 수정이 용이한 SIM:MONS는 같은 주제로 고민하는 사람들에게 다양한 관점을 제공해 줄 것이다.

4) 사용자들의 자유로운 창작 공간이 되어준다. SIM:MONS의 또다른 장점은 자유로움이다. 코딩을 필요로 하지 않으면서 자유로운 시뮬레이션 설계가 가능하기 때문에, SIM:MONS에서 어떤 시뮬레이션이 만들어질 수 있을지 알 수 없다.

개발 과제의 목표 및 내용

1) 사용자는 시뮬레이션에 사용될 객체들의 정보를 설정할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 객체의 종류를 추가할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 객체의 종류를 제거할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 각 객체의 변수들을 추가할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 각 객체의 변수들을 제거할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 각 객체의 변수들을 수정할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 각 객체의 외형을 수정할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 객체를 맵에 추가할 수 있다.

• 사용자는 객체 관리창에서 시뮬레이션에 사용될 객체를 맵에서 제거할 수 있다.

SIM:MONS에서의 객체는 시뮬레이션에서 행동하는 주체이다. 사용자는 시뮬레이션 속 시민과 자동차 같은 요소들을 객체로 관리하고, 객체들의 특징들을 직접 수정할 수 있도록 구현하는 것을 목표로 한다. 이에 더해 객체가 가지는 변수값들에 대한 수정뿐만 아니라 외형, 시뮬레이션 맵에서의 배치까지 수행할 수 있다.


2) 사용자는 시뮬레이션에 사용될 이벤트들의 정보를 설정할 수 있다.

• 사용자는 이벤트 정보창에서 시뮬레이션에 사용될 이벤트를 추가할 수 있다.

• 사용자는 이벤트 정보창에서 시뮬레이션에 사용될 이벤트를 제거할 수 있다.

• 사용자는 이벤트 정보창에서 이벤트 블록을 배치하여 이벤트를 제작할 수 있다.

• 사용자는 이벤트 정보창에서 이벤트 블록 속 변수들을 수정할 수 있다.

SIM:MONS에서의 이벤트는 객체가 수행하는 행동을 의미한다. 객체가 이동하는 패턴, 객체가 다른 객체와 충돌시 발생하는 일 등을 이벤트 정보창에서 관리한다. 기본적으로 이벤트들에 대한 프리셋(충돌시 이벤트, 시간 경과에 따른 이벤트 등)을 블록 UI의 형태로 제공한다. 사용자는 이벤트 블록 UI를 마우스로 배치하여 객체들의 이벤트를 제작할 수 있다.


3) 사용자는 시뮬레이션 환경 정보를 수정할 수 있다.

• 사용자는 환경 정보창에서 시뮬레이션 환경의 변수 값들을 수정할 수 있다.

• 사용자는 환경 정보창에서 환경 프리셋 사용 여부를 선택할 수 있다.

• 사용자는 시뮬레이션 실행 버튼을 클릭하여 시뮬레이션 진행을 관찰할 수 있다.

• 사용자는 시뮬레이션 정지 버튼을 클릭하여 시뮬레이션 진행을 멈출 수 있다.

• 사용자는 시뮬레이션 맵을 보여주는 카메라를 이동시킬 수 있다.

SIM:MONS 속 시뮬레이션은 환경 변수의 영향을 받는다. 사용자는 중력, 바람 등 실제로 움직임에 영향을 주는 요소들을 환경 정보창에서 수정할 수 있다. 기본적으로 SIM:MONS의 객체들은 정지한 상태로 존재한다. 사용자는 시뮬레이션 실행 버튼과 정지 버튼을 통해 객체들의 시뮬레이션 진행 과정을 관찰할 수 있다. 또한 카메라 이동을 통해 사용자가 원하는 관점에서 시뮬레이션 맵을 수정, 관찰할 수도 있다.


4) 사용자는 시뮬레이션 결과를 다양한 형태로 제공받을 수 있다.

• 사용자는 시뮬레이션 정보창에서 시뮬레이션이 진행되는 과정을 확인할 수 있다.

• 사용자는 시뮬레이션 정보창에서 시뮬레이션에 대한 그래프를 확인할 수 있다.

시뮬레이션에서는 특정 객체의 비율 등을 실시간으로 확인할 수 있는 기능이 포함되어있다. 단순히 객체가 가지고 있는 변수값의 변화 뿐만 아니라 다양한 변수들을 사용자가 직접 설정하여 이를 시뮬레이션 정보창에서 확인할 수 있도록 한다. 시뮬레이션의 진행 과정과 진행 결과에 대한 사용자 지정 변수의 변화를 그래프를 통해 확인하는 기능도 존재한다.


5) 사용자는 시뮬레이션 정보를 저장할 수 있다.

• 사용자는 시뮬레이션 제작 현황을 PC에 저장할 수 있다.

• 사용자는 시뮬레이션의 객체, 이벤트, 환경 정보를 json 형태로 저장할 수 있다.

• 사용자는 시뮬레이션 과정과 진행 결과 로그를 json, xml 형태로 저장할 수 있다.

• 사용자는 시뮬레이터에 사용했던 객체, 이벤트, 환경 정보를 서버에 저장할 수 있다.

SIM:MONS는 시뮬레이션 정보를 저장하는 기능을 제공한다. 시뮬레이션이 진행되는 과정을 PC에 저장하여 나중에 이어서 제작할 수도 있고, 이를 파일의 형태로 만드는 기능도 제공한다. 이러한 제작 정보를 서버에 저장하여 다른 사람들과 공유하는 것도 가능하다.


6) 사용자는 서버와 연동된 페이지에서 서버와 통신할 수 있다.

• 사용자는 사용자는 프로그램 내부에서 서버와 연동하여 다른 사람이 만든 시뮬레이션 정보를 다운로드 받을 수 있다.

• 사용자는 프로그램 내부에서 서버와 연동하여 자신이 만든 시뮬레이션을 서버 연동 페이지에 업로드 할 수 있다.

• 사용자는 서버에 업로드한 시뮬레이션 정보를 삭제할 수 있다.

SIM:MONS는 서버와 연동해서 시뮬레이션 공유 기능을 제공한다. 사용자는 자신이 만든 시뮬레이션 정보를 서버에 공유할 수도 있고, 다른 사람들이 만든 시뮬레이션을 다운로드 받을 수도 있다.


7) 기타

• 사용자는 시작 화면에서 시뮬레이션 제작 화면으로 넘어갈 수 있다.

• 사용자는 시작 화면에서 서버 연동 대시보드 화면으로 넘어갈 수 있다.

• 사용자는 시뮬레이션 제작 정보를 담고 있는 파일을 불러올 수 있다.

• 사용자가 자판으로 입력하는 슬롯에서는 자동완성 기능을 제공한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ VR : 단순 결과 데이터뿐 아니라 실질적 체험이 중요한 분야에 시뮬레이션과 통합된 환경을 제공

◇ AI  : 시뮬레이션을 통해 AI를 학습시키거나 통합된 데이터를 추출할 수 있다. 작성된 AI 모델을 테스트하는 분야에 사용할 수 있다. 또한 수학적 모델을 통한 시뮬레이션이 어려운 분야를 학습을 통한 시뮬레이션 데이터를 얻어 낼 수 있다.

◇ UNITY: 유니티 내에서 XML과 JSON같은 직렬화 언어를 처리하기 위해 YAML을 제공한다. 또한, Adaptive Performance 4.0을 출시해 레이어 컬링 스케일러,어댑티브 데칼, 커스텀 스케일러, 어댑티브 물리 등을 적절하게 조절해 평균 프레임 시간을 줄이고 스로틀링 발생률을 줄일 수 있다.

  • 특허조사 및 특허 전략 분석

◇ 고 자유도 시뮬레이션 시스템 및 이를 이용한 시뮬레이션 방법(10-2018-0079982)

높은 자유도를 가진 시뮬레이터를 만들기 위해 필요한 프로그램의 구조가 특허로 등록되어있다. 해당 구조는 비주얼 코딩부, 모듈 생성부, 저장데이터 작성부, 데이터 저장부, 시뮬레이션 구동부, 시현부, 확장 모듈부 이렇게 7개로 나뉘어있다. 특허 문서에는 각 부분에 필요한 요소들을 도식화하였고, 간단한 설명이 함께 작성되어있다. 해당 구조는 자유로를 해치지 않는다는 특징에 대해 설명되어있지만, 그 예시가 없고 근거가 충분해 보이지 않는다.

◇ 에이전트 기반 시뮬레이션에서 기계학습을 이용한 미시 시뮬레이션 파라미터 교정 방법 및 장치(10-2020-0061173)

시뮬레이션에 필요한 파라미터들을 기계학습을 통해 추출하는 방식이 특허로 등록되어있다. 사용자가 초기 파라미터 세트와 시나리오 데이터를 가지고 미시적인 데이터를 대량으로 추출한다. 이를 기계학습을 통해 거시적인 데이터로 변환하고 이를 통해 파라미터를 추정하는 것이다. 이 기술을 활용한다면, SIM:MONS에서 시뮬레이션 제작을 할 수 있을 뿐만 아니라 가장 이상적인 시나리오 파라미터를 추천해줄 수 있을 것이다.

  • 특허 전략

◇ SIM:MONS의 비주얼 코딩 구조

SIM:MONS는 객체의 관리와 이벤트의 관리를 비주얼 코딩을 통해 진행한다. 비주얼 코딩이 시뮬레이션의 자율도를 높여주는 것은 사실이지만, 기존에 등록되어있는 특허 중에서는 시뮬레이션의 자유도가 높은 비주얼 코딩 방식에 대한 내용은 없었다. 최적화된 비주얼 코딩 구조를 고안한다면 이를 특허로 등록할 수 있을 것으로 보인다.

  • 기술 로드맵

시장상황에 대한 분석

  • 경쟁제품 조사 비교

기존 시장에 존재하는 시뮬레이션 제품들은 시뮬레이션에서 다루고 있는 주제들이 한정적인 경우가 많았다. 물리 역학 엔진인 ‘algoddo’(AUTODESK)는 다양한 물리적 상호작용을 실험해 볼 수 있는 기능을 제공하고 있고, 군사용 시뮬레이터 ‘SimCentric’에서는 전투기 조종, 전장에서의 사격 훈련 등을 모의로 진행해볼 수 있는 기능을 제공한다. 각각의 시뮬레이션 프로그램들은 물리학, 군사 분야에서는 활용할 수 있지만 다른 분야에서는 사용하기 어려운 모습을 보여주었다. 이는 시뮬레이션 게임 시장에서도 비슷한 동향을 보여주었다. 실제와 비슷하게 트럭을 운전하는 게임인 ‘Euro Truck Simulator’, 자신만의 도시를 제작하는 ‘cities: skylines’ 모두 트럭과 도시라는 한정적인 주제를 다루고 있다. 게임용 시뮬레이션들은 시각적 효과에 좀 더 비중을 두고 있었지만, 그만큼 구현할 수 있는 범위가 좁은 모습을 보여주었다. 이렇듯 확장성이 좋은 시뮬레이터 수가 시뮬레이션 시장에서 차지하고 있는 비중이 매우 적었다. 확장성이 좋은 시뮬레이션의 경우에도 시뮬레이션 제작 도구에 대한 많은 공부가 필요할 정도로 직관성이 떨어지고, 다수의 경우 프로그래밍이 필수로 들어가야 했다. (예: unity simultor pro 3D)

  • 마케팅 전략 제시

◇ 기존 제품과의 차별점으로서 유저친화적인 UI와 자유로운 시뮬레이션 주제 선정이 가능함을 주장하고자 한다. 시장에 존재하는 시뮬레이션 제품들은 한정된 주제 안에서만 시뮬레이션을 제작해야 하는 경우가 많았으며, 해당 주제를 실험하는데 필요한 지정된 변수를 고정으로 제공하여 이를 조정하여 결과를 얻어내었다.

◇ 사용자가 직접 객체의 종류와 특성을 지정하고 객체 간의 상호작용 이벤트를 정의함으로서 원하는 상황의 모델을 구상하고, 실험할 수 있도록 한다.

개발과제의 기대효과

기술적 기대효과

시뮬레이션 실험에 대한 접근성을 완화하여 다양한 학문의 발전에 기여한다. SIM:MONS는 전문성과 게임성을 모두 갖춘 연구 도구가 될 것이다. SIM:MONS의 단순한 조작감은 기존의 시뮬레이션 제작 툴에 익숙하지 않던 연구자들이 다양한 실험을 진행해볼 수 있는 환경을 제공해줄 것으로 기대된다. 이전보다 더 많은 아이디어가 시뮬레이션 세계에서 구현되고, 다양한 실험들이 결과를 만들어 낼 것이다. 이는 자연스럽게 학문의 발전으로 이어질 것으로 예상된다.


사용자들의 자유로운 창작 공간이 되어준다. SIM:MONS의 또다른 장점은 자유로움이다. 코딩을 필요로 하지 않으면서 자유로운 시뮬레이션 설계가 가능하기 때문에, SIM:MONS에서 어떤 시뮬레이션이 만들어질 수 있을지 알 수 없다.

경제적, 사회적 기대 및 파급효과

SIM:MONS는 자신이 만든 시뮬레이션을 다른 사람과 공유할 수 있다. 다양한 시뮬레이션을 공유함으로써 사회현상에 대한 문제를 다양한 관점에서 예측할 수 있게 된다. 또한 사용자는 서버와 연동된 대시보드에서 관심이 있는 시뮬레이션을 직접 실행해볼 수도 있고, 이를 수정하면서 다른 결과를 도출해낼 수도 있다. 시뮬레이션에 대한 수정이 용이한 SIM:MONS는 같은 주제로 고민하는 사람들에게 다양한 관점을 제공해 줄 것이다.


시뮬레이션 모델 제작에 있어 접근성을 향상시켜 사용자 개인이 원하는 사회현상에 접목하여 시뮬레이션을 진행할 수 있다. 이 시뮬레이션 진행 과정을 가시화하여 확인할 수 있기 때문에 대중이 이해하기 쉽게 영상화, 도식화하여 대중의 행동 변화를 촉구하는 등의 주장에 힘을 실어줄 수 있다.

기술개발 일정 및 추진체계

개발 일정

내용

구성원 및 추진체계

◇ 박*홍: SIM:MONS 시스템 메인 기획, UI 기획 및 개발, SimObject 관리 기획 및 개발

◇ 서*찬: 이벤트 목록 구상, 이벤트 관리 및 실행 개발, 시뮬레이션 배속/정지 개발

◇ 정*교: SIM:MONS 대시보드, 그래프, 로그, 시뮬레이션 파일, 이미지 입출력 부분 개발

◇ 최*용: SIM:MONS 시스템 기획, MapObject 관리 기획 및 개발, GUI적용, 카메라 전환 및 구동 구현, 시뮬레이션 시나리오 기획 구현

설계

설계사양

사용자 요구사항

내용

사용자 요구사항 만족을 위한 기능 정의 및 기능별 정량목표

image

1) Simulation 시뮬레이션을 실행하고 시뮬레이션 결과나 맵, 이벤트 편집등을 담당하며, 대시보드를 통해 서버 시스템에 요청을 전달한다. C# 으로 작성된다.

2) Sever 시뮬레이션의 요청에 따라 데이터베이스의 시뮬레이션 정보를 받아오거나 변경, 삭제등을 하는 역할를 한다. JavaScript로 작성된다.

◇ 유즈케이스도


개념설계안

내용

이론적 계산 및 시뮬레이션

내용

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용