- Update defaults from test-driven optimization:
BufferTime=200ms, DiscardTime=30ms, Sensitivity=3.0,
DeadZone=0.95, MinSpeed=0.0, Damping=5.0
- Add ShotFired column to CSV recording for contamination analysis
- Rewrite Python optimizer with 6-parameter search (sensitivity,
dead zone, min speed, damping, buffer time, discard time)
- Fix velocity weighting order bug in Python simulation
- Add dead zone, min speed threshold, and damping to Python sim
- Add shot contamination analysis (analyze_shots.py) to measure
exact IMU perturbation duration per shot
- Support multi-file optimization with mean/worst_case strategies
- Add jitter and overshoot scoring metrics
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add AdaptiveMinSpeed UPROPERTY (default 30 cm/s) to avoid false deceleration at low speeds
- Update default values: BufferTime=300ms, DiscardTime=40ms, Sensitivity=1.5, Damping=8.0
- Replace debug spheres with points to not obstruct aiming view
- Add detailed debug logs with [LOW]/[DZ]/[DEC] tags for dead zone diagnosis
- Convert buffer/discard time units to milliseconds
- Set AdaptiveExtrapolation as default AntiRecoil mode
- Fix DLL copy error handling in DinkeyPlugin and ViveVBS build scripts
- Add AimStabilization dead zone with smooth transition (no hard jumps)
- Add AimSmoothingSpeed property for temporal aim smoothing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace variance-based confidence (caused constant lag) with targeted
deceleration detection: compares recent speed (last 25% of safe window)
to average speed. During steady movement ratio≈1 → zero lag.
Only reduces extrapolation when actual braking is detected.
- AdaptiveSensitivity: now a power exponent (0.1-5.0, default 1.0)
- AdaptiveDeadZone: new parameter (default 0.8) to ignore normal
speed fluctuations and only react to real deceleration
- DebugAntiRecoilHUD: real-time display of ratio, confidence, speeds, errors
- EndPlay: auto-close CSV file when stopping play (no more locked files)
- Python script updated to match new deceleration-based algorithm
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Anti-recoil prediction improvements:
- New ARM_AdaptiveExtrapolation mode: velocity variance-based confidence
with separate pos/aim tracking and low-speed protection
- New ARM_WeightedLinearRegression mode: preserves original simple linear fit
- ARM_WeightedRegression upgraded to quadratic (y=a+bt+ct²) with
linear/quadratic blend and velocity-reversal clamping
- ExtrapolationDamping parameter (all modes): exp decay on extrapolated velocity
- CSV recording (RecordPredictionCSV) for offline parameter tuning
- Python analysis tool (Tools/analyze_antirecoil.py) to find optimal
AdaptiveSensitivity from recorded data
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Only the top-level plugin folder is renamed. Internal module name
and .uplugin file remain unchanged (EasyBallistics).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds detailed tooltips (units, ranges, behavior, examples) to 82 UPROPERTY
across EBBullet.h (42), EBBarrel.h (25), and EBMaterialResponseMap.h (15).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set Kalman Filter as default mode with tuned parameters:
BufferTime=0.15, DiscardTime=0.03, KalmanProcessNoise=200,
KalmanMeasurementNoise=0.01, RegressionWeightExponent=3.0,
DebugAntiRecoilLineThickness=0.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Save and restore OwnerSafe state during retrace to prevent the bullet
from hitting the owner's actors when replaying a previous trace where
OwnerSafe was true. Also fix debug DrawDebugLine in Trace.cpp to use
proper velocity-based colors instead of hardcoded values.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>