sphere and box now use vec4