From 6dae0037ae4fe1bb054a2cb8e295518e28c7c7d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crozet?= Date: Sat, 8 Aug 2026 23:03:51 +0200 Subject: [PATCH 1/2] feat: add Window and GraphicsManager accessors to the testbed --- src_testbed/viewer.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src_testbed/viewer.rs b/src_testbed/viewer.rs index 45a928b72..7b71c6672 100644 --- a/src_testbed/viewer.rs +++ b/src_testbed/viewer.rs @@ -419,6 +419,28 @@ impl TestbedViewer { self.window.egui_context_mut() } + /// The underlying kiss3d window. + pub fn window(&self) -> &Window { + &self.window + } + + /// The graphics manager owning the kiss3d scene. + pub fn graphics(&self) -> &GraphicsManager { + &self.graphics + } + + /// Mutable access to the graphics manager owning the kiss3d scene, e.g. to + /// add custom render nodes from an example's render loop. + pub fn graphics_mut(&mut self) -> &mut GraphicsManager { + &mut self.graphics + } + + /// Mutable access to the underlying kiss3d window, e.g. for immediate-mode + /// drawing (`draw_point`, `draw_line`, ...) from an example's render loop. + pub fn window_mut(&mut self) -> &mut Window { + &mut self.window + } + // ───────────────────────────── registry / loop ────────────────────────── /// Display index of the example the UI currently has selected, clamped to a From b765a85d54e99ace29303a734a61c6582e16f863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crozet?= Date: Sat, 8 Aug 2026 23:05:39 +0200 Subject: [PATCH 2/2] Release v0.35.1 --- CHANGELOG.md | 7 +++++++ Cargo.toml | 26 +++++++++++++------------- crates/rapier_testbed2d-f64/Cargo.toml | 2 +- crates/rapier_testbed2d/Cargo.toml | 2 +- crates/rapier_testbed3d-f64/Cargo.toml | 2 +- crates/rapier_testbed3d/Cargo.toml | 2 +- python/rapier-testbed/pyproject.toml | 2 +- 7 files changed, 25 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b071446..533e05758 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## v0.35.1 (08 August 2026) + +### Added + +- Added public access to the testbed’s `Window` and `GraphicsManager` to enable custom + rendering on third-party examples. + ## v0.35.0 (08 August 2026) ### Added diff --git a/Cargo.toml b/Cargo.toml index 6f84f55f9..62c24621e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,7 @@ exclude = ["typescript"] resolver = "2" [workspace.package] -version = "0.35.0" +version = "0.35.1" authors = ["Sébastien Crozet "] homepage = "https://rapier.rs" repository = "https://github.com/dimforge/rapier" @@ -124,18 +124,18 @@ getrandom = { version = "0.2", features = ["js"] } wasm-bindgen = "0.2" # Internal crates (paths are relative to the workspace root) -rapier2d = { version = "0.35.0", path = "crates/rapier2d" } -rapier2d-f64 = { version = "0.35.0", path = "crates/rapier2d-f64" } -rapier3d = { version = "0.35.0", path = "crates/rapier3d" } -rapier3d-f64 = { version = "0.35.0", path = "crates/rapier3d-f64" } -rapier_testbed2d = { version = "0.35.0", path = "crates/rapier_testbed2d" } -rapier_testbed2d-f64 = { version = "0.35.0", path = "crates/rapier_testbed2d-f64" } -rapier_testbed3d = { version = "0.35.0", path = "crates/rapier_testbed3d" } -rapier_testbed3d-f64 = { version = "0.35.0", path = "crates/rapier_testbed3d-f64" } -rapier3d-urdf = { version = "0.35.0", path = "crates/rapier3d-urdf" } -rapier3d-meshloader = { version = "0.35.0", path = "crates/rapier3d-meshloader", default-features = false } -mjcf-rs = { version = "0.35.0", path = "crates/mjcf-rs" } -rapier3d-mjcf = { version = "0.35.0", path = "crates/rapier3d-mjcf" } +rapier2d = { version = "0.35.1", path = "crates/rapier2d" } +rapier2d-f64 = { version = "0.35.1", path = "crates/rapier2d-f64" } +rapier3d = { version = "0.35.1", path = "crates/rapier3d" } +rapier3d-f64 = { version = "0.35.1", path = "crates/rapier3d-f64" } +rapier_testbed2d = { version = "0.35.1", path = "crates/rapier_testbed2d" } +rapier_testbed2d-f64 = { version = "0.35.1", path = "crates/rapier_testbed2d-f64" } +rapier_testbed3d = { version = "0.35.1", path = "crates/rapier_testbed3d" } +rapier_testbed3d-f64 = { version = "0.35.1", path = "crates/rapier_testbed3d-f64" } +rapier3d-urdf = { version = "0.35.1", path = "crates/rapier3d-urdf" } +rapier3d-meshloader = { version = "0.35.1", path = "crates/rapier3d-meshloader", default-features = false } +mjcf-rs = { version = "0.35.1", path = "crates/mjcf-rs" } +rapier3d-mjcf = { version = "0.35.1", path = "crates/rapier3d-mjcf" } # Dev bincode = "1" diff --git a/crates/rapier_testbed2d-f64/Cargo.toml b/crates/rapier_testbed2d-f64/Cargo.toml index 06a992803..89fc8e4ab 100644 --- a/crates/rapier_testbed2d-f64/Cargo.toml +++ b/crates/rapier_testbed2d-f64/Cargo.toml @@ -60,5 +60,5 @@ env_logger.workspace = true [dependencies.rapier] package = "rapier2d-f64" path = "../rapier2d-f64" -version = "0.35.0" +version = "0.35.1" features = ["serde-serialize", "debug-render", "profiler"] diff --git a/crates/rapier_testbed2d/Cargo.toml b/crates/rapier_testbed2d/Cargo.toml index 3e58c9735..6e8d7a945 100644 --- a/crates/rapier_testbed2d/Cargo.toml +++ b/crates/rapier_testbed2d/Cargo.toml @@ -60,5 +60,5 @@ env_logger.workspace = true [dependencies.rapier] package = "rapier2d" path = "../rapier2d" -version = "0.35.0" +version = "0.35.1" features = ["serde-serialize", "debug-render", "profiler"] diff --git a/crates/rapier_testbed3d-f64/Cargo.toml b/crates/rapier_testbed3d-f64/Cargo.toml index 23dc5bab3..9ab7a44fe 100644 --- a/crates/rapier_testbed3d-f64/Cargo.toml +++ b/crates/rapier_testbed3d-f64/Cargo.toml @@ -60,5 +60,5 @@ env_logger.workspace = true [dependencies.rapier] package = "rapier3d-f64" path = "../rapier3d-f64" -version = "0.35.0" +version = "0.35.1" features = ["serde-serialize", "debug-render", "profiler"] diff --git a/crates/rapier_testbed3d/Cargo.toml b/crates/rapier_testbed3d/Cargo.toml index ef2d11c01..04da5ef85 100644 --- a/crates/rapier_testbed3d/Cargo.toml +++ b/crates/rapier_testbed3d/Cargo.toml @@ -60,5 +60,5 @@ env_logger.workspace = true [dependencies.rapier] package = "rapier3d" path = "../rapier3d" -version = "0.35.0" +version = "0.35.1" features = ["serde-serialize", "debug-render", "profiler"] diff --git a/python/rapier-testbed/pyproject.toml b/python/rapier-testbed/pyproject.toml index 1db7934ff..67f0f285f 100644 --- a/python/rapier-testbed/pyproject.toml +++ b/python/rapier-testbed/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "rapier-testbed" -version = "0.35.0" +version = "0.35.1" description = "Panda3D-based visual testbed and example gallery for the Rapier Python bindings." readme = "README.md" license = { text = "Apache-2.0" }