Hi.
I made several preparation to the questions like that, but currently I am ready to answer just the first one due to high workload. So I will answer it first.
- How to illustrate the difference between pivot and origin systems?
The difference is in mesh influence, so we can spot the difference by creating instances (called linked data objects in Blender) and checking how origin/piviot grabbing influence them.
Here is an example from 3dsmax (I do not propose anything from this gif, so I guess I can use it here to depict how pivot systems naturally works)
I created several instances that share the same mesh, and tweaked their pivots. It is possible to put all the pivots to a single 3dspace point, but object Meshes will kept their positions since pivot doesn’t influence mesh.
Pivot system behaves like that (instances can have different pivot positions):
If you will try to recreate this case by making several instances in Blender (via alt+D) and will try to grab origin (via Ctrl+. shortcut), grabbing origin of a single element will change the position of its instances, since origin influence mesh.
Origin system behaves like that (instances can’t have different origin positions):
The trick is that 3dsmax has both pivot and origin systems that allow to create and keep instances the same way at the system level, but the origin system it is not originally exposed to the user there.
That means - you just disallowed to view true mesh origin properly in 3dsmax (and Maya), so most users don’t have a clue about origin system when learn this software.
However, if you will export those instances from 3dsmax to Blender via FBX (which is a 3d file format that keep instances), you will see true origins of meshes instead of pivot points, since origin positions will be different from pivot positions you originally set in 3dsmax.
The inability to detect true mesh origins in 3dsmax cause quite heavy problems there, for example your pivot can be close to mesh geometry position, so you are supposed to think that everything is ok, but true mesh origin can be kilometers away, in that case your mesh will be laggy with no visible reason.
That is also the reason why all mesh origins are usually so randomly spread across 3dspace when you import 3dsmax models to Blender - the problem is the same - you don’t have direct access to the origin and object+mesh data systems in 3dsmax to control them properly, so even if your pivot points are accurately organized, imported origins almost always looks like that:
It is a complex and deep topic about software system design, I hope my explanations sounds clear.