So is it possible to alter the data-x, data-y, data-z, data-rotate, data-scale, etc, with JS during the course of the presentation to move the slides? Also is it possible to add and remove slides dynamically?
Slides information is read when presentation is initialised (with impress().init()) and it can't be changed later.
So in theory it is possible to alter data- params or add slides with JS, but only before presentation is initialised and started. After that they cannot be changed.
By default you can't do that with Impress.js, so I've added a new entry to the Impress.js API where you can do that.
Take a look at Dyapos, my new Prezi-like tool for Impress.js: https://github.com/edwardoyarzun/dyapos
And look at this file at line 638: https://github.com/edwardoyarzun/dyapos/blob/master/django_app/project/static/js/editor/impress_custom.js
I exported the function "initStep()".
I made a pull request a time ago with that feature but @bartaz didn't merged it :(