import traer.animation.*; Smoother fader; Smoother3D rotator; Animator a; float delta = TWO_PI/8; void setup() { size( 400, 400, P3D ); framerate( 50 ); ortho(); noFill(); a = new Animator( 0.9 ); rotator = a.make3DSmoother(); fader = a.makeSmoother(); } void draw() { background( 255 ); translate( 400, 400, 0 ); a.tick(); stroke( fader.getValue() ); rotateX( rotator.x() ); rotateY( rotator.y() ); rotateZ( rotator.z() ); box( 150 ); } void keyPressed() { switch ( key ) { case 'x': rotator.setXTarget( rotator.getXTarget() + delta ); break; case 'y': rotator.setYTarget( rotator.getYTarget() + delta ); break; case 'z': rotator.setZTarget( rotator.getZTarget() + delta ); break; case ' ': if ( fader.getTarget() == 0 ) fader.setTarget( 255 ); else fader.setTarget( 0 ); break; } }