|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to Qaws are documented here. |
| 4 | + |
| 5 | +## [1.0.0] - 2026-03-12 |
| 6 | + |
| 7 | +First public release. |
| 8 | + |
| 9 | +### Curve families (13) |
| 10 | + |
| 11 | +- Bezier (linear through arbitrary degree, 2D/3D) |
| 12 | +- Hermite (cubic, 2D/3D) |
| 13 | +- Catmull-Rom (uniform, chordal, centripetal parameterization, open/closed, 2D/3D) |
| 14 | +- B-Spline (arbitrary degree, uniform/custom knots, open/closed, 2D/3D) |
| 15 | +- NURBS (arbitrary degree, weighted, open/closed, 2D/3D) |
| 16 | +- Trajectory (time-keyed cubic, optional velocity/acceleration, open/closed, 2D/3D) |
| 17 | +- Yuksel C2 (Bezier, Circular, Elliptical, Hybrid modes, open/closed, 2D/3D) |
| 18 | +- Rational Bezier (weighted De Casteljau, 2D/3D) |
| 19 | +- Arc (circular/elliptical, multi-segment, 2D/3D) |
| 20 | +- Polynomial (monomial form, Horner evaluation, 2D/3D) |
| 21 | +- Clothoid (Euler spiral, linear curvature, 2D) |
| 22 | +- Subdivision (Chaikin, Lane-Riesenfeld 3/4, open/closed, 2D/3D) |
| 23 | +- Composite (heterogeneous multi-segment, 2D/3D) |
| 24 | + |
| 25 | +### Surface types (5) |
| 26 | + |
| 27 | +- Bezier patch (tensor product) |
| 28 | +- B-Spline surface |
| 29 | +- NURBS surface |
| 30 | +- Swept surface (profile along path) |
| 31 | +- Ruled surface (linear blend of two curves) |
| 32 | + |
| 33 | +### Evaluation |
| 34 | + |
| 35 | +- Position, D1, D2, D3 derivatives |
| 36 | +- Per-span evaluation |
| 37 | +- Batch evaluation (SIMD-accelerated: AVX2, SSE2, NEON) |
| 38 | +- Surface evaluation with partial derivatives and normals |
| 39 | + |
| 40 | +### Sampling |
| 41 | + |
| 42 | +- Uniform parameter sampling |
| 43 | +- Adaptive (error-tolerance based) |
| 44 | +- Curvature-weighted |
| 45 | +- Feature-preserving |
| 46 | +- Streaming (callback-based) |
| 47 | + |
| 48 | +### Traversal |
| 49 | + |
| 50 | +- Parameter, arc-length, and timed modes |
| 51 | +- Motion profiles: constant speed, constant acceleration, trapezoidal, S-curve, custom |
| 52 | +- 10 easing functions (quad, cubic, sine -- in/out/in-out) |
| 53 | +- Wrap modes: clamp, loop, ping-pong |
| 54 | +- Multi-curve traversal |
| 55 | + |
| 56 | +### Inspection |
| 57 | + |
| 58 | +- Arc length, bounding box, closest point |
| 59 | +- Tangent, normal, curvature, torsion, speed |
| 60 | +- Frenet frame (3D) |
| 61 | +- Inflection points, extrema |
| 62 | +- Winding number (2D) |
| 63 | +- Curvature comb (2D/3D) |
| 64 | +- Curve-curve intersection, self-intersection |
| 65 | + |
| 66 | +### Operations |
| 67 | + |
| 68 | +- Split at parameter |
| 69 | +- Join two curves |
| 70 | +- Offset / parallel curve (2D, with self-intersection cleanup) |
| 71 | +- Reverse |
| 72 | +- Arc-length reparameterization |
| 73 | + |
| 74 | +### Conversion |
| 75 | + |
| 76 | +- Hermite -> Bezier, Catmull-Rom -> Bezier |
| 77 | +- Bezier -> B-Spline, B-Spline -> NURBS |
| 78 | +- Degree elevation, degree reduction (Bezier) |
| 79 | + |
| 80 | +### Import / export |
| 81 | + |
| 82 | +- SVG path data export (exact for Bezier/Hermite/Catmull-Rom, approximate for others) |
| 83 | +- Polyline export (uniform / curvature-weighted, 2D/3D) |
| 84 | +- Polyline import as Catmull-Rom or Trajectory |
| 85 | +- B-spline fitting (least-squares) |
| 86 | + |
| 87 | +### Multi-backend |
| 88 | + |
| 89 | +- C (full runtime, SIMD batch eval, float/double) |
| 90 | +- HLSL (22 core eval functions, SM 5.0+) |
| 91 | +- GLSL (22 core eval functions, Vulkan/OpenGL) |
| 92 | +- Halide (22 core eval functions, symbolic IR) |
| 93 | +- Automatic backend detection via compiler macros |
| 94 | +- Prepare functions for CPU-to-GPU coefficient upload |
| 95 | + |
| 96 | +### Infrastructure |
| 97 | + |
| 98 | +- Zero dependencies (C11 standard library only) |
| 99 | +- Immutable, thread-safe curves and surfaces |
| 100 | +- Custom allocator support (`_ex` variants) |
| 101 | +- Stack-allocated inline curves (no malloc, degree <= 7) |
| 102 | +- CMake install rules, pkg-config, CMake config export |
| 103 | +- Sharpmake build system support |
| 104 | +- MIT license |
0 commit comments