A set of custom deep network layers written in PyTorch to enable computation with unordered particle sets with an emphasis on fluid dynamics.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples
external/cub-1.3.2/cub
python/SmoothParticleNets
src
tests
.gitignore
LICENSE
README.md
REQUIREMENTS.txt
_config.yml
setup.py

README.md

SmoothParticleNets

Smooth Particle Networks (SmoothParticleNets or SPNets) is a set of custom PyTorch layers to facilitate computation with unordered particle sets. They were created for the purpose of enabling particle-based fluid dynamics inside a deep network, but the layers can be used for other purposes. Broadly, the layers enable computing particle-particle interactions, particle-object interactions, and projections onto and out of a camera image. The interface to this library is in Python. This library contains 6 layers, listed below. Note that this library provides only the basic functionality and no additional utilities, e.g., the library does not include a particle visualizer and the library does not include a tool for processing 3D object mesh files into signed distance fields.

Layers

Below is the list of each layer contained in this library. Clicking on the layer's name will take you to a description of what that layer does and how to use it.

Requirements

This library only requires PyTorch as a dependency. The current version of the library has been tested to work with PyTorch 0.4.1. Furthermore, this library only supports Python 3, and does not support Python 2.

Note that this library was developed only under linux and may or may not run directly without modification on other platforms. Specifically, this library is confirmed to work on Ubuntu 18.04 with PyTorch 0.4.1, Cuda 10.0, and the 410 Nvidia drivers (although that should not matter).

Installation

To install this library, download the source from github. Once downloaded, enter the root directory of the source and run

sudo python3 setup.py install

Once installed, in Python you should be able to call 'import SmoothParticleNets', which will import the library.

Citation

In published works please cite this as

C. Schenck and D. Fox, "SPNets: Differentiable Fluid Dynamics for Deep Neural Networks," in Proceedings of the Second Conference on Robot Learning (CoRL), Zurich, Switzerland, 2018.

@inproceedings{spnets2018,
  title={SPNets: Differentiable Fluid Dynamics for Deep Neural Networks},
  author={Schenck, C. and Fox, D.},
  booktitle={Proceedings of the Second Conference on Robot Learning (CoRL)},
  year={2018},
  address={Zurich, Switzerland}
}