We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Render fails silently traj="interp" mode (with custom data)
**Describe the bug**
When using ns-render (in google colab) and with custom images, the render "finishes" (cell executes successfully without any error), however, there's no output. The same command works well with traj="spiral"

**To Reproduce**
Executing the following command fails to output any video/rendering:
`!ns-render --load-config $config_filename --traj=interp --output-path renders/output.mp4`

However, changing the trajectory mode to spiral produces a correct video:
`!ns-render --load-config $config_filename --traj=spiral --output-path outputs/renders/output.mp4`

**Additional context**
I've checked the documentation for some pre-requisites to run the interpolation mode, but I didn't find anything.

Thanks!


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `scripts/render.py`
Content:
```
1 #!/usr/bin/env python
2 """
3 render.py
4 """
5 from __future__ import annotations
6 
7 import dataclasses
8 import json
9 import sys
10 from pathlib import Path
11 from typing import Optional
12 
13 import mediapy as media
14 import torch
15 import tyro
16 from rich.console import Console
17 from rich.progress import (
18     BarColumn,
19     Progress,
20     TaskProgressColumn,
21     TextColumn,
22     TimeRemainingColumn,
23 )
24 from typing_extensions import Literal, assert_never
25 
26 from nerfstudio.cameras.camera_paths import get_path_from_json, get_spiral_path
27 from nerfstudio.cameras.cameras import Cameras
28 from nerfstudio.configs.base_config import Config  # pylint: disable=unused-import
29 from nerfstudio.pipelines.base_pipeline import Pipeline
30 from nerfstudio.utils import install_checks
31 from nerfstudio.utils.eval_utils import eval_setup
32 from nerfstudio.utils.rich_utils import ItersPerSecColumn
33 
34 CONSOLE = Console(width=120)
35 
36 
37 def _render_trajectory_video(
38     pipeline: Pipeline,
39     cameras: Cameras,
40     output_filename: Path,
41     rendered_output_name: str,
42     rendered_resolution_scaling_factor: float = 1.0,
43     seconds: float = 5.0,
44     output_format: Literal["images", "video"] = "video",
45 ) -> None:
46     """Helper function to create a video of the spiral trajectory.
47 
48     Args:
49         pipeline: Pipeline to evaluate with.
50         cameras: Cameras to render.
51         output_filename: Name of the output file.
52         rendered_output_name: Name of the renderer output to use.
53         rendered_resolution_scaling_factor: Scaling factor to apply to the camera image resolution.
54         seconds: Length of output video.
55         output_format: How to save output data.
56     """
57     CONSOLE.print("[bold green]Creating trajectory video")
58     images = []
59     cameras.rescale_output_resolution(rendered_resolution_scaling_factor)
60 
61     progress = Progress(
62         TextColumn(":movie_camera: Rendering :movie_camera:"),
63         BarColumn(),
64         TaskProgressColumn(show_speed=True),
65         ItersPerSecColumn(suffix="fps"),
66         TimeRemainingColumn(elapsed_when_finished=True, compact=True),
67     )
68     output_image_dir = output_filename.parent / output_filename.stem
69     if output_format == "images":
70         output_image_dir.mkdir(parents=True, exist_ok=True)
71     with progress:
72         for camera_idx in progress.track(range(cameras.size), description=""):
73             camera_ray_bundle = cameras.generate_rays(camera_indices=camera_idx).to(pipeline.device)
74             with torch.no_grad():
75                 outputs = pipeline.model.get_outputs_for_camera_ray_bundle(camera_ray_bundle)
76             if rendered_output_name not in outputs:
77                 CONSOLE.rule("Error", style="red")
78                 CONSOLE.print(f"Could not find {rendered_output_name} in the model outputs", justify="center")
79                 CONSOLE.print(f"Please set --rendered_output_name to one of: {outputs.keys()}", justify="center")
80                 sys.exit(1)
81             image = outputs[rendered_output_name].cpu().numpy()
82             if output_format == "images":
83                 media.write_image(output_image_dir / f"{camera_idx:05d}.png", image)
84             else:
85                 images.append(image)
86 
87     if output_format == "video":
88         fps = len(images) / seconds
89         # make the folder if it doesn't exist
90         output_filename.parent.mkdir(parents=True, exist_ok=True)
91         with CONSOLE.status("[yellow]Saving video", spinner="bouncingBall"):
92             media.write_video(output_filename, images, fps=fps)
93     CONSOLE.rule("[green] :tada: :tada: :tada: Success :tada: :tada: :tada:")
94     CONSOLE.print(f"[green]Saved video to {output_filename}", justify="center")
95 
96 
97 @dataclasses.dataclass
98 class RenderTrajectory:
99     """Load a checkpoint, render a trajectory, and save to a video file."""
100 
101     # Path to config YAML file.
102     load_config: Path
103     # Name of the renderer output to use. rgb, depth, etc.
104     rendered_output_name: str = "rgb"
105     #  Trajectory to render.
106     traj: Literal["spiral", "interp", "filename"] = "spiral"
107     # Scaling factor to apply to the camera image resolution.
108     downscale_factor: int = 1
109     # Filename of the camera path to render.
110     camera_path_filename: Path = Path("camera_path.json")
111     # Name of the output file.
112     output_path: Path = Path("renders/output.mp4")
113     # How long the video should be.
114     seconds: float = 5.0
115     # How to save output data.
116     output_format: Literal["images", "video"] = "video"
117     # Specifies number of rays per chunk during eval.
118     eval_num_rays_per_chunk: Optional[int] = None
119 
120     def main(self) -> None:
121         """Main function."""
122         _, pipeline, _ = eval_setup(
123             self.load_config,
124             eval_num_rays_per_chunk=self.eval_num_rays_per_chunk,
125         )
126 
127         install_checks.check_ffmpeg_installed()
128 
129         seconds = self.seconds
130 
131         # TODO(ethan): use camera information from parsing args
132         if self.traj == "spiral":
133             camera_start = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)
134             # TODO(ethan): pass in the up direction of the camera
135             camera_path = get_spiral_path(camera_start, steps=30, radius=0.1)
136         elif self.traj == "interp":
137             # cameras_a = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)
138             # cameras_b = pipeline.datamanager.eval_dataloader.get_camera(image_idx=10)
139             # camera_path = get_interpolated_camera_path(cameras, steps=30)
140             raise NotImplementedError("Interpolated camera path not implemented.")
141         elif self.traj == "filename":
142             with open(self.camera_path_filename, "r", encoding="utf-8") as f:
143                 camera_path = json.load(f)
144             seconds = camera_path["seconds"]
145             camera_path = get_path_from_json(camera_path)
146         else:
147             assert_never(self.traj)
148 
149         _render_trajectory_video(
150             pipeline,
151             camera_path,
152             output_filename=self.output_path,
153             rendered_output_name=self.rendered_output_name,
154             rendered_resolution_scaling_factor=1.0 / self.downscale_factor,
155             seconds=seconds,
156             output_format=self.output_format,
157         )
158 
159 
160 def entrypoint():
161     """Entrypoint for use with pyproject scripts."""
162     tyro.extras.set_accent_color("bright_yellow")
163     tyro.cli(RenderTrajectory).main()
164 
165 
166 if __name__ == "__main__":
167     entrypoint()
168 
169 # For sphinx docs
170 get_parser_fn = lambda: tyro.extras.get_parser(RenderTrajectory)  # noqa
171
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/scripts/render.py b/scripts/render.py
--- a/scripts/render.py
+++ b/scripts/render.py
@@ -103,7 +103,7 @@
     # Name of the renderer output to use. rgb, depth, etc.
     rendered_output_name: str = "rgb"
     #  Trajectory to render.
-    traj: Literal["spiral", "interp", "filename"] = "spiral"
+    traj: Literal["spiral", "filename"] = "spiral"
     # Scaling factor to apply to the camera image resolution.
     downscale_factor: int = 1
     # Filename of the camera path to render.
@@ -133,11 +133,6 @@
             camera_start = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)
             # TODO(ethan): pass in the up direction of the camera
             camera_path = get_spiral_path(camera_start, steps=30, radius=0.1)
-        elif self.traj == "interp":
-            # cameras_a = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)
-            # cameras_b = pipeline.datamanager.eval_dataloader.get_camera(image_idx=10)
-            # camera_path = get_interpolated_camera_path(cameras, steps=30)
-            raise NotImplementedError("Interpolated camera path not implemented.")
         elif self.traj == "filename":
             with open(self.camera_path_filename, "r", encoding="utf-8") as f:
                 camera_path = json.load(f)

{"golden_diff": "diff --git a/scripts/render.py b/scripts/render.py\n--- a/scripts/render.py\n+++ b/scripts/render.py\n@@ -103,7 +103,7 @@\n     # Name of the renderer output to use. rgb, depth, etc.\n     rendered_output_name: str = \"rgb\"\n     #  Trajectory to render.\n-    traj: Literal[\"spiral\", \"interp\", \"filename\"] = \"spiral\"\n+    traj: Literal[\"spiral\", \"filename\"] = \"spiral\"\n     # Scaling factor to apply to the camera image resolution.\n     downscale_factor: int = 1\n     # Filename of the camera path to render.\n@@ -133,11 +133,6 @@\n             camera_start = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)\n             # TODO(ethan): pass in the up direction of the camera\n             camera_path = get_spiral_path(camera_start, steps=30, radius=0.1)\n-        elif self.traj == \"interp\":\n-            # cameras_a = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)\n-            # cameras_b = pipeline.datamanager.eval_dataloader.get_camera(image_idx=10)\n-            # camera_path = get_interpolated_camera_path(cameras, steps=30)\n-            raise NotImplementedError(\"Interpolated camera path not implemented.\")\n         elif self.traj == \"filename\":\n             with open(self.camera_path_filename, \"r\", encoding=\"utf-8\") as f:\n                 camera_path = json.load(f)\n", "issue": "Render fails silently traj=\"interp\" mode (with custom data)\n**Describe the bug**\r\nWhen using ns-render (in google colab) and with custom images, the render \"finishes\" (cell executes successfully without any error), however, there's no output. The same command works well with traj=\"spiral\"\r\n\r\n**To Reproduce**\r\nExecuting the following command fails to output any video/rendering:\r\n`!ns-render --load-config $config_filename --traj=interp --output-path renders/output.mp4`\r\n\r\nHowever, changing the trajectory mode to spiral produces a correct video:\r\n`!ns-render --load-config $config_filename --traj=spiral --output-path outputs/renders/output.mp4`\r\n\r\n**Additional context**\r\nI've checked the documentation for some pre-requisites to run the interpolation mode, but I didn't find anything.\r\n\r\nThanks!\r\n\n", "before_files": [{"content": "#!/usr/bin/env python\n\"\"\"\nrender.py\n\"\"\"\nfrom __future__ import annotations\n\nimport dataclasses\nimport json\nimport sys\nfrom pathlib import Path\nfrom typing import Optional\n\nimport mediapy as media\nimport torch\nimport tyro\nfrom rich.console import Console\nfrom rich.progress import (\n    BarColumn,\n    Progress,\n    TaskProgressColumn,\n    TextColumn,\n    TimeRemainingColumn,\n)\nfrom typing_extensions import Literal, assert_never\n\nfrom nerfstudio.cameras.camera_paths import get_path_from_json, get_spiral_path\nfrom nerfstudio.cameras.cameras import Cameras\nfrom nerfstudio.configs.base_config import Config  # pylint: disable=unused-import\nfrom nerfstudio.pipelines.base_pipeline import Pipeline\nfrom nerfstudio.utils import install_checks\nfrom nerfstudio.utils.eval_utils import eval_setup\nfrom nerfstudio.utils.rich_utils import ItersPerSecColumn\n\nCONSOLE = Console(width=120)\n\n\ndef _render_trajectory_video(\n    pipeline: Pipeline,\n    cameras: Cameras,\n    output_filename: Path,\n    rendered_output_name: str,\n    rendered_resolution_scaling_factor: float = 1.0,\n    seconds: float = 5.0,\n    output_format: Literal[\"images\", \"video\"] = \"video\",\n) -> None:\n    \"\"\"Helper function to create a video of the spiral trajectory.\n\n    Args:\n        pipeline: Pipeline to evaluate with.\n        cameras: Cameras to render.\n        output_filename: Name of the output file.\n        rendered_output_name: Name of the renderer output to use.\n        rendered_resolution_scaling_factor: Scaling factor to apply to the camera image resolution.\n        seconds: Length of output video.\n        output_format: How to save output data.\n    \"\"\"\n    CONSOLE.print(\"[bold green]Creating trajectory video\")\n    images = []\n    cameras.rescale_output_resolution(rendered_resolution_scaling_factor)\n\n    progress = Progress(\n        TextColumn(\":movie_camera: Rendering :movie_camera:\"),\n        BarColumn(),\n        TaskProgressColumn(show_speed=True),\n        ItersPerSecColumn(suffix=\"fps\"),\n        TimeRemainingColumn(elapsed_when_finished=True, compact=True),\n    )\n    output_image_dir = output_filename.parent / output_filename.stem\n    if output_format == \"images\":\n        output_image_dir.mkdir(parents=True, exist_ok=True)\n    with progress:\n        for camera_idx in progress.track(range(cameras.size), description=\"\"):\n            camera_ray_bundle = cameras.generate_rays(camera_indices=camera_idx).to(pipeline.device)\n            with torch.no_grad():\n                outputs = pipeline.model.get_outputs_for_camera_ray_bundle(camera_ray_bundle)\n            if rendered_output_name not in outputs:\n                CONSOLE.rule(\"Error\", style=\"red\")\n                CONSOLE.print(f\"Could not find {rendered_output_name} in the model outputs\", justify=\"center\")\n                CONSOLE.print(f\"Please set --rendered_output_name to one of: {outputs.keys()}\", justify=\"center\")\n                sys.exit(1)\n            image = outputs[rendered_output_name].cpu().numpy()\n            if output_format == \"images\":\n                media.write_image(output_image_dir / f\"{camera_idx:05d}.png\", image)\n            else:\n                images.append(image)\n\n    if output_format == \"video\":\n        fps = len(images) / seconds\n        # make the folder if it doesn't exist\n        output_filename.parent.mkdir(parents=True, exist_ok=True)\n        with CONSOLE.status(\"[yellow]Saving video\", spinner=\"bouncingBall\"):\n            media.write_video(output_filename, images, fps=fps)\n    CONSOLE.rule(\"[green] :tada: :tada: :tada: Success :tada: :tada: :tada:\")\n    CONSOLE.print(f\"[green]Saved video to {output_filename}\", justify=\"center\")\n\n\n@dataclasses.dataclass\nclass RenderTrajectory:\n    \"\"\"Load a checkpoint, render a trajectory, and save to a video file.\"\"\"\n\n    # Path to config YAML file.\n    load_config: Path\n    # Name of the renderer output to use. rgb, depth, etc.\n    rendered_output_name: str = \"rgb\"\n    #  Trajectory to render.\n    traj: Literal[\"spiral\", \"interp\", \"filename\"] = \"spiral\"\n    # Scaling factor to apply to the camera image resolution.\n    downscale_factor: int = 1\n    # Filename of the camera path to render.\n    camera_path_filename: Path = Path(\"camera_path.json\")\n    # Name of the output file.\n    output_path: Path = Path(\"renders/output.mp4\")\n    # How long the video should be.\n    seconds: float = 5.0\n    # How to save output data.\n    output_format: Literal[\"images\", \"video\"] = \"video\"\n    # Specifies number of rays per chunk during eval.\n    eval_num_rays_per_chunk: Optional[int] = None\n\n    def main(self) -> None:\n        \"\"\"Main function.\"\"\"\n        _, pipeline, _ = eval_setup(\n            self.load_config,\n            eval_num_rays_per_chunk=self.eval_num_rays_per_chunk,\n        )\n\n        install_checks.check_ffmpeg_installed()\n\n        seconds = self.seconds\n\n        # TODO(ethan): use camera information from parsing args\n        if self.traj == \"spiral\":\n            camera_start = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)\n            # TODO(ethan): pass in the up direction of the camera\n            camera_path = get_spiral_path(camera_start, steps=30, radius=0.1)\n        elif self.traj == \"interp\":\n            # cameras_a = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)\n            # cameras_b = pipeline.datamanager.eval_dataloader.get_camera(image_idx=10)\n            # camera_path = get_interpolated_camera_path(cameras, steps=30)\n            raise NotImplementedError(\"Interpolated camera path not implemented.\")\n        elif self.traj == \"filename\":\n            with open(self.camera_path_filename, \"r\", encoding=\"utf-8\") as f:\n                camera_path = json.load(f)\n            seconds = camera_path[\"seconds\"]\n            camera_path = get_path_from_json(camera_path)\n        else:\n            assert_never(self.traj)\n\n        _render_trajectory_video(\n            pipeline,\n            camera_path,\n            output_filename=self.output_path,\n            rendered_output_name=self.rendered_output_name,\n            rendered_resolution_scaling_factor=1.0 / self.downscale_factor,\n            seconds=seconds,\n            output_format=self.output_format,\n        )\n\n\ndef entrypoint():\n    \"\"\"Entrypoint for use with pyproject scripts.\"\"\"\n    tyro.extras.set_accent_color(\"bright_yellow\")\n    tyro.cli(RenderTrajectory).main()\n\n\nif __name__ == \"__main__\":\n    entrypoint()\n\n# For sphinx docs\nget_parser_fn = lambda: tyro.extras.get_parser(RenderTrajectory)  # noqa\n", "path": "scripts/render.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\"\"\"\nrender.py\n\"\"\"\nfrom __future__ import annotations\n\nimport dataclasses\nimport json\nimport sys\nfrom pathlib import Path\nfrom typing import Optional\n\nimport mediapy as media\nimport torch\nimport tyro\nfrom rich.console import Console\nfrom rich.progress import (\n    BarColumn,\n    Progress,\n    TaskProgressColumn,\n    TextColumn,\n    TimeRemainingColumn,\n)\nfrom typing_extensions import Literal, assert_never\n\nfrom nerfstudio.cameras.camera_paths import get_path_from_json, get_spiral_path\nfrom nerfstudio.cameras.cameras import Cameras\nfrom nerfstudio.configs.base_config import Config  # pylint: disable=unused-import\nfrom nerfstudio.pipelines.base_pipeline import Pipeline\nfrom nerfstudio.utils import install_checks\nfrom nerfstudio.utils.eval_utils import eval_setup\nfrom nerfstudio.utils.rich_utils import ItersPerSecColumn\n\nCONSOLE = Console(width=120)\n\n\ndef _render_trajectory_video(\n    pipeline: Pipeline,\n    cameras: Cameras,\n    output_filename: Path,\n    rendered_output_name: str,\n    rendered_resolution_scaling_factor: float = 1.0,\n    seconds: float = 5.0,\n    output_format: Literal[\"images\", \"video\"] = \"video\",\n) -> None:\n    \"\"\"Helper function to create a video of the spiral trajectory.\n\n    Args:\n        pipeline: Pipeline to evaluate with.\n        cameras: Cameras to render.\n        output_filename: Name of the output file.\n        rendered_output_name: Name of the renderer output to use.\n        rendered_resolution_scaling_factor: Scaling factor to apply to the camera image resolution.\n        seconds: Length of output video.\n        output_format: How to save output data.\n    \"\"\"\n    CONSOLE.print(\"[bold green]Creating trajectory video\")\n    images = []\n    cameras.rescale_output_resolution(rendered_resolution_scaling_factor)\n\n    progress = Progress(\n        TextColumn(\":movie_camera: Rendering :movie_camera:\"),\n        BarColumn(),\n        TaskProgressColumn(show_speed=True),\n        ItersPerSecColumn(suffix=\"fps\"),\n        TimeRemainingColumn(elapsed_when_finished=True, compact=True),\n    )\n    output_image_dir = output_filename.parent / output_filename.stem\n    if output_format == \"images\":\n        output_image_dir.mkdir(parents=True, exist_ok=True)\n    with progress:\n        for camera_idx in progress.track(range(cameras.size), description=\"\"):\n            camera_ray_bundle = cameras.generate_rays(camera_indices=camera_idx).to(pipeline.device)\n            with torch.no_grad():\n                outputs = pipeline.model.get_outputs_for_camera_ray_bundle(camera_ray_bundle)\n            if rendered_output_name not in outputs:\n                CONSOLE.rule(\"Error\", style=\"red\")\n                CONSOLE.print(f\"Could not find {rendered_output_name} in the model outputs\", justify=\"center\")\n                CONSOLE.print(f\"Please set --rendered_output_name to one of: {outputs.keys()}\", justify=\"center\")\n                sys.exit(1)\n            image = outputs[rendered_output_name].cpu().numpy()\n            if output_format == \"images\":\n                media.write_image(output_image_dir / f\"{camera_idx:05d}.png\", image)\n            else:\n                images.append(image)\n\n    if output_format == \"video\":\n        fps = len(images) / seconds\n        # make the folder if it doesn't exist\n        output_filename.parent.mkdir(parents=True, exist_ok=True)\n        with CONSOLE.status(\"[yellow]Saving video\", spinner=\"bouncingBall\"):\n            media.write_video(output_filename, images, fps=fps)\n    CONSOLE.rule(\"[green] :tada: :tada: :tada: Success :tada: :tada: :tada:\")\n    CONSOLE.print(f\"[green]Saved video to {output_filename}\", justify=\"center\")\n\n\n@dataclasses.dataclass\nclass RenderTrajectory:\n    \"\"\"Load a checkpoint, render a trajectory, and save to a video file.\"\"\"\n\n    # Path to config YAML file.\n    load_config: Path\n    # Name of the renderer output to use. rgb, depth, etc.\n    rendered_output_name: str = \"rgb\"\n    #  Trajectory to render.\n    traj: Literal[\"spiral\", \"filename\"] = \"spiral\"\n    # Scaling factor to apply to the camera image resolution.\n    downscale_factor: int = 1\n    # Filename of the camera path to render.\n    camera_path_filename: Path = Path(\"camera_path.json\")\n    # Name of the output file.\n    output_path: Path = Path(\"renders/output.mp4\")\n    # How long the video should be.\n    seconds: float = 5.0\n    # How to save output data.\n    output_format: Literal[\"images\", \"video\"] = \"video\"\n    # Specifies number of rays per chunk during eval.\n    eval_num_rays_per_chunk: Optional[int] = None\n\n    def main(self) -> None:\n        \"\"\"Main function.\"\"\"\n        _, pipeline, _ = eval_setup(\n            self.load_config,\n            eval_num_rays_per_chunk=self.eval_num_rays_per_chunk,\n        )\n\n        install_checks.check_ffmpeg_installed()\n\n        seconds = self.seconds\n\n        # TODO(ethan): use camera information from parsing args\n        if self.traj == \"spiral\":\n            camera_start = pipeline.datamanager.eval_dataloader.get_camera(image_idx=0)\n            # TODO(ethan): pass in the up direction of the camera\n            camera_path = get_spiral_path(camera_start, steps=30, radius=0.1)\n        elif self.traj == \"filename\":\n            with open(self.camera_path_filename, \"r\", encoding=\"utf-8\") as f:\n                camera_path = json.load(f)\n            seconds = camera_path[\"seconds\"]\n            camera_path = get_path_from_json(camera_path)\n        else:\n            assert_never(self.traj)\n\n        _render_trajectory_video(\n            pipeline,\n            camera_path,\n            output_filename=self.output_path,\n            rendered_output_name=self.rendered_output_name,\n            rendered_resolution_scaling_factor=1.0 / self.downscale_factor,\n            seconds=seconds,\n            output_format=self.output_format,\n        )\n\n\ndef entrypoint():\n    \"\"\"Entrypoint for use with pyproject scripts.\"\"\"\n    tyro.extras.set_accent_color(\"bright_yellow\")\n    tyro.cli(RenderTrajectory).main()\n\n\nif __name__ == \"__main__\":\n    entrypoint()\n\n# For sphinx docs\nget_parser_fn = lambda: tyro.extras.get_parser(RenderTrajectory)  # noqa\n", "path": "scripts/render.py"}]}