49,347 votes and 799 comments so far on Reddit

I guess this is a better comment if any to generally cover how it was done. Generally is a bit vague in this case.
Basically, virtually everything that composes of the cannon and the chair is an entity of some sort, each with different sizes for different needs. They are either a falling block riding an armor stand, a block in the head slot of an armor stand, a block in a minecart (with the display offset increased to hide the minecart from view), or an item in the hand slot of an armor stand.
Falling blocks share the same size as regular blocks. It is necessary that it is riding on the armor stand, as teleporting a falling block is not always smooth. Blocks on armor stand heads and in their hands also work well, but their sizes are a bit of hindrance, and they are difficult to position and orient due to the nature of modifying the direction of each armor stand part. Blocks in minecarts are larger and can be rotated in unique directions, but they are slightly less responsive compared to armor stands, have collision boxes which can cause them to bump into other minecarts and cannot be rotated or teleported without their rotation resetting.
To make the entities move, you basically just use an /execute command to target the specific entity to teleport at specific timings. How Minecraft works with teleporting entities is that they do not just immediately appear in the desired destination; they quickly jump/glide there instead, giving a sense of smooth movement. To make parts rotate, you can use /data to modify the data of the entity to edit their Rotation NBT tag.
For the more ‘mechanical’ parts, I have the command blocks following the main teleporting command blocks to teleport it back a portion of the difference it moved (i.e. -0.1 blocks from 1 block), and then teleporting it, in the command blocks following those, forward the same distance. This gives the allusion of each component having some mass.
To sit on the chair itself, there is an invisible llama. My first choice was saddled pigs, as they were small as easy to work with. However, saddles do not turn invisible along with the mob, so other options such as striders were not possible. Minecarts, boats also proved a challenge due to their small detection boxes. Horses were too big and trying to ride one violently propelled me in a random direction due to the collision boxes of all the entities surrounding it.