Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: mdpi.com -
✓Committers with academic emails
2 of 8 committers (25.0%) from academic institutions -
✓Institutional organization owner
Organization prbonn has institutional domain (www.ipb.uni-bonn.de) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
C++/Python Sparse Volumetric TSDF Fusion
Basic Info
Statistics
- Stars: 573
- Watchers: 9
- Forks: 61
- Open Issues: 5
- Releases: 2
Topics
Metadata Files
README.md
VDBFusion: Flexible and Efficient TSDF Integration

This is a small utility library that implements the VDBFusion algorithm, similar to TSDF-based reconstruction pipelines but using a different data-structure (VDB).
Installation
Take a seat and relax, you only need to:
shell
pip install vdbfusion
If you plan to use our C++ API then you should build this project from source. More details in the Installation instructions.
The ROS-1 C++ wrapper for this library is available at https://github.com/PRBonn/vdbfusion_ros
Usage
The code shown below is not intended to be copy pasted but rather be a spiritual guide for developers. If you really want to give this library a try you should consider checking the standalone Python, Notebooks, and C++ examples.
Data loading
NOTE: This step is not mandatory. Our API only expects points and poses but this is the easiest way to deal with 3D data.
| Python | C++ |
| ```python class Dataset: def __init__(self, *args, **kwargs): # Initialize your dataset here .. def __len__(self) -> int: return len(self.n_scans) def __getitem__(self, idx: int): # Returns a PointCloud(np.array(N, 3)) # and sensor origin(Eigen::Vector3d) # in the global coordinate frame. return points, origin ``` |
```c++
class Dataset {
// Initialize your dataset here ..
Dataset(...);
// Return length of the dataset
std::size_t size() const { return n_scans_; }
// Returns a Cloud(std::vector |
TSDF Fusion pipeline
| Python | C++ |
| ```python import vdbfusion vdb_volume = vdbfusion.VDBVolume(voxel_size, sdf_trunc, space_carving dataset = Dataset(...) for scan, origin in dataset: vdb_volume.integrate(scan, origin) ``` | ```cpp #include "vdbfusion/VDBVolume.h" vdb_fusion::VDBVolume vdb_volume(voxel_size, sdf_trunc, space_carving); const auto dataset = Dataset(...); for (const auto& [scan, origin] : iterable(dataset)) { vdb_volume.Integrate(scan, origin); } ``` |
Visualization
For visualization you can use any 3D library you like. For this example we are going to be using Open3D. If you are using the Python API make sure to pip install open3d before trying this snippet.
| Python | C++ |
| ```python import open3d as o3d # Extract triangle mesh (numpy arrays) vert, tri = vdb_volume.extract_triangle_mesh() # Visualize the results mesh = o3d.geometry.TriangleMesh( o3d.utility.Vector3dVector(vert), o3d.utility.Vector3iVector(tri), ) mesh.compute_vertex_normals() o3d.visualization.draw_geometries([mesh]) ``` |
```cpp
#include |
LICENSE
The LICENSE can be found at the root of this repository. It only applies to the code of VDBFusion but not to its 3rdparty dependencies. Please make sure to check the licenses in there before using any form of this code.
Credits
I would like to thank the Open3D and OpenVDB authors and contributors for making their implementations open source which inspired, helped and guided the implementation of the VDBFusion library.
Citation
If you use this library for any academic work, please cite the original paper.
bibtex
@article{vizzo2022sensors,
author = {Vizzo, Ignacio and Guadagnino, Tiziano and Behley, Jens and Stachniss, Cyrill},
title = {VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data},
journal = {Sensors},
volume = {22},
year = {2022},
number = {3},
article-number = {1296},
url = {https://www.mdpi.com/1424-8220/22/3/1296},
issn = {1424-8220},
doi = {10.3390/s22031296}
}
Owner
- Name: Photogrammetry & Robotics Bonn
- Login: PRBonn
- Kind: organization
- Email: cyrill.stachniss@igg.uni-bonn.de
- Location: Bonn
- Website: www.ipb.uni-bonn.de
- Repositories: 41
- Profile: https://github.com/PRBonn
Photogrammetry & Robotics Lab at the University of Bonn
Citation (CITATION.cff)
cff-version: 1.2.0
preferred-citation:
title: "VDBFusion: Flexible and Efficient TSDF Integration of Range Sensor Data"
doi: "10.3390/s22031296"
year: "2022"
type: article
journal: "Sensors"
url: https://www.mdpi.com/1424-8220/22/3/1296
authors:
- family-names: Vizzo
given-names: Ignacio
- family-names: Guadagnino
given-names: Tiziano
- family-names: Behley
given-names: Jens
- family-names: Stachniss
given-names: Cyrill
GitHub Events
Total
- Issues event: 8
- Watch event: 80
- Issue comment event: 10
- Push event: 1
- Pull request event: 1
- Fork event: 8
Last Year
- Issues event: 8
- Watch event: 80
- Issue comment event: 10
- Push event: 1
- Pull request event: 1
- Fork event: 8
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ignacio Vizzo | i****o@g****m | 15 |
| Saurabh Gupta | s****2@g****m | 4 |
| Sumanth Nagulavancha | 8****7 | 2 |
| luarzou | s****o@u****e | 1 |
| Wei Zhang | z****5@g****m | 1 |
| SamThomas | s****l@g****m | 1 |
| Jan Kuhlmann | 3****E | 1 |
| Benedikt Mersch | m****h@i****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 35
- Total pull requests: 18
- Average time to close issues: about 1 month
- Average time to close pull requests: about 1 month
- Total issue authors: 30
- Total pull request authors: 10
- Average comments per issue: 2.89
- Average comments per pull request: 2.11
- Merged pull requests: 11
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 5
- Pull requests: 2
- Average time to close issues: about 2 months
- Average time to close pull requests: 1 day
- Issue authors: 5
- Pull request authors: 1
- Average comments per issue: 0.6
- Average comments per pull request: 1.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- qpc001 (5)
- Willyzw (2)
- lin-name (1)
- Rockarel (1)
- MohamedEllaithy42 (1)
- YM5149 (1)
- JunyuanDeng (1)
- SunshineWYC (1)
- changyuan79 (1)
- swarmt (1)
- maulanaazhari (1)
- ignotuspeverel (1)
- zang09 (1)
- waveleaf27 (1)
- kuwan2e (1)
Pull Request Authors
- saurabh1002 (6)
- swarmt (3)
- sumanthrao1997 (3)
- borongyuan (2)
- M2-TE (2)
- cosama (2)
- mehermvr (2)
- luarzou (1)
- Willyzw (1)
- anja-sheppard (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 797 last-month
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 5
- Total maintainers: 1
pypi.org: vdbfusion
3D Volumetric Surface Reconstruction using the VDB data structure
- Documentation: https://vdbfusion.readthedocs.io/
- License: MIT License
-
Latest release: 0.1.6
published almost 4 years ago
Rankings
Maintainers (1)
Dependencies
- ubuntu 20.04 build
- ubuntu 20.04 build
- gitlab.ipb.uni-bonn.de 4567/ipb-team/ipb-tools/vdbfusion
- gitlab.ipb.uni-bonn.de 4567/ipb-team/ipb-tools/vdbfusion/pip_builder
- pytest * development
- PyYAML *
- argh *
- diskcache >=5.3.0
- easydict *
- natsort *
- numpy *
- open3d *
- pandas *
- scipy *
- tqdm *
- trimesh *
- vdbfusion *
- numpy *