All Projects → yifita → Dss

yifita / Dss

Differentiable Surface Splatting

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Dss

geometric adv
Geometric Adversarial Attacks and Defenses on 3D Point Clouds (3DV 2021)
Stars: ✭ 20 (-88.57%)
Mutual labels:  point-cloud, geometry-processing
Samplenet
Differentiable Point Cloud Sampling (CVPR 2020 Oral)
Stars: ✭ 212 (+21.14%)
Mutual labels:  point-cloud, geometry-processing
3dmatch Toolbox
3DMatch - a 3D ConvNet-based local geometric descriptor for aligning 3D meshes and point clouds.
Stars: ✭ 571 (+226.29%)
Mutual labels:  point-cloud, geometry-processing
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+1514.29%)
Mutual labels:  point-cloud, geometry-processing
Pointnet
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Stars: ✭ 3,517 (+1909.71%)
Mutual labels:  point-cloud, geometry-processing
Easy3d
A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
Stars: ✭ 383 (+118.86%)
Mutual labels:  rendering, point-cloud
Learning to sample
A learned sampling approach for point clouds (CVPR 2019)
Stars: ✭ 120 (-31.43%)
Mutual labels:  point-cloud, geometry-processing
React Tv
[ Unmaintained due to raphamorim/react-ape ] React Renderer for low memory applications
Stars: ✭ 1,941 (+1009.14%)
Mutual labels:  rendering
Elm 3d Scene
A high-level 3D rendering engine for Elm, with support for lighting, shadows, and realistic materials.
Stars: ✭ 167 (-4.57%)
Mutual labels:  rendering
Pointasnl
PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling (CVPR 2020)
Stars: ✭ 159 (-9.14%)
Mutual labels:  point-cloud
Tangram
WebGL map rendering engine for creative cartography
Stars: ✭ 1,964 (+1022.29%)
Mutual labels:  rendering
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-8%)
Mutual labels:  rendering
Matgeom
Matlab geometry toolbox for 2D/3D geometric computing
Stars: ✭ 168 (-4%)
Mutual labels:  geometry-processing
Pangolin
Python binding of 3D visualization library Pangolin
Stars: ✭ 157 (-10.29%)
Mutual labels:  point-cloud
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+1086.86%)
Mutual labels:  rendering
Practical Path Guiding
Implementation of the research paper "Practical Path Guiding for Efficient Light-Transport Simulation" + improvements
Stars: ✭ 157 (-10.29%)
Mutual labels:  rendering
Dbnet
DBNet: A Large-Scale Dataset for Driving Behavior Learning, CVPR 2018
Stars: ✭ 172 (-1.71%)
Mutual labels:  point-cloud
Semantic3dnet
Point cloud semantic segmentation via Deep 3D Convolutional Neural Network
Stars: ✭ 170 (-2.86%)
Mutual labels:  point-cloud
Dagon
3D game engine for D
Stars: ✭ 165 (-5.71%)
Mutual labels:  rendering
Rust Doom
A Doom Renderer written in Rust.
Stars: ✭ 2,048 (+1070.29%)
Mutual labels:  rendering

DSS: Differentiable Surface Splatting

Paper PDF Project page

bunny

code for paper Differentiable Surface Splatting for Point-based Geometry Processing

+ Mar 2021: major updates tag 2.0.
+ > Now supports simultaneous normal and point position updates.
+ > Unified learning rate using Adam optimizer.
+ > Highly optimized cuda operations
+ > Shares pytorch3d structure

Installation

  1. install prequisitories. Our code uses python3.8, pytorch 1.6.1, pytorch3d. the installation instruction requires the latest anaconda.
# install cuda, cudnn, nccl from nvidia
# we tested with cuda 10.2 and pytorch 1.6.0
# update conda
conda update -n base -c defaults conda
# install requirements
conda create -n pytorch3d python=3.8
conda config --add channels pytorch
conda config --add channels conda-forge
conda activate pytorch3d
conda install -c pytorch pytorch=1.6.0 torchvision cudatoolkit=10.2
conda install -c conda-forge -c fvcore -c iopath fvcore iopath
conda install -c bottler nvidiacub
conda install pytorch3d -c pytorch3d
conda install --file requirements.txt
pip install "git+https://github.com/mmolero/pypoisson.git"
  1. clone and compile
git clone --recursive https://github.com/yifita/DSS.git
cd dss
# compile external dependencies
cd external/prefix
python setup.py install
cd ../FRNN
python setup.py install
cd ../torch-batch-svd
python setup.py install
# compile library
cd ../..
python setup.py develop

Demos

inverse rendering - shape deformation

# create mvr images using intrinsics defined in the script
python scripts/create_mvr_data_from_mesh.py --points example_data/mesh/yoga6.ply --output example_data/images --num_cameras 128 --image-size 512 --tri_color_light --point_lights --has_specular

python train_mvr.py --config configs/dss.yml

Check the optimization process in tensorboard.

tensorboard --logdir=exp/dss_proj

denoising (TBA)

We will add back this function ASAP.

denoise_1noise

video

accompanying video

cite

Please cite us if you find the code useful!

@article{Yifan:DSS:2019,
author = {Yifan, Wang and
          Serena, Felice and
          Wu, Shihao and
          {\"{O}}ztireli, Cengiz and
         Sorkine{-}Hornung, Olga},
title = {Differentiable Surface Splatting for Point-based Geometry Processing},
journal = {ACM Transactions on Graphics (proceedings of ACM SIGGRAPH ASIA)},
volume = {38},
number = {6},
year = {2019},
}

Acknowledgement

We would like to thank Federico Danieli for the insightful discussion, Phillipp Herholz for the timely feedack, Romann Weber for the video voice-over and Derek Liu for the help during the rebuttal. This work was supported in part by gifts from Adobe, Facebook and Snap, Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].