linebender / linebender/spline

Is it possible to get a lossless (or even lossy) upgrade of a Spiro spline to a Hyperbezier?

Open
#25 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
128
Forks
9
PR merge metrics
No merged PRs in 30d

Description

Now that I have implemented https://github.com/MFEK/spiro.rlib, I am very curious if it's possible to _upgrade_ my Spiros to the superior Hyperbezier.

I have a lot of Spiros, that's why I maintain it.

In https://github.com/raphlinus/raphlinus.github.io/issues/40 @raphlinus wrote:

> Introduction: hyperbezier is a synthesis of three curves: cubic bezier, euler spiral, and elastica. Tension is a central concept.

This is very similar to how Spiro works, if I understood the thesis right. So really perhaps hyperbezier is "spiro v2", but perhaps that's ignorant of the maths of it all.

Is there a way to upgrade Spiros, Raph?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing spiro.rlib implementation and the linked hyperbezier discussion in raphlinus/raphlinus.github.io#40. Compare the curve models and representations to determine whether Spiro data can be converted losslessly or approximately. Done means documenting a justified conversion approach, limitations, and any required design changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.