Scenes are data
Describe a space — walls, artworks, a camera — as a plain, JSON-serializable object. No three.js, no closures. The same definition an editor produces, a database stores, and the network transports.
A real-time engine
A three.js runtime materializes the scene and runs it, with a free-roaming first-person camera. Edit the scene on the fly and it reconciles by id — add a wing or drop one while you walk.
Composable packages
Small, tree-shakeable packages: the data language, the engine, set-dressing props, a DOM overlay, and React bindings. Take only what you need; three.js stays an implementation detail.