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 moduleFixed 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 configurationconfig.py- Configuration management and constantscaching.py- LRU cache implementationprofiling.py- Performance monitoring and timeoutsvalidation.py- Input validation functionsunits.py- Physical units system
mechanics_dsl.core/ - Core compiler infrastructure
Reorganized
compiler.py,parser.py,symbolic.py,solver.pyUpdated imports for new package structure
mechanics_dsl.domains/ - Physics domain implementations
base.py- AbstractPhysicsDomainclassclassical/- Lagrangian, Hamiltonian, constraints, rigid bodyfluids/- SPH simulation, boundary conditions
mechanics_dsl.visualization/ - Modular visualization
animator.py- Animation classesplotter.py- General plotting utilitiesphase_space.py- Phase space and Poincaré sections
mechanics_dsl.analysis/ - Analysis tools
energy.py- Energy conservation analysisstability.py- Fixed point and eigenvalue analysis
mechanics_dsl.codegen/ - Code generation backends
base.py- AbstractCodeGeneratorclasspython.py- Python/NumPy code generationImproved C++ templates
mechanics_dsl.io/ - I/O utilities
serialization.py- JSON/pickle serializationexport.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 submodulesMechanicsVisualizer- use modularAnimator,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