feat: add adaptive motion