My attempt at doing so can be found here :
instead of making use of GeomVertexWriters, my version uses memoryviews to access vertex data.
To make things more interesting, I’ve made it possible to add and delete any of the cube’s sides at runtime by direct vertex data manipulation.
Perhaps it could still be improved; when I have some time I should have a look at it again.