kurbo

A Rust library for manipulating curves (by linebender)

Kurbo Alternatives

Similar projects and alternatives to kurbo

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better kurbo alternative or higher similarity.

kurbo reviews and mentions

Posts with mentions or reviews of kurbo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-25.
  • Voronoi Diagram and Delaunay Triangulation in O(nlog(n)) (2020)
    4 projects | news.ycombinator.com | 25 Oct 2023
    The numerical robustness thing gave me a chuckle (rotate 1 radian and pray to the geometry gods), especially as I've been spending a good fraction of my time dealing with that in fancy path rendering and stroking.

    One of the things I really want to work on in the next few months is a path intersection implementation that's robust by construction, backed up both by a convincing (if not formal) argument and tests crafted to shake out robustness issues. I have a bunch of ideas, largely motivated by the need to generalize well to curves - Shewchuk's work, cited elsethread, is impressive but I'm not smart enough to figure out how to make it work for arbitrary Béziers.

    There's an issue[277] to track the work, and that has pointers to some of the ideas. If anyone is interested in working with me on this, please get in touch. If successful, I think it'll result in a nice code base and also likely a publishable paper.

    [277]: https://github.com/linebender/kurbo/issues/277

  • Announcing Bezier-rs: computational geometry algorithms for Bézier paths (seeking code review and boolean ops help)
    3 projects | /r/rust | 31 Mar 2023
    I have some ideas on how to do boolean ops, some of which is written up in a blog post issue, and for which I have some code locally. In particular, the parabola estimate seems much more efficient than the usual fat line approach. I also have a sketch of quadratic/quadratic intersection in kurbo#230.
  • Bit Twiddling Hacks (2005)
    3 projects | news.ycombinator.com | 27 Oct 2022
    I love these kinds of things and use them in GPU programming, among other things. Things have changed in a variety of ways: population count and count-trailing-zeros are generally available as fast instructions now. Multiply is also now just as fast as other operations, so is not to be avoided.

    A couple examples. [1] computes the sum of the number of bytes used of four consecutive segments of a bezier path - each segment can be lineto, quadto, or curveto, can be the end of a path or not, and be i16 or f32. 4 tag bytes are packed into a 32 bit word, it computes all these, then sums them together.

    [2] linearizes a recursive subdivision into an iterative loop. The stack depth is represented as the number of zeros in a word, so pushing the stack is a left shift, and popping is a right shift. It turns out you want to pop multiple levels at once, and the number of levels is computed by countTrailingZeros. ([2] is experimental Rust code, but I will adapt this into a compute shader)

    [1]: https://github.com/linebender/piet-gpu/blob/main/piet-wgsl/s...

    [2]: https://github.com/linebender/kurbo/blob/euler/src/euler.rs#...

  • A Review of the Odin Programming Language
    2 projects | news.ycombinator.com | 11 Sep 2022
    That's a reasonable choice and I do agree it has nice properties, for example (a << b) << c is equal to a << (b + c) (unless that latter addition overflows), but it also does put you pretty firmly in the category of "not squeezing out every last cycle like you can in C." Usually that's one of the the things people expect in a tradeoff involving safety.

    Regarding "never," I am an adventurous programmer[1], so am fully willing to accept that I am the exception that proves the rule.

    On the more general point of UB for arithmetic overflow, I think we're on the same side: this is a pretty broken story in the way C has ended up, and one of the clear motivations for a cleaned up better-than-C language. I'm more interested in your thoughts on data races, where I suspect we have a substantive difference in perspective.

    [1]: https://github.com/linebender/kurbo/blob/de52170e084cf658a2a...

  • Kurbo: A Rust library for manipulating curves
    1 project | news.ycombinator.com | 24 Jun 2022
  • A note from our sponsor - SaaSHub
    www.saashub.com | 2 May 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic kurbo repo stats
5
643
7.8
about 1 month ago

linebender/kurbo is an open source project licensed under Apache License 2.0 which is an OSI approved license.

The primary programming language of kurbo is Rust.

Popular Comparisons


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com