All Projects → hyperplane-lab → Generative 3d Part Assembly

hyperplane-lab / Generative 3d Part Assembly

Generative 3D Part Assembly via Dynamic Graph Learning, NeurIPS 2020

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Generative 3d Part Assembly

2d Unity Experiments
A collection of visual Unity experiments with latest packages (URP, Shader Graph, Cinemachine, etc).
Stars: ✭ 107 (-13.01%)
Mutual labels:  graphics
Skiasharp.extended
SkiaSharp is a cross-platform, comprehensive 2D graphics API for all .NET platforms. And, here is where you will find all sorts of extras that you can use with it.
Stars: ✭ 118 (-4.07%)
Mutual labels:  graphics
Veldrid
A low-level, portable graphics library for .NET.
Stars: ✭ 1,784 (+1350.41%)
Mutual labels:  graphics
Spittoon
🖼 Sequential-art comic-strip generator written in Ruby which uses RMagick (2005)
Stars: ✭ 109 (-11.38%)
Mutual labels:  graphics
Generative Evaluation Prdc
Code base for the precision, recall, density, and coverage metrics for generative models. ICML 2020.
Stars: ✭ 117 (-4.88%)
Mutual labels:  generative-model
Microcharts
This project is just simple drawing on top of the awesome SkiaSharp library. The purpose is not to have an heavily customizable charting library. If you want so, simply fork the code, since all of this is fairly simple. Their is no interaction, nor animation at the moment.
Stars: ✭ 1,653 (+1243.9%)
Mutual labels:  graphics
Vulkan Samples
One stop solution for all Vulkan samples
Stars: ✭ 2,009 (+1533.33%)
Mutual labels:  graphics
Pcxeffects3
Unity VFX with point cloud
Stars: ✭ 121 (-1.63%)
Mutual labels:  graphics
Ocamlverse.github.io
Documentation of everything relevant in the OCaml world
Stars: ✭ 117 (-4.88%)
Mutual labels:  graphics
Klayge
KlayGE is a cross-platform open source game engine with plugin-based architecture.
Stars: ✭ 1,646 (+1238.21%)
Mutual labels:  graphics
Bgrabitmap
📜 BGRABitmap graphics library made with Lazarus (Free Pascal).
Stars: ✭ 112 (-8.94%)
Mutual labels:  graphics
Speculid
Easily Manage Graphics in Xcode Projects
Stars: ✭ 115 (-6.5%)
Mutual labels:  graphics
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (-4.88%)
Mutual labels:  graphics
Paysage
Unsupervised learning and generative models in python/pytorch.
Stars: ✭ 109 (-11.38%)
Mutual labels:  generative-model
Net2net
Network-to-Network Translation with Conditional Invertible Neural Networks
Stars: ✭ 120 (-2.44%)
Mutual labels:  generative-model
Psgan
Periodic Spatial Generative Adversarial Networks
Stars: ✭ 108 (-12.2%)
Mutual labels:  generative-model
Img2ktx
Converts common image formats (PNG, JPG, etc.) to GPU-native compressed (BCn, ETC, ASTC) in KTX containers.
Stars: ✭ 117 (-4.88%)
Mutual labels:  graphics
Scgen
Single cell perturbation prediction
Stars: ✭ 122 (-0.81%)
Mutual labels:  generative-model
Cube2sphere
Python script to map 6 cube (cubemap, skybox) faces into an equirectangular (cylindrical projection, skysphere) map.
Stars: ✭ 120 (-2.44%)
Mutual labels:  graphics
Torch Gqn
PyTorch Implementation of Generative Query Network
Stars: ✭ 118 (-4.07%)
Mutual labels:  generative-model

Generative 3D Part Assembly via Dynamic Graph Learning

This is the implementation of NeurIPS 2020 paper "Generative 3D Part Assembly via Dynamic Graph Learning" created by Jialei Huang*, Guanqi Zhan*, Qingnan Fan, Kaichun Mo, Lin Shao, Baoquan Chen, Leonidas Guibas and Hao Dong.

image1

The proposed dynamic graph learning framework. The iterative graph neural network backbone takes a set of part point clouds as inputs and conducts 5 iterations of graph message-passing for coarse-to-fine part assembly refinements. The graph dynamics is encoded into two folds, (a) reasoning the part relation (graph structure) from the part pose estimation, which in turn also evolves from the updated part relations, and (b) alternatively updating the node set by aggregating all the geometrically-equivalent parts (the red and purple nodes), e.g. two chair arms, into a single node (the yellow node) to perform graph learning on a sparse node set for even time steps, and unpooling these nodes to the dense node set for odd time steps. Note the semi-transparent nodes and edges are not included in graph learning of certain time steps.

File Structure

This repository provides data and code as follows.

    data/                       # contains PartNet data
        partnet_dataset/		# you need this dataset only if you  want to remake the prepared data
    prepare_data/				# contains prepared data you need in our exps 
    							# and codes to generate data
    	Chair.test.npy			# test data list for Chair (please download the .npy files using the link below)
    	Chair.val.npy			# val data list for Chair
    	Chair.train.npy 		# train data list for Chair
    	...
        prepare_shape.py				    # prepared data
    	prepare_contact_points.py			# prepared data for contact points
    	
    exps/
    	utils/					# something useful
    	dynamic_graph_learning/	# our experiments code
    		logs/				# contains checkpoints and tensorboard file
    		models/				# contains model file in our experiments
    		scripts/			# scrpits to train or test
    		data_dynamic.py		# code to load data
    		test_dynamic.py  	# code to test
    		train_dynamic.py  	# code to train
    		utils.py
    environment.yaml			# environments file for conda
    		

This code has been tested on Ubuntu 16.04 with Cuda 10.0.130, GCC 7.5.0, Python 3.7.6 and PyTorch 1.1.0.

Download the pre-processed data for the .npy data files in file prepare_data/

Dependencies

Please run

    conda env create -f environment.yaml
    . activate PartAssembly
    cd exps/utils/cd
    python setup.py build

to install the dependencies.

Quick Start

Download pretrained models and unzip under the root directory.

Train the model

Simply run

    cd exps/dynamic_graph_learning/scripts/
    ./train_dynamic.sh

Test the model

modify the path of the model in the test_dynamic.sh file

run

    cd exps/dynamic_graph_learning/scripts/
    ./test_dynamic.sh

Questions

Please post issues for questions and more helps on this Github repo page. We encourage using Github issues instead of sending us emails since your questions may benefit others.

Maintainers

@Championchess @JialeiHuang

Citation

@InProceedings{HuangZhan2020PartAssembly,
    author = {Huang, Jialei and Zhan, Guanqi and Fan, Qingnan and Mo, Kaichun and Shao, Lin and Chen, Baoquan and Guibas, Leonidas and Dong, Hao},
    title = {Generative 3D Part Assembly via Dynamic Graph Learning},
    booktitle = {The IEEE Conference on Neural Information Processing Systems (NeurIPS)},
    year = {2020}
}

License

MIT License

Todos

Please request in Github Issue for more code to release.

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].