From 312fbf395a2948cd3fdf5fc67852dbfd1188e2cd Mon Sep 17 00:00:00 2001 From: Louis Le Lay Date: Sun, 14 Jun 2026 00:47:08 +0200 Subject: [PATCH] Add dark mode toggle to scene GUI Uses viser's configure_theme API to let users switch between dark and light themes at runtime. Co-authored-by: Cursor --- src/mjviser/scene.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mjviser/scene.py b/src/mjviser/scene.py index 9923e8c..b2677f4 100644 --- a/src/mjviser/scene.py +++ b/src/mjviser/scene.py @@ -370,6 +370,7 @@ def create_scene_gui( camera_distance: float = -1.0, camera_azimuth: float = 120.0, camera_elevation: float = 20.0, + dark_mode: bool = True, ) -> None: """Add camera and environment controls into the current GUI context. @@ -378,7 +379,18 @@ def create_scene_gui( from model extent. camera_azimuth: Default camera azimuth angle in degrees. camera_elevation: Default camera elevation angle in degrees. + dark_mode: Initial dark mode state. """ + self.server.gui.configure_theme(dark_mode=dark_mode) + + dark_mode_cb = self.server.gui.add_checkbox( + "Dark mode", initial_value=dark_mode + ) + + @dark_mode_cb.on_update + def _(_) -> None: + self.server.gui.configure_theme(dark_mode=dark_mode_cb.value) + if self.num_envs > 1: with self.server.gui.add_folder("Environment"): env_slider = self.server.gui.add_slider(