새로운 입자 물리 시뮬레이터를 '바이브코딩'으로 만들었습니다(플로트(float)를 쓰지 않는 크로스 플랫폼 비트 결정론적 물리 엔진 포함)! 샌드박스 장난감도 만들었고요! SunaBox(와 SunaEngine)를 소개합니다. 브라우저에서 플레이해보고 '파칭코 증명'도 확인해보세요.
I vibecoded a novel particle physics simulator (with cross-platform non-float bit-deterministic physics) and built a sandbox toy! Introducing: SunaBox (and SunaEngine). Play it in your browser and check out the "Pachinko Proof"
핵심 요약
브라우저에서 즐길 수 있는 비트 결정론적 입자 물리 시뮬레이터 'SunaBox'와 오픈소스 엔진 'SunaEngine'을 소개함.
- 비트 결정론적 물리 — 부동소수점 대신 정수 연산을 사용하여 모든 기기에서 동일한 시뮬레이션 결과를 보장함.
- SunaBox 샌드박스 — 2008년 출시된 OE-CAKE 인터페이스를 재현하고 .oec 파일 불러오기를 지원함.
- 크로스 플랫폼 성능 — WebGPU를 활용해 브라우저에서 구동되며, 입력값만으로 물리 상태를 완벽하게 재현함.
- 오픈소스 엔진 — SunaEngine은 AGPL 라이선스로 공개되어 누구나 물리 시뮬레이션 기술을 활용할 수 있음.
SunaBox와 SunaEngine을 소개한다!
(브라우저에서 바로 플레이 가능!)
SunaBox는 2008년 Prometech에서 출시해 대박 났던 물리 시뮬레이터, OE-CAKE에 바치는 러브레터다!
OE-CAKE 인터페이스를 1:1로 그대로 재현했고(상단에서 Classic 모드 선택!), 예전에 쓰던 .oec 파일도 바로 불러올 수 있다. OE-CAKE랑 거의 93% 정도 똑같다고 보면 되고, 지금도 계속 개선 중이다.
아, 그리고 엔진 밑바닥에는 완전히 새로 만든 오픈소스 우주선을 박아 넣었다...
SunaEngine (AGPL): engine.sunabox.dev / github.com/DARIENBATHALTER/sunaengine
SunaEngine은 부동소수점이 아니라 정수 연산을 기반으로 하는 새로운 크로스 플랫폼 입자 물리 시뮬레이터다. 순서와 상관없이 누적되는 방식을 써서 WebGPU를 지원하는 어떤 브라우저에서든 항상 똑같은 결과가 나온다.
SunaBox는 이걸 활용해서 시뮬레이션 기록을 가벼운 .sunar 파일로 내보낼 수 있게 만들었다. 시뮬레이터의 초기 상태랑 입력값만 저장하면 끝이거든. 녹화하고 공유한 시뮬레이션은 영상처럼 자유롭게 앞뒤로 돌려볼 수 있고, 어떤 기기에서든 *비트 단위까지 똑같이* 재생된다.
이게 되면 뭐가 좋냐고? 지연 시간 짧은 크로스 플랫폼 멀티플레이어 물리 엔진 같은 온갖 재밌는 게 가능해진다! 모든 기기가 물리 연산을 똑같이 처리하니까, 물리 데이터를 네트워크로 쏠 필요 없이 입력값만 보내면 되거든.
SunaEngine 사이트에 가면 실시간으로 돌아가는 데모 3개를 볼 수 있다. 전부 GPU에서 돌아가고, 보는 동안 전체 상태를 해싱까지 한다:
- 쌍둥이 시뮬레이션: 서로 완전히 독립된 두 시뮬레이션인데, 같은 장면, 같은 입력 스케줄로 돌아가고 서로 통신은 전혀 안 한다. 커서로 아무거나 휘저어 봐라. 입력값이 서브스텝 인덱스로 양자화돼서 양쪽으로 똑같이 들어간다. 256비트 해시값은 상호작용이 아무리 일어나도 똑같이 유지된다.



