I’ve just released `elm-geometry`

1.0; it is effectively a new major version of the existing `opensolid/geometry`

package, but I’m hoping that the new name more effectively conveys that the package is really intended to be a great general-purpose geometry library for Elm (not tied to any particular product/brand or framework). The new release also comes with several new features and improvements:

- Polygon convex hull computation (thanks @gampleman!)

- Polygon triangulation (useful for WebGL rendering):

- Improved curve evaluation/sampling functions:

(Note that it’s also possible to get nice evenly-spaced points if desired, it’s just a bit more computationally expensive.)`pointsOnSpline = cubicSpline |> CubicSpline3d.pointsAt (ParameterValue.steps 24)`

- Streamlined, partial-application-friendly constructors such as

instead of`Vectord3d.withLength 3 Direction3d.y`

`Vector3d.with { length = 3, direction = Direction3d.y }`

- A new and very convenient way to construct circular arcs:
`cornerArc = Arc2d.from startPoint endPoint (degrees 90)`

- No more module prefixes;

is now simply`import OpenSolid.Point3d as Point3d exposing (Point3d)`

`import Point3d exposing (Point3d)`

And much more! Full release notes are here.

I’ve also updated and re-released `opensolid/linear-algebra-interop`

as `elm-geometry-linear-algebra-interop`

and `opensolid/svg`

as `elm-geometry-svg`

.

Any feedback, questions, comments are welcome either here, in Slack (**#geometry** or **@ianmackenzie**), or on GitHub. Many of the recent additions to `elm-geometry`

(polygon triangulation and convex hull, arc length parameterization of curves, improved bounding box overlap/separation checking) were in response to requests from members of the Elm community, so if there’s something missing that’s preventing you from using the package, let me know!