Thanks mate. using the above code doesn’t work directly as the change seems to get overwritten somehow (wrapping it in a setTimeout proves this). Its obviously a private api so fair enough, look forward to a correct way.
Better still would be for 3d ui elements to work out of the box without having to mess with the layers + materials. Feels to me it should only be treated differently when part of a screen element, otherwise it feels completely inconsistent with other scene objects