Changelog

All notable changes to MechanicsDSL are documented here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.2.1] - 2024-12-05

Fixed

  • Fixed AttributeError: 'Config' object has no attribute 'default_trail_length' in animator module

  • Fixed Unicode encoding issues on Windows console (emojis replaced with ASCII)

  • Fixed DSL parser handling of negative parameter values

Changed

  • Examples now use ASCII characters for Windows compatibility

  • Updated examples README with 30 tutorials in organized categories

[1.2.0] - 2024-XX-XX

Added

New Package Structure

  • mechanics_dsl.utils/ - Modular utilities package

    • logging.py - Centralized logging configuration

    • config.py - Configuration management and constants

    • caching.py - LRU cache implementation

    • profiling.py - Performance monitoring and timeouts

    • validation.py - Input validation functions

    • units.py - Physical units system

  • mechanics_dsl.core/ - Core compiler infrastructure

    • Reorganized compiler.py, parser.py, symbolic.py, solver.py

    • Updated imports for new package structure

  • mechanics_dsl.domains/ - Physics domain implementations

    • base.py - Abstract PhysicsDomain class

    • classical/ - Lagrangian, Hamiltonian, constraints, rigid body

    • fluids/ - SPH simulation, boundary conditions

  • mechanics_dsl.visualization/ - Modular visualization

    • animator.py - Animation classes

    • plotter.py - General plotting utilities

    • phase_space.py - Phase space and Poincaré sections

  • mechanics_dsl.analysis/ - Analysis tools

    • energy.py - Energy conservation analysis

    • stability.py - Fixed point and eigenvalue analysis

  • mechanics_dsl.codegen/ - Code generation backends

    • base.py - Abstract CodeGenerator class

    • python.py - Python/NumPy code generation

    • Improved C++ templates

  • mechanics_dsl.io/ - I/O utilities

    • serialization.py - JSON/pickle serialization

    • export.py - CSV and JSON exporters

Documentation

  • Complete rewrite with extensive API reference

  • 30 detailed tutorials covering various physics scenarios

  • DSL syntax reference with all commands

  • Advanced topics guide (performance, extending, architecture)

  • Code generation documentation (C++, Python, WASM, CUDA)

Changed

  • Reorganized package structure for better modularity

  • Improved backward compatibility with legacy imports

  • Enhanced error messages throughout

Fixed

  • Various import path issues

  • Profiling conflicts with nested decorators

Deprecated

  • Direct imports from mechanics_dsl.utils (monolithic) - use submodules

  • MechanicsVisualizer - use modular Animator, Plotter, PhaseSpaceVisualizer

[1.1.0] - 2024-XX-XX

Added

  • SPH fluid dynamics support

  • WebAssembly code generation

  • Hamiltonian formulation support

  • Non-holonomic constraints

  • Performance monitoring utilities

Changed

  • Improved symbolic simplification

  • Better stiffness detection

  • Enhanced visualization

[1.0.0] - 2024-XX-XX

Added

  • Initial release

  • LaTeX-inspired DSL for classical mechanics

  • Lagrangian mechanics support

  • Automatic Euler-Lagrange equation derivation

  • Numerical simulation with SciPy

  • 3D visualization with Matplotlib

  • C++ code generation

  • Energy conservation analysis

  • Phase space visualization

Features

  • Simple pendulum, double pendulum examples

  • Harmonic oscillator support

  • Basic constraint handling

  • CSV export