Skip to content

🛠️ Fixer: Improve Suspension Bottoming Reliability and Feel#135

Open
google-labs-jules[bot] wants to merge 1 commit intomainfrom
fix-bottoming-reliability-17041721125058709674
Open

🛠️ Fixer: Improve Suspension Bottoming Reliability and Feel#135
google-labs-jules[bot] wants to merge 1 commit intomainfrom
fix-bottoming-reliability-17041721125058709674

Conversation

@google-labs-jules
Copy link
Contributor

This PR addresses reports that the Suspension Bottoming effect was ineffective or non-functional, particularly on DLC cars.

Key improvements:

  1. Perception: Increased the base magnitude of the bottoming effect (5x) to provide a "heavy jolt" feel rather than a subtle vibration.
  2. Sensitivity: Increased the ride height threshold for scraping from 2mm to 10mm, as 2mm was too conservative for most vehicles.
  3. Reliability (DLC Cars): Standard LMU telemetry often encrypts/omits Tire Load and Suspension Force for DLC content. I implemented fallbacks that use the kinematic load average and vertical acceleration derivatives to trigger bottoming when standard data is missing.
  4. Safety: Added std::clamp to all intensity calculations and an explicit reset of the bottoming_crunch context variable to prevent FFB spikes or stuck forces during physics glitches.
  5. Cross-Platform: Introduced a NOINLINE macro to support both MSVC and GCC, fixing Linux build errors.
  6. Tests: Fixed regressions in the coverage suite and added new test cases verifying that bottoming now triggers correctly even when primary telemetry is zeroed out.

Verified with 260/260 passing test cases on Linux (Headless).


PR created automatically by Jules for task 17041721125058709674 started by @coasting-nc

- Increase BASE_NM_BOTTOMING from 1.0f to 5.0f for more perceptible jolts.
- Relax ride height scraping threshold from 2mm to 10mm for better sensitivity.
- Implement fallbacks for missing mTireLoad and mSuspForce, enabling bottoming effects for DLC cars.
- Add safety clamping to intensity calculations to prevent FFB spikes.
- Explicitly reset bottoming output every frame to prevent stuck forces.
- Define cross-platform NOINLINE macro in FFBEngine.h.
- Fix broken coverage tests in test_ffb_coverage_refactor.cpp.
- Add reliability regression tests in test_ffb_road_texture.cpp.
@google-labs-jules
Copy link
Contributor Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants