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_histories → shafts; 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