The scope here is to make these things more accesible to scripting agnostic artists that want an easy and versatile way of manipulating objects and components in the viewport, w/o resorting to asking a TD for scripting and/or tool writing.
I’ll start first with what I perceive to be a bug.
Global Control (GC)
In XSI this feature is found under the name of COG and here’s how it works:
when off, translating multiple objects in their own space (local/object) on their say Y axis, each will follow their own Y axis

In Houdini, having GC Off is almost the same as having it On, with the only difference of having the gizmo snap to the selection’s center of mass when On (which is good).
Having it Off shouldn’t behave like shown below.

Imagine having a pair of symmetrical (by position and orientation) controls in a rigged character . If one wants to animate these while keeping them symmetrical, in H you’d have to do it manually for both.
For modeling purposes this is a big problem as well.
The reason I’m thinking this is a bug is because both the rotation and scaling seem to work, only the translation is acting up.
Spaces (frames of reference)
In Houdini aligning the gizmo to a space, does just that – borrows an orientation from ‘something’ for viewport manipulation purposes only. This is all good since there are cases when you want just that. Problem is that H, AFAIK, doesn’t provide the user a means to change the object’s space. This is an interaction crutch since it changes the values in the transform boxes based on what the user picked.
Let’s talk examples.
Create a box and a sphere in Houdini, both at (0,0,0) and move then the sphere to X=2. Now parent the sphere to the box with ‘keep pos…” On. Now move the box to X=-1. When I select the sphere and align the gizmo to “world” I expect the sphere’s X pos to show me 1, but it shows 2 which is the frame of reference of the box. If I were to select “parent” then 2 would’ve been correct.
Here’s a series of pics analyzing different cases.





One can see that Softimage provides the user modes that will “mix” the object’s space regarding the coord. it displayes in the value boxes and the alignment of the gizmo/handle:
-Global/World - world coord; world alignment
-Local - local coord; local alignment
-View - local coord; world alignment
-Parent - local coord; parent alignment
- Ref - reference* coord; reference* alignment
(*‘reference’ is a manually picked object. Or point, edge or polygon which can belong to the to be transformed object or other object)
- Plane – same as Ref, with the distincion of having a construction plane aligned to a picked object which comes with some advantages like grid snapping and creating things in this plane which would otherwise use the screen space.
Here I’ve aligned the constr. Plane (by RMB on Plane > Pick Object Reference) to a randomly rotated cube and created a polygon* in it.

*Used the ‘N’ tool in Softimage which lets me create a new poly to an object as well as creating a new object if none is selected a priori. The Polyknit tool doesn’t allow the user to do this, but that’s the least of Polyknit’s problems right now.
Trivia - there’s no screen (View in H) alignment mode in XSI – one can simply grab the center of the gizmo or click outsite the gizmo to translate in screen space. The reason I'm mentioning this has little to no importance, except that Houdini can also move in screen space by grabbing the center of the gizmo and since one has to cycle through these modes with ‘M’, removing it from the list means one less thing to cycle through. Better yet if you insist having it listed there, rename it Screen and make these modes accessible at the first RMB click (no submenu in a menu).
As I previously said, in H aligning the gizmo is just for viewport interaction but doesn’t allow manual numeric input since the frame of reference reflected in the values shown is not changed. Huge bummer.
Here’s a quick demo showing one application (among so many) of having the possibility of editing points in global space.
Example of using global coord to edit points [mcnistor.com]
If I want to quickly make a box of four units in width I quickly move points from each side as shown above, without messing with the Object’s scale.
This might not have many applications in simulations or a dirty editing of an organic shape, but for hard-surface or arch-viz modeling this is a huge workflow improvement.
Reference in Tweak tool
One extension of having the posibility to pick Objects (or any of their components) as a reference for TRS transformations is having a “on the fly” picking when in tweak component mode.
Demo of a reference picking on the fly. [mcnistor.com]
Edge sliding, component rotations based on other components and other tricks become possible and a joy to use.
Let’s see how reference related stuff works in Houdini.
Clip of orient picking in Houdini. [mcnistor.com]
Leaving aside the buggy behavior (if the object had been at t(0,0,0), it would have kinda* worked) how does RMB > going through the meu to find the option > click in the viewport where’s no indication (highlight) on what you’re clicking to Softimage’s simple MMB?
That and the fact that there’s no polygon or object picking.
* kinda, because there would be no poly translation, but there would be a rotation in case of an edge pick; for a point pick you have both a translation and a rotation. I’m assuming this is a bug since I want the handle to just orient itself not perform an actual transform.
If I forgot something I’ll add it later by editing.
Quick tip for XSI users: if you’re a heavy user of placing/snapping the gizmo (with alt) into various places for transforms tricks, you’d want to use the Attach to Geomtry toggle (shortcut ‘), not the pivot (Ins hotkey) which doesn’t work anyway in component mode. At some point in the future, when transient keys will find Houdini and hopefully the alt key will be released from its death grip of redundancy, well…
Speaking of which, is the alt key ever be made available for those who choose to navigate with space? I know it’s possible (in general, not sure about Houdini) since Softimage, not long after Adsk acquired it, got a Maya nav. model which uses alt instead of ‘S’.
edit1:
Center
In Soft there's an entity called ‘center’. I've looked it up in Houdini and seems that there's a ‘centroid’, an expression function -not exactly what I was looking for.
This center mode in XSI allows me to move an object in the scene while keeping its geometry in place.

Not to be confused with the pivot - see the kine. window with the Pivot tab aside - which is not affected when editing the center.
In Houdini this would be equivalent to moving the points of a cube say 1 unit on Y and then going at Scene level and translating the cube with -1 on Y and thus ending up with the cube's geometry in the same place.
There are many in cases I use this in Softimage, especially modeling, but rigging too (like say moving the center of a curve control while keeping its geometry in place).
A quick way to implement this in Houdini is to add under “Keep position when parenting” a Keep geometry in place when transforming" option which would probably need to create an edit node inside when checked On.
edit2:
Tweak mode
The main problem I'm having with the edit tool (something I've suspected even before testing when I read that it replaces the old edit mode) is that it is in tweak mode and in that only when having a transform tool active. That makes it impossible to select when zoomed in, as is often the case when detailing some small part of a mesh - it forces the user to either go in select mode or to zoom out to be able to drag select from outside the silhouette of the mesh if what you want to select is best suited for a box-selelction.
Disabling polygons with ‘4’ and edges with ‘3’ just to be in point mode seems like a chore and counter-intuitive. Isolating any of the components is an exclusion of the other two and coupled with the fact that Houdini will try to select the previous (the “active” component) makes it almost impossible to work with this

Proposed fix
Bring back the old mode of the edit node and make the current one a toggle:

I miss the old way of editing for its non-intrusiveness. Tweak mode is cool, a long awaited feature which will hopefully become great with a few enhancements (like picking a reference component on the fly, collapsing points, etc), but please let the user decide when to use it.
I've looked in the Hotkey editor and I didn't find an entry for those modes. They have to have a hotkey (by default or assigned by the user) for quickly accessing those modes.
Transforming Components
There are two transformation types for components Houdini that are currently very limited, making one of them usable only in certain situations and the other practically unusable.
One of them is transforming in a Reference space (‘start orientation picking’) which is buggy regarding the results and hard to use in terms of interactivity. It also lacks a listing in the ‘M’ cycling menu which means that once you transformed in a reference space, you’ll have to repick.
The other is “Component” (listed in the ‘M’ cycle) which is a local transformation type. This is a good thing (the fact that it exists and it’s listed), but it’s limited in the following way:

Each component is not transforming in their own local space, but in an “averaged” one (not a translation along the normal and rotation with a common pivot). This is good, we need this, but this would be the normal behavior for when a GC (global control) is On.
Where’s the GC in component mode? Looks like it’s there, implicitely activated and hidden from the user. It has to be exposed and toggle-able, with memory preferably.
Here’s how a ‘Component’ (local in other apps) looks like with GC Off and is currently missing in H:


“Peak” (which is not only limited but also buggy) would oviously be made redundant from a modeling PoV by this.
Also, can we have ‘Y’ up/normal for components if it’s not something that would eat a lot of dev. time? Not a hugely important thing, it’s just that it makes more sense.
Another issue is the current scale handle. Not the first time I’m saying this, but currently you have to aim very precissely to pick an axis. If a classical (like the translate) scale gizmo is off the table for some reason, at least make the axis handles a bit longer towards the center, like ½ of its total possible length.
The other mode which is not even listed in the ‘M’ cycleable menu is the Reference mode. You saw earlier how powerfull this is for the tweak tool when you have the possiblity to pick a reference on the fly.
For a non-tweak mode (aka classic edit) this is almost as important. Having the possibilty to pick points, edge and polys of the same object, another object’s and even an object (Scene lvl) is crucial.
I’m aware that Houdini (as well as other s/w) doesn’t allow picking another OBJ at scene lvl. when in the component mode of another. For example, Softimage doesn’t normaly allow this either, but it makes an exception when it comes to picking a Reference. If in Houdini such a thing would be hard to achieve or even impossible, this could be solved (albeit not the optimal way) by going at the scene lvl, picking your Object (or one its comp.) Ref. and then going back to component of the initial Obj where you activate the Ref mode (which again, currently is missing in the list) which would remember the last picked reference.This would be a whole lot more easier if Houdini would allow component editing for two or more selected Objects, a thing not really about transforms, but clearly with consequences.