I have done a large commit to CVS which includes, along with lots of stuff which no doubt is buggy and will break things :-) a significant rewrite of SpherePortrayal3D, ShapePortrayal3D, CylinderPortrayal3D, and ConePortrayal3D, and some additions to SimplePortrayal3D, and the introduction of a new class, PrimitivePortrayal3D. The new class hierarchy looks like this: Portrayal3D SimplePortrayal3D PrimitivePortrayal3D Sphere... Shape... (though it's of course not a Java3D Primitive) Cylinder... Cone... More to come. SimplePortrayal3D has had new AppearanceFor... methods added and some more flag-setter methods. PrimitivePortrayal3D is abstract, with a bunch of general methods for its subclasses, including the primary getModel(...) method. The subclasses are all relatively simplified. PrimitivePortrayal3D has some documentation that might be useful to you too. Check out the new balls3d demo, which subclasses SpherePortrayal3D and overrides the getModel(...) method in the "new" way so to speak to set the attributes and change the size of the spheres. I'd like to extend this approach to a few more problematic 3D portrayals, notably the various edge portrayals and CubePortrayal3D, and have asked Gabriel to look into it. Sean