Particle Lenia: 웹 브라우저에서 펼쳐지는 디지털 생물학의 진화
서론: CRUD 너머의 세상을 보라
솔직히 말해봅시다. 우리 대부분은 하루 종일 JSON을 파싱하고, DB에 데이터를 쑤셔 넣고, API를 연결하는 일명 ‘CRUD 엔지니어링’에 매몰되어 있습니다. 물론 그게 비즈니스의 핵심이긴 하지만, 가끔은 우리가 왜 컴퓨터 과학에 빠져들었는지 잊어버리곤 하죠.
오늘 소개할 Particle Lenia 는 그런 매너리즘에 빠진 뇌를 강하게 자극하는 프로젝트입니다. 존 호튼 콘웨이(John Horton Conway)의 ‘생명 게임(Game of Life)‘을 기억하시나요? 흑백 격자 위에서 단순한 규칙으로 복잡한 패턴이 만들어지는 그 고전적인 세포 자동자(Cellular Automata) 말입니다. Lenia는 그 개념을 연속적인 공간(Continuous Space)과 상태(Continuous State)로 확장한 것입니다. 그리고 이 ‘Particle Lenia’는 그 수식을 입자(Particle) 기반으로 재해석하여 웹 브라우저 위에서 60fps로 돌려버립니다.
이건 단순한 장난감이 아닙니다. 복잡계(Complex Systems)와 창발성(Emergence)을 시각화하는 가장 우아한 엔지니어링 데모 중 하나입니다.
기술적 심층 분석: 격자에서 입자로
1. Lenia의 진화
기존의 생명 게임이 0과 1, 그리고 딱딱한 격자 위에서 돌아갔다면, Lenia는 실수(Float) 값과 컨볼루션(Convolution) 연산을 사용합니다. 쉽게 말해, 주변 이웃의 상태를 단순히 세는 게 아니라, 도넛 모양의 커널(Kernel)을 통해 가중치 합을 구하고, 이를 활성화 함수(Activation Function)에 통과시켜 다음 상태를 결정합니다. 결과적으로 마치 단세포 생물이 꿈틀거리는 듯한 유기적인 움직임이 나옵니다.
2. Particle Lenia의 차별점
이 프로젝트가 흥미로운 지점은 ‘Particle’이라는 접두사에 있습니다. 일반적인 Lenia가 2D 텍스처(Grid) 위에서 픽셀 값을 업데이트하는 방식(Eulerian)이라면, Particle Lenia는 개별 입자들이 힘과 규칙에 따라 움직이는 방식(Lagrangian)을 취합니다. 이는 물리학 시뮬레이션과 생물학적 규칙의 기묘한 결합입니다.
웹 데모(znah.net)를 뜯어보면, 수만 개의 파티클을 실시간으로 처리하기 위해 WebGL 이나 WebGPU 를 극한으로 활용하고 있을 겁니다. 각 파티클이 주변 파티클을 감지하고 상호작용하는 연산 비용은 $O(N^2)$에 가깝기 때문에, 이를 브라우저에서 실시간으로 구현했다는 것은 공간 분할(Spatial Partitioning)이나 셰이더(Shader) 최적화가 기가 막히게 들어갔다는 뜻입니다.
UX와 인터랙션: ‘살아있다’는 느낌
제가 이 데모에서 가장 높게 평가하는 부분은 단순히 ‘보는 것’을 넘어 ‘상호작용’을 구현했다는 점입니다.
- Drag & Drop Serialization: 크리처를 드래그해서 바탕화면으로 빼면 파일로 저장되고, 다시 브라우저로 던지면 살아납니다. 상태(State)를 직렬화(Serialization)하여 이미지나 JSON 메타데이터로 캡슐화한 것인데, UX적으로 매우 매끄럽습니다. 마치 포켓몬을 몬스터볼에 넣었다 빼는 느낌이랄까요.
- Herding & Spawning: 마우스를 꾹 눌러 입자들을 몰거나(Herding), 더블 클릭으로 새로운 입자를 생성(Spawning)할 수 있습니다. 이는 시뮬레이션에 개입할 수 있는 ‘신(God)‘의 권한을 사용자에게 부여합니다.
이런 디테일은 기술 데모를 넘어 하나의 ‘경험’을 만들어냅니다. 엔지니어링 관점에서도 사용자의 입력 이벤트를 물리 엔진의 힘(Force)으로 변환하여 자연스럽게 시뮬레이션에 녹여낸 점이 인상적입니다.
Hacker News의 반응과 나의 생각
아직 이 글을 쓰는 시점에서는 Hacker News에 코멘트가 달리지 않았습니다. 아마도 너무 니치(Niche)한 주제이거나, 혹은 보자마자 넋을 잃고 데모를 가지고 노느라 댓글 달 시간을 잊었을지도 모릅니다.
개인적으로는 이런 프로젝트가 더 많이 나와야 한다고 생각합니다. 요즘 AI 트렌드는 온통 LLM(거대 언어 모델)에 쏠려 있습니다. 텍스트를 생성하고 요약하는 것도 중요하지만, ‘생명 현상의 본질’ 을 수학적으로 모방하려는 시도는 AI의 또 다른 뿌리입니다. Lenia 같은 시스템은 강화학습(RL) 에이전트의 환경으로도 연구되고 있으며, 인공 생명(ALife) 분야에서 중요한 위치를 차지하고 있습니다.
결론: 엔지니어에게 주는 영감
이 기술이 당장 여러분 회사의 매출을 올려주진 않을 겁니다. 프로덕션 코드에 Lenia 알고리즘을 넣을 일도 없겠죠. 하지만 Particle Lenia 는 우리에게 중요한 사실을 상기시켜 줍니다.
“복잡성은 복잡한 코드에서 나오는 것이 아니라, 단순한 규칙의 반복에서 나온다.”
우리가 만드는 시스템도 결국 수많은 마이크로서비스와 모듈의 상호작용입니다. 때로는 코드를 줄이고 규칙을 단순화하는 것이 더 유기적이고 강력한 시스템을 만드는 길일지도 모릅니다. 잠시 머리를 식히고 싶다면, 이 데모를 켜두고 디지털 생명체들이 진화하는 모습을 지켜보세요. 꽤나 힐링이 됩니다.
참고 링크: