Object-Oriented Design
Composition-based approach
Simulator creates a 3D scene model in Viewer
Scene contains Nodes arranged in a DAG
Node’s state is maintained by its Variables
Variables linked together in dependency graph
Dependencies maintained by one-way Constraints
Communication via Channels and Notifiers