diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-05-25 11:05:00 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2024-05-25 12:00:15 +0200 |
| commit | fdd935dbf13d02b3b08a139baca8a96aa5a3247e (patch) | |
| tree | b7c3c9050578a8f952474a54defd7c004330ecb7 /src_testbed/ui.rs | |
| parent | 62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38 (diff) | |
| download | rapier-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.rs | 33 |
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"), |
