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