Skip to content

TheDevilWillBeBee/NPA

Repository files navigation

Neural Particle Automata: Learning Self-Organizing Particle Dynamics

Project Page arXiv SIGGRAPH 2026 Open In Colab

Teaser

Official implementation of Neural Particle Automata: Learning Self-Organizing Particle Dynamics (SIGGRAPH 2026).

Installation

pip install -r requirements.txt

Compiling the CUDA kernels

We use nanobind to bind the CUDA kernels.

cd sphops
./build.sh      # Linux
./build.ps1     # Windows

The code has been tested across multiple CUDA and PyTorch versions. For best results we recommend CUDA 13.0 and PyTorch 2.12. After building, run the test suite to verify the kernels compiled correctly and pass the numerical correctness tests:

python3 test.py

Training

python3 train.py --config configs/growing.yaml
python3 train.py --config configs/texture.yaml
python3 train_dataset.py --config configs/point_mnist.yaml
python3 train_3dgs.py --config configs/growing-3dgs.yaml # Download dataset first

All training configs except growing-3dgs.yaml can run on RTX 2080 with 8GB VRAM. For growing-3dgs.yaml, reduce batch_size in the config to fit in the small VRAM GPUs.

You can also run the growing experiment end-to-end in your browser (no local setup) via the Colab notebook: Open In Colab

Web Demo

To deploy trained models on the interactive web demo, see SelfOrg-NPA/SelfOrg-NPA.github.io.

Data

We provide two pretrained models in data/pretrained:

  • lizard.pth — Growing a morphology experiment
  • polka_dotted.pth — Texture experiment

Set graft_path in your config to one of these models to improve training stability and convergence.

The transparent texture dataset can be downloaded here and should be placed in data/transparent_textures.

For 3DGS morphogenesis, nerf-synthetic dataset can be downloaded here and should be placed in data/nerf_synthetic.

For PointMNIST classification, the code will automatically download MNIST dataset and convert to PointMNIST on the first run. Later runs will use cached PointMNIST dataset saved in data/point-MNIST-512.

TODO

  • Google Colab notebook
  • Self-classifying particles experiment
  • Growing a 3D morphology using Gaussian splats

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors