OK - I think I see a way to do this really nicely on the web.... I don't think I'm going to go too deep down this rabbit hole, but I'm curious what we think of this.
- Use the new glTF format: https://www.khronos.org/gltf/
- Instead of keeping it as a flat string or binary file, each node is a Cell
- Alternatively, store the whole scene as a Cell, and modify it via lenses or some other immutable data approach
There would need to be a little housekeeping if the geometry or textures changed, but I think that could still be dealt with while keeping the "separation of concerns"
Outside of that little house keeping, it would be as simple as loading all the initial buffers, and rendering the state of the glTF/Cell + camera + environment as it changes.
I haven't gone too deep on this yet... but on one foot, it seems like it could be a cool approach