Skip to content

geohyub/FlightSimulator

Repository files navigation

FlightSimulator

집중 세션용 Ambient 비행 시뮬레이터 - ControlTower 연동

3D 비행 시뮬레이션을 통해 업무 집중 세션을 게이미피케이션하는 데스크톱 애플리케이션. ControlTower와 연동하여 비행 완료 시 퀘스트/업적을 자동 생성한다.

버전: v0.1.0 포트: 3150 (API 서버)

기술 스택

구분 기술
백엔드 Tauri 2 (Rust)
프론트엔드 Three.js + TypeScript (Vite)
지구본 Cesium.js
데이터베이스 SQLite (rusqlite, WAL mode)
HTTP 서버 tiny_http (Rust)
WebSocket tungstenite
HTTP 클라이언트 reqwest (ControlTower 동기화)
빌드 Vite (프론트) + Cargo (Rust)

설치

프론트엔드

npm install

Rust 백엔드

Rust toolchain 필요 (rustup.rs)

실행

개발 모드

# 프론트엔드만 (Vite dev server, port 1420)
npm run dev

# Tauri 전체 (Rust + Vite)
npm run tauri dev

프로덕션 빌드

npm run tauri build

배치 파일

run-tauri.bat

주요 기능

3-Phase UX 흐름

  1. Pre-Flight: 지구본 노선 선택, 탑승권 발권, 좌석 선택
  2. In-Flight: 3D 비행 렌더링 (절차적 지형, 해양, 대기, 구름)
  3. Post-Flight: 비행 통계, 도시 방문 기록

3D 렌더링 (Three.js)

  • 절차적 지형 생성
  • 해양 셰이더
  • 대기 산란 효과
  • 볼류메트릭 구름
  • 5가지 카메라 모드

노선 데이터베이스

  • 65개 이상 노선, 50개 도시
  • 카테고리별 분류 (향후 선박 버전 확장 가능)

비행 엔진 (Rust)

  • 상태 머신 기반 비행 시뮬레이션
  • REST API 제공 (localhost:3150)

ControlTower 연동

  • 비행 완료 시 퀘스트 자동 생성 (ControlTower API: localhost:3100)
  • 도시 방문 기록 동기화
  • 업적/보상 연동
  • Standalone 모드: ControlTower 없이도 독립 실행 가능

API 엔드포인트 (localhost:3150)

Endpoint 설명
/start 비행 시작
/status 현재 비행 상태
/land 착륙
/routes 노선 목록
/stats 비행 통계

디렉토리 구조

FlightSimulator/
├── package.json         프론트엔드 설정
├── vite.config.ts       Vite 빌드 설정
├── tsconfig.json        TypeScript 설정
├── index.html           엔트리 HTML
├── src/                 ← 프론트엔드 (TypeScript)
│   ├── config.ts        설정
│   ├── main.ts          엔트리
│   ├── phases/          3-Phase UX 흐름
│   │   ├── phase-manager.ts
│   │   ├── pre-flight/
│   │   ├── in-flight/
│   │   └── post-flight/
│   ├── three/           Three.js 모듈
│   │   ├── terrain/     절차적 지형
│   │   ├── atmosphere/  대기 산란
│   │   ├── aircraft/    항공기 모델
│   │   ├── camera/      카메라 시스템
│   │   ├── globe/       지구본 (Cesium)
│   │   └── core/        렌더링 코어
│   └── utils/           유틸리티
├── src-tauri/           ← Rust 백엔드
│   ├── Cargo.toml       Rust 의존성
│   ├── src/
│   │   ├── main.rs      엔트리
│   │   ├── lib.rs       라이브러리
│   │   ├── models.rs    데이터 모델
│   │   ├── api/         REST API 핸들러
│   │   ├── db/          SQLite 데이터베이스
│   │   ├── flight/      비행 엔진 (상태 머신)
│   │   ├── routes/      노선 데이터
│   │   └── sync/        ControlTower 동기화
│   └── tauri.conf.json  Tauri 설정
├── shared/
│   └── types.ts         공유 TypeScript 타입
└── public/              정적 자산

확장 계획

  • Vehicle 인터페이스 설계: 선박 버전 확장 가능 (공유 타입, Phase 흐름)
  • Route DB: category 필드로 차량 유형 구분

라이선스

Proprietary - Geoview Co., Ltd.

About

Healing timer flight simulator with ControlTower integration — quests and achievements. 힐링 타이머 비행 시뮬레이터

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors