Scenegraph update

Allow program variables to be updated without rebuilding
Fixes #299.