hexasphere

Subdividing triangle meshes.

https://github.com/optimisticpeach/hexasphere

Science Score: 54.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
  • Academic publication links
  • Committers with academic emails
    1 of 17 committers (5.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Subdividing triangle meshes.

Basic Info
  • Host: GitHub
  • Owner: OptimisticPeach
  • License: apache-2.0
  • Language: Rust
  • Default Branch: master
  • Homepage:
  • Size: 146 KB
Statistics
  • Stars: 67
  • Watchers: 6
  • Forks: 18
  • Open Issues: 4
  • Releases: 1
Created over 5 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

readme.md

hexasphere

Library for subdividing shapes, such as an icosahedron. This provides abstractions for almost anything to be possible, however there are many predetermined shapes.

In the case of the icosphere:

Geometry:

This starts off with an icoashedron, and then proceeds to subdivide it. The subdivided points form the dual to a goldberg polyhedron. In essence, each point on this sphere is either a hexagon or a pentagon.

Interpolation:

Points are interpolated using the geometric slerp function to preserve their accuracy.


Features

  • Base shapes
    • Icosahedron
    • Tetrahedron
    • Triangle
    • Square
    • Cube
  • Interpolation functions
    • Spherical interpolation
    • Linear interpolation
    • Normalized linear interpolation
  • Basic optimizations for p == 0.5 in interpolation.
  • An adjacency (neighbour) map which can be generated from the indices that this library creates.

A few more optimizations are coming, along with more options for generation:

  • Remove nested triangle layers by placing them into their own Vec.
  • Allow interpolation functions to have access to state. (This would permit certain things such as sampling noise as part of the generation).

no_std support

no_std support can be enabled by compiling with --no-default-features to disable std support and --features libm for math functions that are only defined in std. For example:

toml [dependencies] hexasphere = { version = "15", default-features = false, features = ["libm"] }

To support both std and no_std builds in project, you can use the following in your Cargo.toml:

```toml [features] default = ["std"]

std = ["hexasphere/std"] libm = ["hexasphere/libm"]

[dependencies] hexasphere = { version = "15", default-features = false } ```

License

Hexasphere is distributed under the terms of either the MIT license, or the Apache License (Version 2.0) at the user's choice.

See the files named LICENSE-MIT and LICENSE-APACHE2 relative to the root directory of this project for more details.

Owner

  • Name: Patrik Buhring
  • Login: OptimisticPeach
  • Kind: user
  • Location: Waterloo, ON

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Buhring Espinoza"
  given-names: "Patrik"
  orcid: "https://orcid.org/0009-0001-6768-0958"
title: "Hexasphere: Rust sphere generation"
version: 14.0.0
doi: 10.5281/zenodo.12189017 
date-released: 2024-06-20
url: "https://crates.io/crates/hexasphere"

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Watch event: 7
  • Issue comment event: 17
  • Push event: 6
  • Pull request event: 9
  • Fork event: 6
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Watch event: 7
  • Issue comment event: 17
  • Push event: 6
  • Pull request event: 9
  • Fork event: 6

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 122
  • Total Committers: 17
  • Avg Commits per committer: 7.176
  • Development Distribution Score (DDS): 0.295
Past Year
  • Commits: 36
  • Committers: 7
  • Avg Commits per committer: 5.143
  • Development Distribution Score (DDS): 0.528
Top Committers
Name Email Commits
Patrik Buhring p****g@g****m 86
CrazyboyQCD y****8@g****m 6
Bruce Mitchener b****r@g****m 5
kirk k****h@g****m 4
Kevin Reid k****d@s****g 3
Mikael Lund m****d@m****m 3
William Batista b****y@p****h 3
François m****f@g****m 3
Downtime 4****b 1
Edgar Geier e****r@r****e 1
Jakob Hellermann j****n@p****m 1
Joshua J. Bouw d****v@j****m 1
Mossa c****a@g****m 1
devil-ira j****e@g****m 1
james7132 c****t@j****m 1
mnmaita 4****a 1
targrub t****b@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 10
  • Total pull requests: 32
  • Average time to close issues: 5 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 8
  • Total pull request authors: 17
  • Average comments per issue: 2.7
  • Average comments per pull request: 2.22
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 11
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.73
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • OptimisticPeach (3)
  • kpreid (1)
  • francesco-cattoglio (1)
  • virtualritz (1)
  • kvark (1)
  • mlund (1)
  • VirgileHenry (1)
  • joshuajbouw (1)
Pull Request Authors
  • mlund (6)
  • kpreid (6)
  • waywardmonkeys (4)
  • CrazyboyQCD (4)
  • mockersf (3)
  • knickish (2)
  • billyb2 (2)
  • VirgileHenry (2)
  • irate-devil (2)
  • mnmaita (2)
  • targrub (2)
  • Cupnfish (1)
  • jakobhellermann (1)
  • james7132 (1)
  • geieredgar (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • cargo 3,851,907 total
  • Total docker downloads: 23,282,367
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 2,002
    (may contain duplicates)
  • Total versions: 45
  • Total maintainers: 1
crates.io: hexasphere

A library to evenly tile hexagons on a sphere.

  • Versions: 42
  • Dependent Packages: 3
  • Dependent Repositories: 2,002
  • Downloads: 3,847,736 Total
  • Docker Downloads: 23,282,367
Rankings
Dependent repos count: 0.9%
Downloads: 1.8%
Docker downloads count: 3.3%
Average: 8.1%
Dependent packages count: 9.2%
Forks count: 16.2%
Stargazers count: 17.3%
Maintainers (1)
Last synced: 6 months ago
crates.io: bevy_hexasphere

A trimmed down and generic version of Hexasphere for bevy.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4,171 Total
Rankings
Forks count: 17.7%
Stargazers count: 17.9%
Dependent repos count: 29.3%
Average: 30.9%
Dependent packages count: 33.8%
Downloads: 56.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

Cargo.toml cargo