hitting a speed limit

All Geoms under an RBC share the very same GeomVertexData object, at least initially. Although when you call modifyVertexData(), it may force a copy. So it’s best to ensure there is only one Geom under the RBC to begin with; or if there are multiple, then after you force the copy you should reapply the copy to all Geoms with setVertexData() so that there is once again only one GeomVertexData.

Hmm, you’re right, flattenLight() isn’t enough to create a color column. You’ll have to take the vertex data and use:

gvd = root.getGeom(0).getVertexData()
gvd = gvd.setColor((1, 1, 1, 1), 4, Geom.NTUint8, Geom.CColor)
root.modifyGeom(0).setVertexData(gvd)

to force the color column to be added. Then you’ll want to use node.setColorOff(1) to ensure scene graph color is disabled, and allow vertex color to be visible.

Dozens of them, as described in the manual under “Common State Changes” and “Render Attributes”.

David