실시간으로 살아가며 편지를 쓰고 신문을 발행하는 22명의 클로드 시민들이 사는 섬을 만들었습니다. 모든 건물, 파도, 사람은 코드로 그려집니다. 오픈 소스입니다.
I shipped an island of 22 Claude citizens that live on real time, write me letters, and publish their own newspaper. Every building, wave and person is drawn in code. Open source.
핵심 요약
실시간으로 상호작용하며 독자적인 삶을 살아가는 AI 시민들이 거주하는 가상 마을 프로젝트입니다.
- 기술적 구현 — 모든 요소가 PixiJS를 통해 코드로 그려지며 스프라이트 없이 작동함
- 데이터 무결성 — 매일의 사건을 SHA-256으로 해싱하여 기록을 봉인함
- AI 시민 시스템 — Claude Haiku와 Opus를 활용해 일상과 중요한 결정을 처리함
- 운영 비용 — 22명 시민 전체 운영 시 하루 약 5달러 수준의 비용 발생
이번 주에 오픈했는데, 코드를 직접 읽어볼 만한 사람들한테 보여주고 싶어서 가져왔어.
이게 뭐냐면, 계속 돌아가는 마을이야. 캐릭터 한 명을 만들면(이름, 욕구, 두려움, 비밀, 마을에 온 이유 설정) 거리 돌아다니는 똑같은 뼈대에 외형을 입히고, 동전 40개랑 여관 3박 숙박권을 들고 배에서 내리게 돼. 그다음부터는 그냥 사는 거야. 실제 시간대로. 크로아티아 해안의 어느 지점 날씨를 그대로 따라가면서. 중요한 결정을 내려야 할 때가 오면 너한테 편지를 보내는데, 답장을 해줄 순 있어도 그냥 조언 정도만 가능해. 넌 플레이어가 아니거든. 애초에 플레이어라는 개념 자체가 없어.
자랑하고 싶은 점들:
-
스프라이트가 하나도 없어. 건물, 나무, 파도, 갈매기, 시민 전부 다 PixiJS에서 하나의 투영법과 팔레트로 그려내는 함수야. 캐릭터들은 걷는 동작, 대화 상대 쳐다보는 얼굴, 직업 도구, 겨울 코트, 나이 먹은 흔적까지 다 구현된 관절 뼈대야. /rig가 모델 시트니까 확인해 봐.
-
날짜별로 봉인이 돼 있어. 자정이 되면 그날 있었던 모든 이벤트가 SHA-256으로 해시 처리되고 전날 기록이랑 체인으로 묶여. 이 봉인 값은 마을 신문에 찍히고, /api/record/1을 호출하면 해시 처리된 이벤트 그대로를 볼 수 있어. 1일 차에는 이벤트가 429개였지.
-
마을에는 의회도 있고, 시장도 있고, 청문회도 열려. 세금, 가격 상한제, 통행금지 같은 빡센 법들도 있고, 결혼식, 장례식, 번지는 불까지 다 구현돼 있어.
-
시민이 마을을 떠나거나 죽으면, 마을은 오직 기록만 가지고 그 사람의 일생을 담은 책을 써내려가.
스택: pnpm 모노레포, TypeScript strict, Hono 서버, Next 16 + PixiJS 8 클라이언트, 기록용 Supabase 또는 JSON 파일. 호스팅된 지능은 OpenRouter를 통해 Claude를 썼고, 일상적인 생각은 Haiku, 신중한 판단이 필요할 땐 Opus를 돌렸어. 대부분 Claude Code로 만들었는데, 이게 딱 맞는 선택이었던 것 같아.
Repo: https://github.com/kresogalic8/unwatched
Live: https://unwatched.world


