TypeEvacSafe
A fire evacuation simulation with a Jev-style decision for each person.
# TypeEvacSafe **Jev 형식의 타입 안전 판단 엔진을 로컬 LLM 으로 개조하고, 그 위에 화재 피난 모델을 얹은 것.** **A Jev-style typed decision engine rebuilt on local LLMs, with a fire-evacuation model on top.** Meteor Simulation · 화재 시뮬레이션 [BULC](https://bulc.msimul.com) 의 피난 기능으로 통합 예정 · 특허 출원 준비 중 | | | |---|---| | 판단 엔진 | Ternary Bonsai 2 27B(로컬, 7.2 GB) · TypeSafe Jev(API) · Qwen3.5-4B(로컬, 4.5 GB) | | 화재장 | [BULC](https://bulc.msimul.com) 화재 시뮬레이터 결과(.sf/.smv) | | 이동 모델 | 소셜포스(rust_evac BR) + Purser FED + Frantzich–Nilsson 감속 | | 출력 | 0.5 s 간격 전원 좌표·상태 CSV, 궤적 PNG, MP4, 행동 평가 지표 | | 라이선스 | PolyForm Noncommercial 1.0.0 | [한국어](#한국어) · [English](#english) --- # 한국어 <p align="center"><img src="results/hall/bonsai_vs_jev.gif" width="960" alt="Bonsai 2 27B vs TypeSafe Jev"></p> *30×30 m 홀 · 2 MW 화원(★) · 100명(성인 55 · 보호자 10 · 어린이 10 · 노약자 15 · 부상자 10[보행불능 5]) + 소방관 2. 좌 Ternary Bonsai 2 27B(로컬 즉답) · 우 TypeSafe Jev. t=1 s 부터 0.5 s 간격 211 프레임, 실시간 5배속. 회색 = 호흡선(1.5 m) 연기, 남보라 = 천장(2.88 m) 연기, 주황 = 60 °C 이상. ○ 이동 · ▽ 쓰러짐 · × 사망. 전체 영상: [`results/hall/bonsai_vs_jev.mp4`](results/hall/bonsai_vs_jev.mp4)* ## 목차 1. [배경과 목표](#1-배경과-목표) 2. [1부 — Jev 형식 판단 엔진의 로컬 LLM 개조](#2-1부--jev-형식-판단-엔진의-로컬-llm-개조) 3. [2부 — TypeEvacSafe 피난 모델의 원리와 수식](#3-2부--typeevacsafe-피난-모델의-원리와-수식) 4. [실측 결과](#4-실측-결과) 5. [설치와 실행](#5-설치와-실행) 6. [저장소 구성](#6-저장소-구성) 7. [로드맵](#7-로드맵) 8. [출처 · 라이선스 · 특허](#8-출처--라이선스--특허) ## 1. 배경과 목표 기존 피난 시뮬레이션은 모든 사람이 최단 경로로 가장 가까운 출구를 향한다. 실제 화재에서 사람이 하는 일 — 연기를 보고 돌아서고, 불이 난 출구를 버리고 먼 문으로 가고, 아이를 찾아 되돌아가고, 쓰러진 사람을 업고 나오고, 갈 데가 없으면 연기가 옅은 곳에 머무는 — 은 거기에 없다. 우리는 이 판단을 **사람마다 하나씩 붙은 판단 엔진**이 하게 만들고자 했다. 조건은 세 가지였다. - **생성이 아니라 판독**: 매 판단마다 문장을 생성하면 1,000명 규모에서 쓸 수 없다. 상태·질문·선택지를 주면 한 번의 순전파로 선택지 확률을 읽어야 한다. TypeSafe 의 Jev 가 보여준 형식이다. - **로컬 실행**: 건물 도면과 인원 정보는 밖으로 내보내기 어렵다. API 없이 GPU 한 장에서 돌아야 한다.