From fef6b861be0fcc986165543d1bebf0ca880e2ab3 Mon Sep 17 00:00:00 2001
From: Rohan Mathur
Date: Thu, 19 Jan 2023 17:41:05 -0500
Subject: [PATCH] Camera path (#1251)
* added eta to base config
* added code to save camera paths to dated name in data folder
* updated camera path name customization
* removed unnecessary comments
* added new version to viewer package.json
* more clean up and also I left a print statement in
* fixed validation message
---
nerfstudio/engine/trainer.py | 4 ++-
nerfstudio/viewer/app/package.json | 2 +-
.../src/modules/RenderModal/RenderModal.jsx | 30 ++++++++-----------
.../SidePanel/CameraPanel/CameraPanel.jsx | 9 +++---
.../SidePanel/CameraPanel/CameraPropPanel.jsx | 26 ++++++++++++++++
nerfstudio/viewer/app/src/reducer.js | 3 ++
nerfstudio/viewer/server/viewer_utils.py | 26 ++++++++++++----
7 files changed, 70 insertions(+), 30 deletions(-)
diff --git a/nerfstudio/engine/trainer.py b/nerfstudio/engine/trainer.py
index 30945a4c7..49879c31d 100644
--- a/nerfstudio/engine/trainer.py
+++ b/nerfstudio/engine/trainer.py
@@ -122,7 +122,9 @@ class Trainer:
viewer_log_path = self.base_dir / config.viewer.relative_log_filename
self.viewer_state, banner_messages = None, None
if self.config.is_viewer_enabled() and local_rank == 0:
- self.viewer_state, banner_messages = viewer_utils.setup_viewer(config.viewer, log_filename=viewer_log_path)
+ self.viewer_state, banner_messages = viewer_utils.setup_viewer(
+ config.viewer, log_filename=viewer_log_path, datapath=config.pipeline.datamanager.dataparser.data
+ )
self._check_viewer_warnings()
# set up writers/profilers if enabled
writer_log_path = self.base_dir / config.logging.relative_log_dir
diff --git a/nerfstudio/viewer/app/package.json b/nerfstudio/viewer/app/package.json
index 78d4997f3..ccaa2fa1c 100644
--- a/nerfstudio/viewer/app/package.json
+++ b/nerfstudio/viewer/app/package.json
@@ -1,7 +1,7 @@
{
"name": "viewer",
"homepage": ".",
- "version": "22-12-16-0",
+ "version": "23-01-19-0",
"private": true,
"dependencies": {
"@emotion/react": "^11.10.4",
diff --git a/nerfstudio/viewer/app/src/modules/RenderModal/RenderModal.jsx b/nerfstudio/viewer/app/src/modules/RenderModal/RenderModal.jsx
index 6305d4043..c9cea8f1b 100644
--- a/nerfstudio/viewer/app/src/modules/RenderModal/RenderModal.jsx
+++ b/nerfstudio/viewer/app/src/modules/RenderModal/RenderModal.jsx
@@ -1,7 +1,7 @@
/* eslint-disable react/jsx-props-no-spreading */
import * as React from 'react';
-import { Box, Button, Modal, TextField, Typography } from '@mui/material';
+import { Box, Button, Modal, Typography } from '@mui/material';
import { useSelector } from 'react-redux';
import ContentCopyRoundedIcon from '@mui/icons-material/ContentCopyRounded';
@@ -19,15 +19,22 @@ export default function RenderModal(props: RenderModalProps) {
(state) => state.renderingState.config_base_dir,
);
+ const export_path = useSelector(
+ (state) => state.renderingState.export_path,
+ );
+
+ const data_base_dir = useSelector(
+ (state) => state.renderingState.data_base_dir,
+ );
+
// react state
- const [filename, setFilename] = React.useState('render_output');
const handleClose = () => setOpen(false);
// Copy the text inside the text field
const config_filename = `${config_base_dir}/config.yml`;
- const camera_path_filename = `${config_base_dir}/camera_path.json`;
- const cmd = `ns-render --load-config ${config_filename} --traj filename --camera-path-filename ${camera_path_filename} --output-path renders/${filename}.mp4`;
+ const camera_path_filename = `${export_path}.json`;
+ const cmd = `ns-render --load-config ${config_filename} --traj filename --camera-path-filename ${data_base_dir}/camera_paths/${camera_path_filename} --output-path renders/${data_base_dir}/${export_path}.mp4`;
const text_intro = `To render a full resolution video, run the following command in a terminal.`;
@@ -56,22 +63,11 @@ export default function RenderModal(props: RenderModalProps) {
The video will be saved to{' '}
- ./renders/{filename}.mp4
+ ./renders/{data_base_dir}/{export_path}.mp4
.
- {
- setFilename(e.target.value);
- }}
- value={filename}
- variant="standard"
- />
+
{cmd}