Skip to content

Add guide-driven physical rubber authoring - #568

Draft
freezy wants to merge 9 commits into
masterfrom
feature/rubber-system
Draft

Add guide-driven physical rubber authoring#568
freezy wants to merge 9 commits into
masterfrom
feature/rubber-system

Conversation

@freezy

@freezy freezy commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • import every VPX rubber as a modern manual Unity spline while keeping VPX collider and slingshot behavior in Legacy mode
  • add stable guide support slots, circular post autofit, transactional guided rebakes, package round-trips, and editor authoring tools
  • add a Physical round-cord collider model with swept-circle contacts and hardened slow/degenerate/transformed collision handling
  • add calibrated physical slingshot authoring, validation, serialization, and device integration surfaces while keeping runtime actuation gated

Tests

  • Unity 6000.5 EditMode: targeted rubber feature suite (47 passed)
  • Unity 6000.5 EditMode: RubberSlingshotTests after final hardening (11 passed)
  • Unity 6000.5 EditMode: RubberAutofitTests and SweptCircleColliderTests review-fix regression suite (33 passed)
  • branch diff passes git diff --check

Compatibility

  • VPX imports never autofit and always select the Legacy collider model
  • VPX slingshot segments keep their existing legacy behavior
  • experimental cord deformation and physical slingshot runtime registration remain unavailable pending calibration/runtime gates

@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds guide-driven rubber authoring and a new physical rubber path. The main changes are:

  • Guided rubber bindings, slots, autofit, and editor commands.
  • Physical round-cord collider generation with Legacy fallback.
  • Physical slingshot authoring, validation, packaging, and inspector tools.
  • Package serialization for guided rubber state and physical rubber settings.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
VisualPinball.Unity/VisualPinball.Unity/VPT/Rubber/RubberApi.cs Adds physical collider generation and falls back to Legacy collision when guided data is not usable.
VisualPinball.Unity/VisualPinball.Unity/VPT/Rubber/RubberColliderComponent.cs Adds rubber collider mode, physical material storage, and guided-path availability checks.
VisualPinball.Unity/VisualPinball.Unity/VPT/Rubber/RubberComponent.cs Adds guided rubber state, baked path storage, restore helpers, and detach/reset behavior.
VisualPinball.Unity/VisualPinball.Unity.Editor/VPT/Rubber/RubberInspector.cs Adds guided-path editing UI with delayed binding changes and failed-bake rollback.
VisualPinball.Unity/VisualPinball.Unity.Editor/VPT/Rubber/RubberColliderInspector.cs Adds collider model selection and prevents enabling Physical mode without a valid guided bake.

Reviews (3): Last reviewed commit: "rubber: harden invalid guided state" | Re-trigger Greptile

@freezy

freezy commented Jul 14, 2026

Copy link
Copy Markdown
Owner Author

Addressed both review findings in 31ba62d: guided binding edits now require a concrete slot and remain transactional, while invalid Physical rubber falls back to Legacy colliders. Focused autofit/collider tests pass 33/33.

Base automatically changed from refactor/splines to master August 11, 2026 22:07
@freezy
freezy force-pushed the feature/rubber-system branch from 31ba62d to 338133c Compare August 23, 2026 20:18
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.

1 participant