Flux3D

3D computer vision library in Julia

https://github.com/fluxml/flux3d.jl

Science Score: 41.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
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 10 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary

Keywords

3d-computer-vision 3d-reconstruction 3d-vision-library julia machine-learning point-cloud triangle-mesh

Keywords from Contributors

pde flux automatic-differentiation control-flow gradient julia-compiler differential-equations sciml exoplanets interpretability
Last synced: 6 months ago · JSON representation ·

Repository

3D computer vision library in Julia

Basic Info
Statistics
  • Stars: 105
  • Watchers: 11
  • Forks: 14
  • Open Issues: 14
  • Releases: 8
Topics
3d-computer-vision 3d-reconstruction 3d-vision-library julia machine-learning point-cloud triangle-mesh
Created almost 6 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Flux3D.jl


Flux3D.jl is a 3D vision library, written completely in Julia. This package utilizes Flux.jl and Zygote.jl as its building blocks for training 3D vision models and for supporting differentiation. This package also have support of CUDA GPU acceleration with CUDA.jl.The primary motivation for this library is to provide:

  • Batched Data structure for 3D data like PointCloud, TriMesh and VoxelGrid for storing and computation.
  • Transforms and general utilities for processing 3D structures.
  • Metrics for defining loss objectives and predefined 3D models.
  • Easy access to loading and pre-processing standard 3D datasets.
  • Visualization utilities for PointCloud, TriMesh and VoxelGrid.
  • Inter-Conversion between different 3D structures.

Any suggestions, issues and pull requests are most welcome.

Installation

This package is stable enough for use in 3D Machine Learning Research. It has been registered. To install the latest release, type the following in the Julia 1.6+ prompt.

julia julia> ] (v1.6) pkg> add Flux3D

To install the master branch type the following

julia julia> ] (v1.6) pkg> add Flux3D#master

Examples

PointNet Classfication DGCNN Classification Supervised 3D reconstruction

Usage Examples

```julia

julia> using Flux3D

julia> m = load_trimesh("teapot.obj") |> gpu TriMesh{Float32, UInt32, CUDA.CuArray} Structure: Batch size: 1 Max verts: 1202 Max faces: 2256 offset: -1 Storage type: CUDA.CuArray

julia> laplacian_loss(m) 0.05888283f0

julia> computevertsnormals_packed(m) 3×1202 CUDA.CuArray{Float32,2,Nothing}: 0.00974202 0.00940375 0.0171322 … 0.841262 0.777704 0.812894 -0.999953 -0.999953 -0.999848 -0.508064 -0.607522 -0.557358 6.14616f-6 0.00249814 -0.00317568 -0.184795 -0.161533 -0.168985

julia> new_m = Flux3D.normalize(m) TriMesh{Float32, UInt32, CUDA.CuArray} Structure: Batch size: 1 Max verts: 1202 Max faces: 2256 offset: -1 Storage type: CUDA.CuArray

julia> savetrimesh("normalizedteapot.obj", new_m) ```

Citation

If you use this software as a part of your research or teaching, please cite this GitHub repository. For convenience, we have also provided the BibTeX entry in the form of CITATION.bib file.

@misc{Suthar2020, author = {Nirmal Suthar, Avik Pal, Dhairya Gandhi}, title = {Flux3D: A Framework for 3D Deep Learning in Julia}, year = {2020}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/FluxML/Flux3D.jl}}, }

Benchmarks

PointCloud Transforms (Flux3D.jl and Kaolin)

Benchmark plot for PointCloud transforms

TriMesh Transforms (Flux3D.jl and Kaolin)

Benchmark plot for TriMesh transforms

Metrics (Flux3D.jl and Kaolin)

Benchmark plot for Metrics

Current Roadmap

  • [X] Add Batched Structure for PointCloud and TriMesh.
  • [X] Add Transforms/Metrics for PointCloud and TriMesh.
  • [X] GPU Support using CUDA.jl
  • [X] Add Dataset support for ModelNet10/40.
  • [X] Add Batched 3D structure and Transform for Voxels.
  • [X] Interconversion between different 3D structures like PointCloud, Voxel and TriMesh.
  • [ ] Add more metrics for TriMesh (like normalconsistency and cloudmesh_distance)

Owner

  • Name: FluxML
  • Login: FluxML
  • Kind: organization

The Elegant Machine Learning Stack

Citation (CITATION.bib)

@misc{Suthar2020,
    author = {Nirmal Suthar, Avik Pal, Dhairya Gandhi},
    title = {Flux3D: A Framework for 3D Deep Learning in Julia},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/FluxML/Flux3D.jl}},
}

GitHub Events

Total
  • Watch event: 5
Last Year
  • Watch event: 5

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 254
  • Total Committers: 10
  • Avg Commits per committer: 25.4
  • Development Distribution Score (DDS): 0.236
Past Year
  • Commits: 3
  • Committers: 2
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
nirmal n****s@i****n 194
github-actions[bot] 4****] 19
Avik Pal a****l@i****n 17
Satoshi Terasaki t****h@g****m 17
Avik Pal a****l@m****u 2
Nirmal n****l@M****l 1
CompatHelper Julia c****y@j****g 1
Vivek Gopalakrishnan v****g@m****u 1
Jay Sonawane 5****1 1
Ioannis Valasakis c****e@w****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 19
  • Total pull requests: 56
  • Average time to close issues: 7 days
  • Average time to close pull requests: 9 days
  • Total issue authors: 9
  • Total pull request authors: 8
  • Average comments per issue: 1.84
  • Average comments per pull request: 1.84
  • Merged pull requests: 44
  • Bot issues: 0
  • Bot pull requests: 33
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • avik-pal (9)
  • DhairyaLGandhi (3)
  • jenkspt (1)
  • iwasnothing (1)
  • nirmal-suthar (1)
  • terasakisatoshi (1)
  • margilc (1)
  • VLonghand (1)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (33)
  • nirmal-suthar (8)
  • avik-pal (6)
  • terasakisatoshi (5)
  • jay-sonawane (1)
  • wizofe (1)
  • eigenvivek (1)
  • vnegi10 (1)
Top Labels
Issue Labels
good first issue (1)
Pull Request Labels
formatting (13) automated pr (13) no changelog (13)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 7
juliahub.com: Flux3D

3D computer vision library in Julia

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 7.8%
Dependent repos count: 9.9%
Forks count: 11.7%
Average: 17.1%
Dependent packages count: 38.9%
Last synced: 6 months ago

Dependencies

.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/julia-uploadcodecov latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/format_pr.yml actions
  • actions/checkout v2 composite
  • peter-evans/create-pull-request v3 composite
.github/workflows/CompatHelper.yml actions