# Dynamic motion primitives The {mod}`robotblockset.dmp` module provides tools for encoding demonstrated motions as dynamic motion primitives (DMPs) and reproducing them with temporal scaling. It supports ordinary vector-valued signals, quaternion orientations, and Cartesian pose trajectories. The main encoding and decoding functions are: - {func}`robotblockset.dmp.encodeDMP` and {func}`robotblockset.dmp.decodeDMP` for vector-valued trajectories - {func}`robotblockset.dmp.encodeQuaternionDMP` and {func}`robotblockset.dmp.decodeQuaternionDMP` for orientations - {func}`robotblockset.dmp.encodeCartesianDMP` and {func}`robotblockset.dmp.decodeCartesianDMP` for Cartesian poses For time-parameterized paths, {func}`robotblockset.dmp.Path2DMP` and {func}`robotblockset.dmp.DMP2Path` provide convenient conversions. The `integrateStep*DMP` functions expose individual integration steps for custom execution loops. See the [`tutorial_dmp` notebook](https://github.com/abr-ijs/robotblockset_python/blob/master/src/robotblockset/tutorials/tutorial_dmp.ipynb) for a complete workflow and the {mod}`robotblockset.dmp` API reference for all functions and parameter details.