Skip to content

Releases: GiorgioMedico/InterpolatePy

InterpolatePy v3.0.0 — C++ Port & Dual-Backend Architecture

21 Mar 13:54
a9b8fa1

Choose a tag to compare

What's New

InterpolatePy 3.0.0 is a major release that introduces a complete C++ reimplementation of the entire algorithm suite, accessible from Python through pybind11 bindings and
a transparent backend system.

C++ Library (interpolatecpp)

A standalone, header-based C++ library mirroring every Python algorithm:

  • Splines — Cubic splines (natural, clamped, acceleration-constrained), cubic smoothing splines with GCV
  • B-Splines — General, cubic, interpolating, approximating, and smoothing variants
  • Motion Profiles — Double-S (7-segment), trapezoidal, polynomial (cubic/quintic), parabolic linear blend
  • Quaternion Interpolation — SLERP, SQUAD C², logarithmic and modified-log schemes, quaternion splines
  • Path Planning — Linear/circular paths, linear trajectories, Frenet-Serret frame computation
  • C++20 Concepts — Compile-time interface contracts (Interpolatable, DifferentiableInterpolatable, MotionProfile)

Built with CMake, tested with Catch2 (16 test files), and shipped with 16 standalone examples.

Dual-Backend System

  • interpolatepy._backend detects whether the C++ module is available and selects the fastest implementation automatically
  • interpolatepy._adapters bridges C++ and Python APIs with zero user-facing changes
  • Pure-Python fallback is always available — no C++ compiler required to use the library

Protocol-Based Architecture

interpolatepy.protocols defines runtime-checkable structural typing contracts (InterpolatableProtocol, MotionProfileProtocol, QuaternionInterpolationProtocol) enabling
algorithm interchangeability regardless of backend.

Breaking Changes

  • Python 3.10 dropped — minimum is now 3.11
  • requirements.txt removed — all dependencies managed via pyproject.toml groups (test, dev, docs, all)
  • Public API reorganized — imports still work via interpolatepy, but internals restructured around the adapter layer

Documentation

  • New tutorials: Path Planning, Quaternion Interpolation
  • New Architecture guide explaining the dual-backend design
  • Updated API reference, installation, quickstart, and contributing guides

Infrastructure

  • GitHub Actions workflows modernized for pyproject.toml-based installs
  • _adapters subpackage correctly included in package discovery
  • Linter cleanup (removed stale noqa directives)

What's Changed

Full Changelog: v2.0.1...v3.0.0

v2.0.1

14 Aug 14:34
a0194fd

Choose a tag to compare

What's Changed

Full Changelog: v2.0.0...v2.0.1

v2.0.0

06 Aug 11:34
b558ea7

Choose a tag to compare

What's Changed

Full Changelog: v1.1.0...v2.0.0

v1.1.0

17 May 11:27
e82784d

Choose a tag to compare

Merge pull request #1 from GiorgioMedico/3.10+

3.10+

v1.0.3

31 Mar 20:16

Choose a tag to compare

doc

v1.0.2

26 Mar 17:46

Choose a tag to compare

v1.0.2

v1.0.1

26 Mar 17:06

Choose a tag to compare

First Release