메뉴
HN
Hacker News 36일 전

신경 입자 오토마타(NPA): 자가 조직화 입자 역학 학습

IMP
8/10
핵심 요약

EPFL과 KAIST 연구진이 고정된 격자 환경에서 작동하던 기존 모델을 동적인 입자 시스템으로 일반화한 '신경 입자 오토마타(NPA)'를 발표했습니다. 이 모델은 메모리 효율적인 CUDA 커널과 미분 가능한 SPH(Smoothed Particle Hydrodynamics) 연산을 활용하여 수많은 입자 간의 복잡한 상호작용과 형태 발생, 재생 등의 자가 조직화(Self-organizing) 과정을 엔드투엔드로 학습합니다. 이는 물리 시뮬레이션 및 로보틱스 등 동적인 환경을 모델링하는 데 있어 중요한 연구 성과입니다.

번역된 본문

원문 제목: Show HN: Neural Particle Automata (신경 입자 오토마타) 소스: hackernews

신경 입자 오토마타(Neural Particle Automata): 자가 조직화 입자 역학 학습 Ehsan Pajouheshgar* 1, Hyunsoo Kim* 2, Sabine Süsstrunk 1, Wenzel Jakob 1, Jinah Park 2 1 EPFL, 스위스    2 KAIST, 대한민국 (* 표시는 공동 제1저자임을 의미) SIGGRAPH 2026 / arXiv / GitHub / 텍스처 데모 / 성장 데모 / Colab / 보충 자료 / 동등성 성장 데모(Equivariant Growing Demo, 보너스) *참고: 본 데모는 현재 아이폰 기기를 지원하지 않습니다. 데스크톱, 노트북 또는 안드로이드 기기를 사용해 주세요.

데모 인터페이스 안내:

  • Steps / Frame (단계/프레임): 1/2x
  • $\epsilon = $ (지원 반경)
  • Brush Size (브러시 크기), Particle Radius (입자 반경), Brush Mode (브러시 모드), Particle Count (입자 수): 4096
  • 캔버스를 클릭하거나 탭하여 입자와 상호작용하세요!
  • "C" 키를 눌러 NPA 채널 간 시각화를 전환할 수 있습니다.
  • $(\Delta x, \Delta y)$를 변경할 때, 오일러 적분(Euler integration)이 과도해지는 것을 방지하기 위해 $\Delta t$ 값을 자동으로 조정합니다.
  • 등방성(Isotropic) 모드에서는 스케일링 팩터가 $\Delta x = \Delta y$가 되도록 강제 적용됩니다.
  • Target Image (목표 이미지)

초록 (Abstract) 우리는 정적 격자(lattice) 기반의 기존 '신경 세포 자동자(Neural Cellular Automata, NCA)'를 동적 입자 시스템으로 라그랑지안(Lagrangian) 방식으로 일반화한 '신경 입자 오토마타(Neural Particle Automata, NPA)'를 소개합니다. 세포가 픽셀이나 복셀(voxel)에 고정되는 고전적인 오일러리안(Eulerian) NCA와 달리, NPA는 각 세포를 연속적인 위치와 내부 상태를 가진 입자로 표현하며, 이는 모두 학습 가능한 하나의 신경망 규칙에 의해 업데이트됩니다. 이러한 입자 기반 공식화는 세포의 명확한 개별화를 이끌어내고, 이질적인 역학을 허용하며, 활동이 존재하는 영역에 연산을 집중시킵니다.

그러나 입자 시스템은 두 가지 도전 과제를 안고 있습니다. 첫째, 이웃 관계가 동적으로 변한다는 점이고, 둘째, 지역 상호작용을 단순히 구현할 경우 입자 수에 따라 계산량이 2차함수적(quadratically)으로 기하급증한다는 점입니다. 우리는 격자 기반 인식 구조를 미분 가능한 SPH(Smoothed Particle Hydrodynamics, 평활 입자 유체역학) 연산자로 대체하여 이 문제를 해결했습니다. 이는 확장 가능한 엔드투엔드 학습을 위한 메모리 효율적인 CUDA 커널에 의해 지원됩니다. 형태 발생(morphogenesis), 포인트 클라우드 분류, 입자 기반 텍스처 합성 등의 작업을 통해 우리는 NPA가 견고성(robustness) 및 재생능력과 같은 NCA의 핵심 동작을 유지하면서도 입자 시스템에 특화된 새로운 동작을 가능하게 함을 보여줍니다. 이러한 결과는 NPA를 자가 조직화 입자 시스템을 학습하기 위한 간결한 신경망 모델로 자리매김하게 합니다.

입자는 자신의 이웃을 어떻게 인식하는가? SPH 인식은 격자 기반 NCA에서의 합성곱(convolutional) 인식과 대응되는 입자 기반 방식입니다. 각 입자 $i$는 연속적인 위치 $\mathbf{x}_i$와 내부 상태 $\mathbf{S}_i$를 가지고 있으며, 고정된 격자 이웃에서 정보를 읽어오는 대신, 부드러운 커널(smooth kernels)을 사용하여 지원 반경 $\epsilon$ 내에 있는 주변 입자 $j$들의 정보를 종합합니다. 이러한 국소적 합산은 밀도 $\rho_i$, 평활화된 상태 $\tilde{\mathbf{S}}_i$, 밀도 기울기 $\nabla\rho_i$, 모멘트 행렬 $\mathbf{M}_i$ 및 0차 또는 1차 상태 기울기와 같은 물리량을 추정합니다.

신경 입자 오토마타(NPA)에서 이러한 측정치는 공유 업데이트 규칙을 위한 압축된 국소 인식 벡터를 형성합니다. 이는 NCA의 국소성(locality)을 보존하면서도 입자들이 불규칙하고 동적인 형태로 존재할 수 있게 해줍니다. 본 데모는 선택된 중심 입자 주변에서 이러한 연산자들이 어떻게 작용하는지 시각화합니다. 명확성을 위해 입자들은 2D 공간에 존재하며, 모든 입자의 질량은 $m_i=1.0$으로 설정되고, 각 상태는 RGB 색상으로 표시되는 3개의 채널만 가집니다. 중심 입자의 상태는 $(0,0,0)$으로 고정됩니다.

점선 원은 $\epsilon$-이웃을 표시합니다. 하단의 그래프는 스무딩 커널 $W_\epsilon(r)$과 뾰족한 기울기 커널의 크기 $|W_\epsilon^{\nabla}(r)|$가 거리 $|r|$의 함수로 어떻게 나타나는지 보여주며, 점들은 각 입자가 해당 커널 곡선 상에 어떻게 분포하는지를 나타냅니다. '밀도 및 개수'는 스칼라 이웃 요약을 표시하고, '스무딩'은 커널 평균화된 RGB 상태를 보여줍니다. $\nabla\rho$(밀도 기울기)는 입자 밀도가 증가하는 방향을 가리키며, 중심 입자의 어느 쪽이 더 붐비는지 알려줍니다. 상태-기울기(state-gradient)는...

원문 보기
원문 보기 (영어)
Neural Particle Automata: Learning Self-Organizing Particle Dynamics Ehsan Pajouheshgar * 1 , Hyunsoo Kim * 2 , Sabine Süsstrunk 1 , Wenzel Jakob 1 , Jinah Park 2 1 EPFL, Switzerland    2 KAIST, South Korea * Denotes equal contribution SIGGRAPH 2026 arXiv GitHub Texture Demo --> Texture Demo Growing Demo --> Growing Demo arXiv --> --> --> --> --> Font Awesome fontawesome.com –>--> --> Colab --> --> --> --> --> --> --> --> Supplementary --> --> --> Equivariant Growing Demo (Bonus) This demo is not yet supported on iPhone devices . Please use desktop/laptop or Android devices. --> --> --> --> --> Steps / Frame: 1/2x $\epsilon = $ Brush Size Particle Radius: Brush Mode Particle Count: 4096 Click or tap the canvas to interact with the particles! Press "C" to switch visualization between NPA channels. When changing $(\Delta x, \Delta y)$, we automatically adjust the value of $\Delta t$ to avoid the Euler integration from overshooting. In the Isotropic mode, the scaling factors are forced to be equal $\Delta x = \Delta y$. --> Target Image --> --> --> --> Abstract We introduce Neural Particle Automata (NPA), a Lagrangian generalization of Neural Cellular Automata (NCA) from static lattices to dynamic particle systems. Unlike classical Eulerian NCA where cells are fixed to pixels or voxels, NPA represent each cell as a particle with a continuous position and an internal state, both updated by a shared learnable neural rule. This particle-based formulation yields clear individuation of cells, allows heterogeneous dynamics, and focuses computation on regions where activity is present. However, particle systems introduce two challenges: neighborhoods are dynamic, and a naive implementation of local interactions scales quadratically with the number of particles. We address these issues by replacing grid-based perception with differentiable Smoothed Particle Hydrodynamics (SPH) operators, backed by memory-efficient CUDA kernels for scalable end-to-end training. Across tasks including morphogenesis, point-cloud classification, and particle-based texture synthesis, we show that NPA retain key NCA behaviors such as robustness and regeneration, while enabling new behaviors specific to particle systems. These results position NPA as a compact neural model for learning self-organizing particle systems. How Do Particles Perceive Their Neighbors? SPH perception is the particle-based counterpart of convolutional perception in grid-based Neural Cellular Automata. Each particle \(i\) has a continuous position \(\mathbf{x}_i\) and an internal state \(\mathbf{S}_i\); instead of reading from fixed lattice neighbors, it aggregates nearby particles \(j\) inside a support radius \(\epsilon\) using smooth kernels. These local sums estimate quantities such as density \(\rho_i\), smoothed state \(\tilde{\mathbf{S}}_i\), density gradient \(\nabla\rho_i\), the moment matrix \(\mathbf{M}_i\), and 0th- or 1st-order state gradients. In Neural Particle Automata, these measurements form a compact local perception vector for a shared update rule, preserving the locality of NCA while allowing particles to live on irregular and dynamic configurations. This demo visualizes those operators around the selected center particle. For clarity, particles live in 2D, all particle masses are set to \(m_i=1.0\), and each state has only three channels, shown as RGB color; the center particle's state is fixed to \((0,0,0)\). The dashed circle marks the \(\epsilon\)-neighborhood, and the bottom plots show the smoothing kernel \(W_\epsilon(r)\) and spiky gradient kernel's magnitude \(\|W_\epsilon^{\nabla}(r)\|\) as functions of distance \(|r|\), with dots indicating where particles fall along those kernels. Density and count display scalar neighborhood summaries; smoothing shows the kernel-averaged RGB state; and \(\nabla\rho\) points toward the direction where particle density increases, indicating which side of the center particle is more crowded. The state-gradient modes estimate how the RGB state changes around the center particle. The 0th-order estimator uses differences \(\mathbf{S}_j-\mathbf{S}_i\), so a constant state field gives exactly zero gradient even if the particles are irregularly placed. Under uneven sampling, however, this difference formula can be biased for fields that change linearly. The 1st-order correction uses the moment matrix \(\mathbf{M}_i\), which summarizes the local geometry of the neighbors around particle \(i\): roughly, it describes how the neighbor offsets and kernel-gradient directions cover space. Multiplying by \(\mathbf{M}_i^{-1}\) normalizes out this local geometric distortion, making the gradient estimate exact for locally linear fields when the neighborhood is well-conditioned. In the demo, the RGB arrows visualize per-channel state gradients, while the moment-matrix view shows the local geometric directions used by this correction. Multi Species Simulation Your browser does not support the video tag. Try the multi-species Demo (Click)! --> BibTeX { } @misc{pajouheshgar2023mesh,--> -->