split camera, particle system, scene, and viewport into modules