Skip to content
This repository was archived by the owner on Jul 13, 2025. It is now read-only.

Latest commit

 

History

History
329 lines (241 loc) · 11.3 KB

File metadata and controls

329 lines (241 loc) · 11.3 KB

Boids++ 시뮬레이션 시스템

2025-07-12 19 26 44 mp4 (2)

공간 해시 기반 무리 시뮬레이션으로 고전적인 Boids 행동과 함께 포식자-먹이 상호작용 및 장애물 회피 기능을 구현하며, 성능 최적화와 대화형 제어 기능을 포함합니다.


목차
  1. 소개
  2. 주요 기능
  3. 빠른 시작
  4. 컨트롤 및 CLI 옵션
  5. 프로젝트 구조
  6. AI 생성 과정
  7. 커스터마이징 가이드
  8. 성능 지표
  9. 부록 A – AI 프롬프트 템플릿

1. 소개

Boids++ 시뮬레이션은 다음을 구현한 Python 프로그램입니다:

  • 고전적인 Boids 알고리즘(분리, 정렬, 응집)을 사용한 무리 행동 시뮬레이션
  • 공간 해시 그리드 기법을 사용한 충돌 감지 최적화
  • 표준 Boids, 포식자, 장애물, 리더 등 다양한 에이전트 유형 구현
  • Pygame을 사용한 실시간 시각화
  • 자동 테스트 및 성능 측정 기능 포함

이 시뮬레이션은 창발적 행동 패턴과 효율적인 공간 분할 기법을 보여주어 AI 개념, 최적화 전략, 대화형 시각화를 가르치는 데 이상적입니다.


2. 주요 기능

  • 공간 해시 그리드 시스템

    • 최적화된 충돌 감지 및 이웃 탐색
    • 충돌 검사 최대 80% 감소
  • 다중 에이전트 유형

    • 표준 Boids - 고전적인 무리 행동 구현
    • 포식자 - Boids를 사냥하고 추적
    • 장애물 - 회피해야 하는 정적 객체
    • 리더 - 그룹 이동에 영향을 주는 특별한 Boids
  • 고급 무리 알고리즘

    • 분리, 정렬, 응집
    • 장애물 회피
    • 경계 처리
    • 포식자 회피
  • 대화형 컨트롤

    • 실시간 매개변수 조정
    • 시각화 모드 전환
    • 시뮬레이션 속도 제어
  • 성능 최적화

    • 200개 이상의 에이전트로 60 FPS 유지
    • 최대 10배 속도 배율 지원
    • 효율적인 데이터 구조 및 알고리즘

3. 빠른 시작

# 1 – 의존성 설치
pip install pygame numpy

# 2 – 저장소 복제
git clone https://github.com/OperaAIBot/BoidsSimulation.git
BoidsSimulation

# 3 – 시뮬레이션 실행
python boids_simulation.py

4. 컨트롤 및 CLI 옵션

키 / 옵션 효과
ESC 시뮬레이션 종료
SPACE 시뮬레이션 일시 정지/재개
G 그리드 시각화 전환
V 시각화 모드 변경
+/- 시뮬레이션 속도 증가/감소
H 도움말 표시 전환
--auto-test 자동화된 30초 테스트 실행

5. 프로젝트 구조

AI_Auto_Project/
 ├─ boids_simulation.py     # 주요 시뮬레이션 코드
 ├─ config.json             # 구성 매개변수
 ├─ AIInputText/            # AI 입력 사양
 │   ├─ Common.txt          # 일반 개발 지침
 │   └─ Simulation/         # 시뮬레이션 전용 요구 사항
 │       └─ Simulation.txt  # Boids 시뮬레이션 사양
 └─ Simulation/             # AI 자동화 스크립트
     └─ simulation.py       # 자동화 컨트롤러

6. AI 생성 과정

프로그램은 AI 주도 개발 프로세스를 통해 생성되었습니다:

  1. Simulation.txt에 요구 사항 명시
  2. Common.txt에 개발 지침 정의
  3. AI 자동화 컨트롤러(simulation.py)가 코드 생성 및 수정
  4. 성능 목표를 충족하기 위한 반복 테스트 및 최적화
  5. boids_simulation.py에 최종 코드 생성 및 config.json에 구성

7. 커스터마이징 가이드

조정 항목 위치 비고
에이전트 수 config.json "boidCount", "predatorCount" 등
속도 및 힘 config.json "maxSpeed", "maxForce"
그리드 셀 크기 config.json "gridCellSize" (성능에 영향)
시각화 config.json "visualizeGrid" 그리드 표시/숨기기
속도 배수 config.json "speedMultiplier" 시뮬레이션 속도 조절

사용자 지정 시나리오를 만들려면 구성 파일을 수정하거나 코드에서 에이전트 클래스를 확장하십시오.


8. 성능 지표

시뮬레이션은 다음 성능 목표를 충족하도록 최적화되어 있습니다:

  • 60+ FPS에서 200개 이상의 에이전트가 정상 속도로 작동
  • 가속 테스트를 위한 최대 10배 속도 배율 지원
  • 공간 해싱을 통한 80% 이상의 충돌 검사 감소
  • 유효성을 위한 30초 자동화 테스트 기능

성능 지표는 시뮬레이션 중 실시간으로 표시되며, 여기에는 FPS, 에이전트 수, 충돌 효율성 통계가 포함됩니다.


9. 부록 A – AI 프롬프트 템플릿

에이전트(simulation.py)는 OpenAI API와 상호 작용하기 위해 재사용 가능한 메시지 템플릿 라이브러리를 사용합니다. 아래는 자율 개발 프로세스에서 사용된 원시 프롬프트 텍스트입니다.

A.1 프로젝트 분석 시스템 프롬프트

당신은 시뮬레이션 시스템 전문 Python 개발자입니다.
현재 프로젝트 상태를 분석하고 다음 개발 단계를 제안하십시오.

중요 규칙:
- 공간 해시 그리드 및 무리 알고리즘에 집중
- 200개 이상의 에이전트를 위한 성능 최적화를 우선시
- 구체적이고 실행 가능한 개선 사항 제안
- 30초 자동화 테스트 요구 사항 고려

A.2 부분 수정 시스템 프롬프트

당신은 전문 Python 개발자입니다.
제공된 코드의 특정 오류를 최소한의 변경으로 수정하십시오.

중요 규칙:
- 수정된 Python 코드만 제공
- 단일 ```python 코드 블록 사용
- 코드 블록 외에 설명 없음
- 오류를 해결하는 데 필요한 최소한의 수정만 수행
- 공간 해시 그리드 작업에 대한 성능 요구 사항 유지

A.3 부분 수정 사용자 프롬프트 템플릿

프로젝트 목표: Pygame을 사용하여 공간 해시 기반 Boids++ 시뮬레이션 시스템 구현

'{filename}'에 대한 Python 코드의 특정 오류만 수정하십시오.
전체 코드를 다시 작성하지 마십시오. 필요한 최소한의 부분만 수정하십시오.

수정할 오류:
{error_message}

{error_line_info}

현재 코드:
```python
{code}

지침: 오류를 해결하는 데 필요한 코드만 수정하여 단일 코드 블록으로 응답해야 합니다. 설명이나 기타 텍스트를 포함하지 마십시오.

전체 수정된 코드를 제공하십시오:


### A.4 전체 재작성 **시스템** 프롬프트

```text
당신은 시뮬레이션 및 최적화 전문 Python 개발자입니다.
고성능 Boids 시뮬레이션을 달성하기 위해 제공된 코드를 재작성하십시오.

요구 사항:
- 완전하고 작동하는 Python 코드 제공
- 단일 ```python 코드 블록 사용
- 코드 블록 외에 설명 없음
- 200개 이상의 에이전트로 60 FPS 이상 최적화

중요 성능 요구 사항:
- 충돌 감지를 위한 효율적인 공간 해시 그리드 구현
- 이웃 검색 알고리즘 최적화
- 가능한 경우 벡터화된 연산 사용
- 모든 핵심 무리 행동 구현: 분리, 정렬, 응집
- 포식자-먹이 상호작용 및 장애물 회피 포함

A.5 전체 재작성 사용자 프롬프트 템플릿

프로젝트 목표: Pygame을 사용하여 공간 해시 기반 Boids++ 시뮬레이션 시스템 구현

모든 오류를 해결하고 성능을 최적화하기 위해 '{filename}'의 Python 코드를 재작성하십시오.

시뮬레이션에 다음과 같은 오류가 있습니다:
----------------
{error_message}
----------------

현재 코드:
```python
{code}

구성 참조: {config_reference}

단일 코드 블록으로 최적화된 Python 코드만 제공하십시오. 설명은 필요 없습니다.


### A.6 새 코드 **시스템** 프롬프트

```text
당신은 시뮬레이션 및 시각화 전문 Python 개발자입니다.
공간 해시 최적화를 갖춘 완전한 Boids 시뮬레이션 시스템을 만드십시오.

요구 사항:
- ```python 코드 블록에 완전한 Python 코드 제공
- 코드 블록 외에 설명 없음
- 프로젝트 요구 사항을 정확히 따르십시오
- '--auto-test'로 자동 테스트 기능 포함
- 모든 에이전트 유형 포함: Boids, Predators, Obstacles, Leaders
- 200개 이상의 에이전트로 60 FPS 이상 보장

A.7 새 코드 사용자 프롬프트 템플릿

프로젝트 목표: Pygame을 사용하여 공간 해시 기반 Boids++ 시뮬레이션 시스템 구현

고성능 Boids 시뮬레이션을 구현하기 위해 처음부터 완전한 Python 코드를 작성하십시오.

특정 요구 사항:
1) 효율적인 충돌 감지를 위한 공간 해시 그리드 시스템
2) 다양한 에이전트 유형 (Boids, Predators, Obstacles, Leaders)
3) 무리 알고리즘 (분리, 정렬, 응집)
4) 200개 이상의 에이전트로 60 FPS 이상 성능 최적화
5) 30초 자동화 테스트 모드

구성 참조:
{config_reference}

설명 없이 코드 블록에 전체 Python 코드만 제공하십시오.

A.8 성능 최적화 시스템 프롬프트

당신은 Python 성능 최적화 전문가입니다.
최대 프레임 속도를 달성하기 위해 제공된 Boids 시뮬레이션 코드를 최적화하십시오.

요구 사항:
- 최적화된 Python 코드만 제공
- 공간 해시 그리드 효율성에 집중
- 이웃 검색 알고리즘 개선
- numpy를 사용한 벡터화된 연산 사용
- 기능을 저해하지 않는 모든 가능한 최적화 고려

A.9 테스트 모드 시스템 프롬프트

당신은 시뮬레이션 시스템을 위한 자동화 테스트 전문가입니다.
제공된 코드에 포괄적인 30초 테스트 모드를 추가하십시오.

요구 사항:
- 완전한 Python 코드만 제공
- 정확히 30초 이내에 완료되는 자동화된 테스트 구현
- 모든 주요 기능 검증: 무리 행동, 장애물 회피, 포식자-먹이
- 성능 메트릭 및 점수 생성
- 테스트 결과가 명확하게 보고되도록 보장

A.10 고급 기능 시스템 프롬프트

당신은 AI 행동 시스템 및 시뮬레이션 전문가입니다.
제공된 Boids 시뮬레이션에 고급 행동 기능을 추가하십시오.

요구 사항:
- 완전한 Python 코드만 제공
- 그룹 분할/합병 행동 추가
- 이동에 영향을 미치는 환경적 요인 구현
- 더 정교한 포식자 전략 생성
- 모든 추가 기능이 60 FPS 이상의 성능 목표를 유지하도록 보장