1 - It too easy to accidentally pass null pointers by writing the wrong variable name, sincethe lua bindings treat nil as a null pointer.
2 Simpler solution: don't use "nil" for null pointers, perhaps 0? Or create some "nullptr" global somewhere containing a lightuserdata with a special value to act as a null pointer.
5 Also: perhaps implement another type of Pointer for which null isn't allowed, and which the lua bindings wouldn't accept to create as a null pointer.
7 - from lua, creating a matrix, setting a translation and then assigning it to the localtoparent matrix of a frame doesn't work. Directly changing the translation component
8 of the localtoparent matrix does, however. This is very weird since Matrix44f uses the default copy constructor, and the rotation component are copied over properly.
9 Peppering the relevant code with debug prints should allow to spot the problem.