diff --git a/nerfactory/viewer/app/package.json b/nerfactory/viewer/app/package.json index ba7bcbaf4..48c4fb54f 100644 --- a/nerfactory/viewer/app/package.json +++ b/nerfactory/viewer/app/package.json @@ -1,7 +1,7 @@ { "name": "viewer", "homepage": ".", - "version": "22-09-13-0", + "version": "22-09-14-0", "private": true, "dependencies": { "@emotion/react": "^11.10.4", diff --git a/nerfactory/viewer/app/src/modules/ViewerWindow/ViewerWindow.jsx b/nerfactory/viewer/app/src/modules/ViewerWindow/ViewerWindow.jsx index 58d498183..4abf2a82d 100644 --- a/nerfactory/viewer/app/src/modules/ViewerWindow/ViewerWindow.jsx +++ b/nerfactory/viewer/app/src/modules/ViewerWindow/ViewerWindow.jsx @@ -152,10 +152,12 @@ export default function ViewerWindow(props) { if (websocket.readyState === WebSocket.OPEN) { const cmd = 'write'; const path = 'renderingState/camera'; + const data_packet = sceneTree.metadata.camera.toJSON(); + data_packet.object.timestamp = +new Date(); const data = { type: cmd, path, - data: sceneTree.metadata.camera.toJSON(), + data: data_packet, }; const message = msgpack.encode(data); websocket.send(message); diff --git a/nerfactory/viewer/server/viewer_utils.py b/nerfactory/viewer/server/viewer_utils.py index 0a7904681..56ed25046 100644 --- a/nerfactory/viewer/server/viewer_utils.py +++ b/nerfactory/viewer/server/viewer_utils.py @@ -235,6 +235,7 @@ class VisualizerState: self.static_fps = 1 self.moving_fps = 24 self.camera_moving = False + self.prev_camera_timestamp = 0 self.outputs_set = False @@ -525,6 +526,12 @@ class VisualizerState: Args: graph: current checkpoint of model """ + # Check that timestamp is newer than the last one + if int(camera_object["timestamp"]) < self.prev_camera_timestamp: + return + + self.prev_camera_timestamp = int(camera_object["timestamp"]) + # check and perform output type updates output_type = self.vis["renderingState/output_choice"].read() output_type = OutputTypes.INIT if output_type is None else output_type