Hi Doug, thanks for your answer. Effectively, the garbage collector is regularly called and that was the cause of my problems. As you suggested it, I have reviewed my code to make sure that all my transforms are reused instead of beeing recreated. After all the modifications I made, the gc is still but less often called. I am running the app on a bi-pentium 300 with a fire GL 3000 and even with such configuration the gc makes the renderer stop which is really not acceptable for a RT appli. As Gerd mentions it, it seems that setTransform() which is very often called in my application burns a lot of memory. Yet I have another question concerning the following code : public class blablabla ... { TransformGroup tg = null; Transform3D trsf = null ; public blablabla() { tg = new TransformGroup(); tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); trsf = new Transform3D(); tg.setTransform(trsf); } public void modifyTransform(Vector3d v) // often called { trsf = setTranslation(v); // problem here .... } } The modifyTransform function has no effect. It seems that the transform group has lost track of its transform3d. It is working if I add tg.setTransform(trsf) which seems to burn memory. If I replace this function by the following one : public void modifyTransform(Vector3d v) // often called { Transform3d trsf = null; tg.getTransform(trsf); // problem here .... trsf = setTranslation(v); } an exception is thrown because trsf is NULL ...Can somebody explain me why ? (the capability flags have been set correctly I think ...) Thanks in advance .... Pascal ---------------------------------------------------------------------------------------- Pascal Debarge / Computer Graphics Engineer / Animation Science e-mail : [EMAIL PROTECTED] tel (408) 543 1615 ===================================================================== To subscribe/unsubscribe, send mail to [EMAIL PROTECTED] Java 3D Home Page: http://java.sun.com/products/java-media/3D/