TransformGroup groupA = new TransformGroup( ); TransformGroup groupB = new TransformGroup( ); Shape3D shape1 = new Shape3D( geom1, app1 ); Shape3D shape2 = new Shape3D( geom2, app1 ); . . . SharedGroup shared = new SharedGroup( ); shared.addChild( shape1 ); shared.addChild( shape2 ); shared.compile( ); . . . Link linkA = new Link( shared ); Link linkB = new Link( shared ); . . . groupA.addChild( linkA ); groupB.addChild( linkB );