aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/ui.rs
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-05-25 11:05:00 +0200
committerSébastien Crozet <sebastien@crozet.re>2024-05-25 12:00:15 +0200
commitfdd935dbf13d02b3b08a139baca8a96aa5a3247e (patch)
treeb7c3c9050578a8f952474a54defd7c004330ecb7 /src_testbed/ui.rs
parent62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38 (diff)
downloadrapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.tar.gz
rapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.tar.bz2
rapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.zip
feat: make the constraints regularization coefficients configurable with angular frequency instead of explicit ERP
Diffstat (limited to 'src_testbed/ui.rs')
-rw-r--r--src_testbed/ui.rs33
1 files changed, 28 insertions, 5 deletions
diff --git a/src_testbed/ui.rs b/src_testbed/ui.rs
index 7f3bdac..491e15c 100644
--- a/src_testbed/ui.rs
+++ b/src_testbed/ui.rs
@@ -162,7 +162,7 @@ pub fn update_ui(
ui.add(
Slider::new(
&mut integration_parameters.num_internal_stabilization_iterations,
- 1..=100,
+ 0..=100,
)
.text("max internal stabilization iters."),
);
@@ -170,12 +170,35 @@ pub fn update_ui(
Slider::new(&mut integration_parameters.warmstart_coefficient, 0.0..=1.0)
.text("warmstart coefficient"),
);
- ui.add(Slider::new(&mut integration_parameters.erp, 0.0..=1.0).text("erp"));
+
+ let mut substep_params = *integration_parameters;
+ substep_params.dt /= substep_params.num_solver_iterations.get() as f32;
+ let curr_erp = substep_params.erp();
+ let curr_cfm_factor = substep_params.cfm_factor();
+ ui.add(
+ Slider::new(
+ &mut integration_parameters.contact_natural_frequency,
+ 0.0..=120.0,
+ )
+ .text(format!("contacts Hz (erp = {:.3})", curr_erp)),
+ );
ui.add(
- Slider::new(&mut integration_parameters.damping_ratio, 0.0..=20.0)
- .text("damping ratio"),
+ Slider::new(
+ &mut integration_parameters.contact_damping_ratio,
+ 0.0..=20.0,
+ )
+ .text(format!(
+ "damping ratio (cfm-factor = {:.3})",
+ curr_cfm_factor
+ )),
+ );
+ ui.add(
+ Slider::new(
+ &mut integration_parameters.joint_natural_frequency,
+ 0.0..=1200000.0,
+ )
+ .text("joint erp"),
);
- ui.add(Slider::new(&mut integration_parameters.joint_erp, 0.0..=1.0).text("joint erp"));
ui.add(
Slider::new(&mut integration_parameters.joint_damping_ratio, 0.0..=20.0)
.text("joint damping ratio"),