… is that it doesn’t matter where you start because so much has to be done. So where to start with porting the applet?
It’s actually easier to decide where not to start: the class TextElement is for formatted text, which is secondary; the classes Expression, ExpressionElement, and Evaluator are for evaluating symbolic expressions, which is not essential for the basic functionality. Quaternion and Primitive are small classes that I can do whenever they are needed.
This leaves the main class Live, the Graphics3D class for representing and rendering the Graphics3D object, and the Parser class for parsing the textual representation of a Graphics3D object. Among those the choice is relatively easy: Parser can work without the other classes, but Live and Graphics3D cannot be tested easily without Parser. Thus, Parser it is.