Changelog

All notable changes. Dates are UTC release dates.

v0.4.1

May 8, 2026 latest
  • Fixed GPU path crash on assemblies with <4 bodies when PyTorch batch dim collapsed to scalar
  • Fixed SimResult.n_revolutions being off by one timestep
  • export_svg() now accepts tooth_style dict for per-render CSS overrides
  • Improved error message when BevelPair receives two gears on the same shaft

v0.4.0

April 28, 2026

⚠ Breaking: shaft_historiesshafts; Assembly.add_bevel() removed; Python 3.10+ required.

  • GPU-accelerated RK4 via PyTorch (device="gpu"); falls back to CPU gracefully
  • Rewritten constraint API — jacobian() is now optional, auto-differentiated via JAX or finite difference
  • Per-gear backlash parameter on add_gear()
  • New exceptions: OverdeterminedError, UnderdeterminedError, TopologyError
  • Newton solver convergence messages include constraint name and residual norm

v0.3.2

February 3, 2026 stable LTS
  • Verlet integrator energy drift fix — was accumulating ~0.4% error per 1000 steps
  • PivotConstraint.fixed_angle parameter added
  • SVG export: show_contact_points option
  • Windows wheel for Python 3.12 added to PyPI

v0.3.0

November 11, 2025

⚠ Breaking: simulation core rewritten in Rust; simulate() return type changed to SimResult.

  • Rust extension via PyO3 — 8× speedup over NumPy baseline
  • Pre-allocated history buffers (no more list-of-dicts)
  • Adaptive RK4 with relative/absolute tolerance control
  • record_contacts flag for diagnostic contact force logging

v0.2.0

October 14, 2025
  • BeltDrive class for chain and belt transmissions
  • BevelPair for right-angle and arbitrary-angle bevel meshes
  • Structured exception hierarchy replacing bare RuntimeError
  • JSON timeseries export via result.export_json()

v0.1.3

August 22, 2025
  • History storage switched from list-of-dicts to pre-allocated arrays — 40× memory reduction
  • SVG animation uses animateTransform (no JavaScript) for better compatibility
  • Fixed pitch circle radius calculation for non-standard module values

v0.1.0

July 18, 2025
  • Initial release — spur gear assemblies, RK4 integrator, SVG export
  • PyPI wheel for Linux and macOS