My Java applet has been broken for several years. I suppose it uses obsolete features. It was never very good at interactively changing the projection to be displayed. I consider here how it might be improved.

We take the 4D figure to be displayed to inhabit a 4D vector space in order to use some convenient vector terminology.

The job is to project the 4D space of the figure onto the 2D space of the screen. Unlike some efforts I do not propose to fake an intermediate 3D projection. Every such display is brought about by choosing a 2D subspace of the 4D space. We call this space the display plane. For each such subspace there is a unique projection from 4D to 2D. For each display plane choice there is an additional choice of which unit vector therein will be displayed horizontally. All of these chooses are subsumed by choosing two orthogonal unit vectors in the 4D space. The choice of the first involves 3 real numbers, and the 2nd choice involves 2 more. The first chosen vector becomes the X axis of the display and the 2nd becomes the Y axis.

Simple rotations in 4D, by definition, leave vectors is some 2D space fixed. We say that the rotation is about that plane. Simple rotations in 4D about the display plane leave the projection unchanged. General rotations in 4D may always be decomposed into two simple rotations about some two orthogonal 2D planes. Usually these planes are unique.

What sort of user interface might naturally control these five degrees of freedom? A mousedown-move-mouseup sequence affords 4 reals and is thus insufficient.