Curveball
4 hours ago
- #Neverball
- #Rust
- #Curve Generator
- Curveball is a curve generator tool for Neverball, available as a web app or downloadable desktop app, written in Rust.
- It was created to generate complex curves not possible with the existing curve.c tool, which only produces circular arcs.
- Neverball levels consist of convex brushes defined by intersections of halfspaces, described using the Quake map format.
- Curveball uses the chull crate to compute convex hulls from points, simplifying brush generation from curve vertices.
- The key abstraction is extrusion: a 2D profile is copied along a path, with vertices processed via convex hull to form brushes.
- Orienting profiles along paths involves Frenet frames to handle rotation, with torsion considered to avoid issues.
- Curveball supports extrusion-based curves plus three special types: Curve Classic, Curve Slope, and Rayto, with some overlap in generation methods.
- The tool aims to streamline level creation for Neverball, allowing diverse curve shapes through profile and path combinations.