터라스에서 별을 관측하는 오프라인 가이드: 오픈 웨이트 Gemma 활용
요약
본 앱은 벵갈루루 테라스를 배경으로 개발된 웹 기반의 별자리 관측 가이드입니다. GPS나 네트워크 연결 없이 순수 코드로 천문학적 계산을 수행하며, Ollama를 통해 로컬 Gemma 3 1B 모델을 활용하여 밤하늘 투어 설명 및 실용적인 정보를 제공합니다.
핵심 포인트
- 오프라인 작동: 인터넷이나 GPS 없이도 별자리 관측이 가능합니다.
- 로컬 LLM 활용: Ollama와 Gemma 3 1B를 이용해 개방형 가중치 내레이션을 구현했습니다.
- 천문학적 정밀성: 고도/방위각 계산, 달 위상 및 행성 궤도 예측 기능이 포함됩니다.
제목: 벵갈루루 테라스를 위한 별자리 관측 가이드 웹 앱
콘텐츠:
'바깥 공기 마시기(Touch Grass)'라는 주제로, 화면을 경험의 가장 짧은 부분으로 만드는 무언가를 만들었습니다. 바로 현재 지평선 위에 실제로 무엇이 떠 있는지 알려주고, 사용자들을 야외로 안내하는 벵갈루루 테라스용 별자리 관측 가이드입니다.
제작 내용
테라스 스카이 스포터(Terrace Sky Spotter) — 웹 앱 (순수 HTML/JS + 의존성 없는 Python 서버, stdlib만 사용)으로 구성되어 있으며, 두 부분으로 나뉩니다:
- 결정론적 천문학 (Deterministic astronomy, AI가 아닌 코드): 공개 카탈로그(Yale Bright Star Catalogue / HYG, 퍼블릭 도메인)에서 가져온 16개의 기준 별과 실제 줄리안 날짜(Julian-date)를 사용하여 시리얼 시간 계산법(sidereal-time math)을 통해 12.97°N 77.59°E 지점의 고도/방위각(altitude/azimuth)을 계산합니다. GPS나 네트워크 연결이 필요 없습니다. 별자리를 터치하면 해당 별자리의 찾는 법(finder hint)을 알려줍니다.
- 개방형 가중치 내레이션 (Open-weight narration, Ollama를 통한 로컬 Gemma 3 1B 사용): "내 투어 설명하기(Narrate my tour)" 버튼을 누르면 그날 밤의 관측 순서(가장 먼저 지는 별자리부터), 별 이동 안내, 신화, 실용적인 팁 — 그리고 별자리별 "어떻게 찾나요?"에 대한 답변이 생성됩니다.
첫 버전 이후, 이 앱을 실제 관측 도구로 만들어주는 세 가지 기능을 추가했습니다:
-
🌙 달 위상 + 워시아웃 필터(Moon phase + washout filter): 주기 모델(synodic model)을 사용하여 조도를 계산합니다 (2026년 3월 달 식에 맞춰 검증됨). 육안 관측 한계가 약 자전 등급(mag) 5.5에서 약 자전 등급 2.3으로 조정되며, 희미한 목표물에는 🌕 워시아웃 배지가 표시됩니다.
-
🪐 행성 (Planets): 낮은 정밀도의 궤도 계산을 추가하여 금성, 화성, 목성, 토성을 포함합니다 (금성 이심률 불변량(Venus-elongation invariant)으로 검증됨). 현재 저녁 하늘에서 가장 좋은 것은 동쪽 42도에 위치한 토성입니다.
-
🕘 시간 선택기 (Time picker): 지금뿐만 아니라 미래의 어느 저녁 시간이라도 관측 계획을 세울 수 있습니다.
-
실시간 데모:
python3 app.py를 실행하고http://localhost:8002에 접속하세요 (Ollama와gemma3:1b필요; CPU에서 약 30초 만에 투어 설명 완료). -
코드: https://github.com/sank8-2/terrace-sky-spotter (MIT 라이선스)
이런 분들께 추천합니다
저의 룸메이트 Nagaraj와 저는 벵갈루루 테라스에서 별을 관측합니다. 휴대폰 밝기를 낮추고, 시선을 하늘로 향하죠. 제가 이 경험을 밝은 달빛이 비치는 밤 야외에서 직접 해보니: 달빛 때문에 희미한 별들이 다 날아가 버렸습니다. 이는 앱의 워시아웃 필터가 정확히 예측하는 방식과 같습니다—페가수스 사각형(Pegasus square), 베가(Vega)와 알타이르(Altair)는 선명하게 빛났지만, 물고기자리(Pisces)는 사라졌습니다. 이 밤하늘의 모습이야말로 🌕 배지가 만들어진 근간입니다.
여기서 오픈 소스가 중요한 이유
- 신호가 없어도 작동합니다. 별자리 목록은 번들 데이터이며 모델이 기기 내(on-device)에서 실행됩니다. 폐쇄형 API 가이드는 막대가 사라지는 순간 작동을 멈춥니다—바로 가장 필요할 때입니다: 테라스, 트레일, 마을.
- 위치 정보는 사용자에게 머뭅니다. 별 관측에는 좌표가 필요하며, 여기서는 그 좌표가 노트북을 떠나지 않습니다.
- 무료이며 교체가 가능합니다. 환경 변수(env var) 하나만 변경하면 내일의 모델도 바꿀 수 있습니다.
솔직히 말씀드리자면: 모델이 하늘을 상상하게 두지 마세요
테스트 과정에서 핵심적인 실패 모드를 발견했습니다. 지평선 아래에 있는 카시오페이아(Cassiopeia)에 대해 질문했을 때, 모델은 마치 그것이
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기