4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-11 10:34:29 +08:00
nerfstudio/nerfactory/viewer/server
Ethan Weber 9bc39d895c
Export camera path (#398)
* export button working

* view changes

* adding copy to clipboard feature

* camera choice dropdown

* going to add script saving next

* copy paste working. need to add aspect ratio

* aspect overlay kind of working

* lint

* aspect ratio fixed. version specified

* merge

* openrelay back
2022-09-13 11:33:58 -07:00
..
state Viewer refactor with state sync (#212) 2022-08-02 16:02:07 -05:00
__init__.py
path.py Viewer refactor with state sync (#212) 2022-08-02 16:02:07 -05:00
README.md Viewer refactor with state sync (#212) 2022-08-02 16:02:07 -05:00
server.py Add codec to webrtc (#399) 2022-09-11 19:14:58 -07:00
subprocess.py Kill the training script if the viewer ports are conflicting with other processes (#352) 2022-09-07 12:32:31 -07:00
utils.py Export camera path (#398) 2022-09-13 11:33:58 -07:00
video_stream.py Hosting the viewer & webrtc logging (#271) 2022-08-14 00:15:34 -07:00
viewer_utils.py Export camera path (#398) 2022-09-13 11:33:58 -07:00
visualizer.py Viewer refactor with state sync (#212) 2022-08-02 16:02:07 -05:00

Python Kernel and Client Viewer App communication

The purpose of this document is to explain how to communicate from Python with the Client Viewer app. We will eventually move this into the read the docs.

  • Python Kernel (nerfactory code)
  • Bridge Server
  • Client Viewer App

We have two types of components that we want to keep state updated in both locations.

  • Widgets
    • The widgets are used to keep track of the
  • SceneNode
    • The scene nodes are used to represent the three.js objects. The properties relevant to these objects are the following: "object", "transform", "properties".

Checklist

  • Currently using request-reply (REQ, REP with zmq). I.e., Python Kernel -> Bridge Server <-> Client Viewer App. We want a way to update the Python Kernel when the Bridge Server is updated. This requries some form of binding with callbacks. When the Bridge Server is updated, we want to update the binded Python variable. We can take inspiration from ipywidgets.