Add more useful basic algorithms #36
Copy link
Copy link
Open
Labels
area:algorithmArea: mesh algorithmsArea: mesh algorithmscategory:new-featureCategory: New featureCategory: New feature
Description
The algo module is sadly empty right now. It should be filled with lots of standard algorithms, maybe just the easy ones for now. Implementing a sqrt(3) takes some time, but there surely is a lot of low hanging fruit that's quick to implement and useful.
- Visitors: BFS, DFS
- ...
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:algorithmArea: mesh algorithmsArea: mesh algorithmscategory:new-featureCategory: New featureCategory: New feature
Activity
stargazing-dino commentedon Jun 29, 2023
Hi! After reading through a little of this library I'm really interested in trying my hand at implementing a basic algorithm (probably not the graph algorithms) with some guidance of course. Let me know if you'd be cool with that :)
I'd probably just try porting something from here to this lib.
LukasKalbertodt commentedon Jul 2, 2023
Hi and thanks for your interest in working on this! Sure, go ahead and try implementing some. If you have any questions feel free to write me a mail (see profile). And if you're just starting out it would probably make sense to already send a PR for the first algorithm so that I can quickly check if everything looks good, before you start tackling something larger.
Two notes about the link you posted:
stargazing-dino commentedon Jul 2, 2023
Yeah, after I commented that, I knew there might be misunderstanding concerning intent. I don't mean to use the link I shared in any way other than as a good point of reference for the types of algorithms we should be capable of doing. Not necessarily their implementations or anything beyond that. If there was a good host of mesh algorithms names in one place, I would've posted that instead. So yes, I agree that these two works and their licenses should not be mixed haphazardly.
But yes, I'll gladly start with some simple PRs. I have yet to read through the older code you removed before the release so I'll get to that this week and just continue to understand stuff. I'll message you directly if I fail to understand some things. Thanks for the helpful advice!
virtualritz commentedon Jan 18, 2025
I think for something like
lox(orplexus, on that note) to get adoption it needs to come with a "standard library" of high(er) level operations (as a separate crate or feature-gated module). Think stuff like extrude, bevel, inset, etc.With 'adoption' I mean that the number of dependents on
crates.iois > zero (which it has been for years, in case ofplexus, e.g.). Or at least there should be some projects, even if not published oncrates.ioout there that use it.Last time I checked I couldn't find any for
plexuson GH or GL.How this makes all the difference you can see from something like
libfive(or its re-incarnation in Rust,fidgetwhich does not have it yet but has it as a goal). I would thinklibfiveto be one of the most used OSS implicit surface libs in C/C++ land, for this reason (shipping with a standard lib, that is).