VE Lua Documentation

Press F to search!

newTemporalSmoothing

Definition


-- @/lua/common/filters.lua:350

function newTemporalSmoothing(inRate, outRate, autoCenterRate, startingValue)
  inRate = max(inRate or 1, 1e-307)
  startingValue = startingValue or 0

  local data = {[false] = inRate, [true] = max(outRate or inRate, 1e-307), autoCenterRate = max(autoCenterRate or inRate, 1e-307), _startingValue = startingValue, state = startingValue}
  setmetatable(data, temporalSmoothing)

  if data.autoCenterRate ~= inRate then
    data.getUncapped = data.getUncappedAutoCenter
  end
  return data
end

Callers

@/lua/ge/extensions/gameplay/drift/scoring.lua
local smoothedSteppedPerformanceFactor = 0
local performanceSmoother = newTemporalSmoothing(8, 8) -- Adjust these values to control smoothing speed
@/lua/vehicle/sounds.lua
  local wh = {
    asphaltContactSmoother = newTemporalSmoothing(4, 4),
    asphaltwetContactSmoother = newTemporalSmoothing(4, 4),
    asphaltContactSmoother = newTemporalSmoothing(4, 4),
    asphaltwetContactSmoother = newTemporalSmoothing(4, 4),
    cobbleStoneContactSmoother = newTemporalSmoothing(4, 4),
    asphaltwetContactSmoother = newTemporalSmoothing(4, 4),
    cobbleStoneContactSmoother = newTemporalSmoothing(4, 4),
    dirtContactSmoother = newTemporalSmoothing(2, 4),
    cobbleStoneContactSmoother = newTemporalSmoothing(4, 4),
    dirtContactSmoother = newTemporalSmoothing(2, 4),
    dirtDustyContactSmoother = newTemporalSmoothing(2, 4),
    dirtContactSmoother = newTemporalSmoothing(2, 4),
    dirtDustyContactSmoother = newTemporalSmoothing(2, 4),
    grassContactSmoother = newTemporalSmoothing(2, 4),
    dirtDustyContactSmoother = newTemporalSmoothing(2, 4),
    grassContactSmoother = newTemporalSmoothing(2, 4),
    gravelContactSmoother = newTemporalSmoothing(2, 4),
    grassContactSmoother = newTemporalSmoothing(2, 4),
    gravelContactSmoother = newTemporalSmoothing(2, 4),
    metalContactSmoother = newTemporalSmoothing(4, 4),
    gravelContactSmoother = newTemporalSmoothing(2, 4),
    metalContactSmoother = newTemporalSmoothing(4, 4),
    mudContactSmoother = newTemporalSmoothing(2, 4),
    metalContactSmoother = newTemporalSmoothing(4, 4),
    mudContactSmoother = newTemporalSmoothing(2, 4),
    iceContactSmoother = newTemporalSmoothing(4, 4),
    mudContactSmoother = newTemporalSmoothing(2, 4),
    iceContactSmoother = newTemporalSmoothing(4, 4),
    rockContactSmoother = newTemporalSmoothing(2, 4),
    iceContactSmoother = newTemporalSmoothing(4, 4),
    rockContactSmoother = newTemporalSmoothing(2, 4),
    sandContactSmoother = newTemporalSmoothing(2, 4),
    rockContactSmoother = newTemporalSmoothing(2, 4),
    sandContactSmoother = newTemporalSmoothing(2, 4),
    woodContactSmoother = newTemporalSmoothing(4, 4),
    sandContactSmoother = newTemporalSmoothing(2, 4),
    woodContactSmoother = newTemporalSmoothing(4, 4),
    loosenessSmoother = newTemporalSmoothing(5, 5),
    woodContactSmoother = newTemporalSmoothing(4, 4),
    loosenessSmoother = newTemporalSmoothing(5, 5),
    rumbleStripContactSmoother = newTemporalSmoothing(3, 10000),
    loosenessSmoother = newTemporalSmoothing(5, 5),
    rumbleStripContactSmoother = newTemporalSmoothing(3, 10000),
    rumbleStripHighSpeedContactSmoother = newTemporalSmoothing(1, 1),
    rumbleStripContactSmoother = newTemporalSmoothing(3, 10000),
    rumbleStripHighSpeedContactSmoother = newTemporalSmoothing(1, 1),
    pressureSmoother = newTemporalSmoothingNonLinear(1, 1),
@/lua/vehicle/wheels.lua
      wd.brakeSquealLoop = sounds.createSoundObj(wd.brakeSquealLoop or "event:>Vehicle>Failures>failure_brakes_normal", "AudioDefaultLoop3D", "", wd.node1)
      wd.brakeSquealVolumeSmoother = newTemporalSmoothing(100, 4)
    end
@/lua/ge/extensions/ui/apps/minimap/vehicles.lua
local localFwd = vec3(0,1,0)
local velSmoother = newTemporalSmoothing(0.25,0.5, nil, 1)
local walkSmoother = newTemporalSmoothing(2,1, nil, 1)
local velSmoother = newTemporalSmoothing(0.25,0.5, nil, 1)
local walkSmoother = newTemporalSmoothing(2,1, nil, 1)
local playerVehicle = nil
@/lua/vehicle/controller/drivingDynamics/supervisors/components/aeroControl.lua

local reduceOversteerSmoother = newTemporalSmoothing(1, 1000)
@/lua/ge/client/postFx/dof.lua
-- Add temporal smoothing helper
local viewSmoother = newTemporalSmoothing()
local afSpeed = 150 -- Adjust this value to control smoothing speed (higher = faster)
@/lua/vehicle/powertrain/turbocharger.lua
local bovSound
local antilagCoefSmoother = newTemporalSmoothing(10, 1000)
  invTurboInertia = 1 / (0.000003 * turboInertiaFactor * 2.5)
  pressureSmoother = newTemporalSmoothing(200 * constants.psiToPascal, (turbo.pressureRatePSI or 30) * constants.psiToPascal)
  wastegateSmoother = newTemporalSmoothing(50, 50)
  pressureSmoother = newTemporalSmoothing(200 * constants.psiToPascal, (turbo.pressureRatePSI or 30) * constants.psiToPascal)
  wastegateSmoother = newTemporalSmoothing(50, 50)
  ignitionCutSmoother = newTemporalSmoothing(1, 10)
  wastegateSmoother = newTemporalSmoothing(50, 50)
  ignitionCutSmoother = newTemporalSmoothing(1, 10)
  bovEnabled = (turbo.bovEnabled == nil or turbo.bovEnabled)
@/lua/vehicle/controller/drivingDynamics/sensors/virtualSensors.lua
  isDrivingStraightProbability = 0, --driving in a straight line, power or brakes possible
  isRollingProbabilitySmoother = newTemporalSmoothing(2),
  isStoppedProbabilitySmoother = newTemporalSmoothing(2),
  isRollingProbabilitySmoother = newTemporalSmoothing(2),
  isStoppedProbabilitySmoother = newTemporalSmoothing(2),
  isDrivingStraightProbabilitySmoother = newTemporalSmoothing(2)
  isStoppedProbabilitySmoother = newTemporalSmoothing(2),
  isDrivingStraightProbabilitySmoother = newTemporalSmoothing(2)
}
local smoother = {
  wheelSpeedTrust = newTemporalSmoothing(100, 5)
}
@/lua/vehicle/ai.lua
local targetSpeedSmoother = newTemporalSmoothingNonLinear(10, 10, ego.speed)
local egoDeviationSmoother = newTemporalSmoothing(1)
local smoothTcs = newTemporalSmoothingNonLinear(0.1, 0.9)
local smoothTcs = newTemporalSmoothingNonLinear(0.1, 0.9)
local throttleSmoother = newTemporalSmoothing(1e30, 0.2)
@/lua/ge/extensions/core/cameraModes/relative.lua
  self.manualzoom:reset()
  factorSmoother = newTemporalSmoothing(50,50)
  dxSmoother = newTemporalSmoothing(10,7)
  factorSmoother = newTemporalSmoothing(50,50)
  dxSmoother = newTemporalSmoothing(10,7)
  dySmoother = newTemporalSmoothing(10,7)
  dxSmoother = newTemporalSmoothing(10,7)
  dySmoother = newTemporalSmoothing(10,7)
  dzSmoother = newTemporalSmoothing(10,7)
  dySmoother = newTemporalSmoothing(10,7)
  dzSmoother = newTemporalSmoothing(10,7)
end
@/lua/vehicle/controller/sound/linearMovement.lua
  local velocitySmoothing = jbeamData.velocitySmoothing or 5
  movementVelocitySmoother = newTemporalSmoothing(velocitySmoothing, velocitySmoothing)
  local absVelocitySmoothingOut = jbeamData.absVelocitySmoothingOut or absVelocitySmoothing
  absMovementVelocitySmoother = newTemporalSmoothing(absVelocitySmoothingIn, absVelocitySmoothingOut)
  lastSegmentMod = 0
@/lua/vehicle/powertrain/electricMotor.lua
    engineLoad = 0,
    loadSmoother = newTemporalSmoothing(1, 1),
    throttleSmoother = newTemporalSmoothing(30, 10),
    loadSmoother = newTemporalSmoothing(1, 1),
    throttleSmoother = newTemporalSmoothing(30, 10),
    grossWorkPerUpdate = 0,
@/lua/vehicle/extensions/tech/wheelForces.lua
    data.rimBeamsNode2VectorSum = vec3()
    data.rimBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.rimBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.rimBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    --sidewall beams
    data.sidewallBeamsNode2VectorSum = vec3()
    data.sidewallBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.sidewallBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    --suspension beams
    data.suspensionBeamsNode1VectorSum = vec3()
    data.suspensionBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherX = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode1SmootherZ = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherX = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherY = newTemporalSmoothing(15, 15)
    data.suspensionBeamsNode2SmootherZ = newTemporalSmoothing(15, 15)
    --tread nodes
    data.treadNodesVectorSum = vec3()
    data.treadNodesSmootherX = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherY = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherX = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherY = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherZ = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherY = newTemporalSmoothing(15, 15)
    data.treadNodesSmootherZ = newTemporalSmoothing(15, 15)
@/lua/vehicle/controller/drivingDynamics/supervisors/yawControl.lua
local isActiveSmoothed
local isActiveSmoother = newTemporalSmoothing(10, 5)
@/lua/ge/extensions/gameplay/drift/drift.lua

local accelSmoother = newTemporalSmoothing(0.13,0.13)
local gForceSmoother = newTemporalSmoothing(2,2)
local accelSmoother = newTemporalSmoothing(0.13,0.13)
local gForceSmoother = newTemporalSmoothing(2,2)
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/linear.lua
function C:_executionStarted()
  self.smoother = newTemporalSmoothing()
end
@/lua/vehicle/electrics.lua
  elseif smootherType == "temporal" then
    return newTemporalSmoothing(unpack(params))
  elseif smootherType == "temporalNonLinear" then
@/lua/vehicle/powertrain/supercharger.lua

  pressureSmoother = newTemporalSmoothing((jbeamData.pressureRatePSI or 50) * psiToPascal)
@/lua/vehicle/powertrain/combustionEngineThermals.lua
local oilpanMaximumSafeG = 0
local oilpanAccZSmoother = newTemporalSmoothing(10, 30)
local oilpanAccXYSmoother = newTemporalSmoothing(10, 10)
local oilpanAccZSmoother = newTemporalSmoothing(10, 30)
local oilpanAccXYSmoother = newTemporalSmoothing(10, 10)
local oilStarvingTimer = 0
  lastEngineBlockTemperature = 0,
  engineDeltaTempSmoother = newTemporalSmoothing(10, 10),
  engineNodes = {},
  lastExhaustTemperature = 0,
  exhaustDeltaTempSmoother = newTemporalSmoothing(10, 10),
  exhaustNodes = {},
  end
  electricalRadiatorFanSmoother = newTemporalSmoothing(500, 1000)
@/lua/vehicle/controller/etkGauges.lua
local previousFuel = 0
local fuelSmoother = newTemporalSmoothing(50, 50)
local fuelDisplaySmoother = newTemporalSmoothing(5, 3)
local fuelSmoother = newTemporalSmoothing(50, 50)
local fuelDisplaySmoother = newTemporalSmoothing(5, 3)
local avgFuelSum = 0
@/lua/vehicle/powertrain/combustionEngine.lua
    idleControllerP = jbeamData.idleControllerP or 0.01,
    idleThrottleSmoother = newTemporalSmoothing(jbeamData.idleSmoothingDown or 100, jbeamData.idleSmoothingUp or 100),
    maxRPM = jbeamData.maxRPM,
    lastOutputTorque = 0,
    loadSmoother = newTemporalSmoothing(2, 2),
    throttleSmoother = newTemporalSmoothing(30, 15),
    loadSmoother = newTemporalSmoothing(2, 2),
    throttleSmoother = newTemporalSmoothing(30, 15),
    engineLoad = 0,
  local idleReadErrorRate = jbeamData.idleRPMRoughnessRate or device.idleAVReadErrorRange * 2
  device.idleAVReadErrorSmoother = newTemporalSmoothing(idleReadErrorRate, idleReadErrorRate)
  device.idleAVReadErrorRangeHalf = device.idleAVReadErrorRange * 0.5
  --slow
  device.slowIgnitionErrorSmoother = newTemporalSmoothing(2, 2)
  device.slowIgnitionErrorTimer = 0
  --fast
  device.fastIgnitionErrorSmoother = newTemporalSmoothing(10, 10)
  device.fastIgnitionErrorChance = 0.0
@/lua/vehicle/extensions/escMeasurement.lua
local currentTargetAngle = 0
local steeringSmoother = newTemporalSmoothing(2, 0.2)
local ccTargetSpeed
local ccThrottleSmoother = newTemporalSmoothing(0.99, 0.99)
local ccDisableSmoother = newTemporalSmoothing(0.5, 0.5)
local ccThrottleSmoother = newTemporalSmoothing(0.99, 0.99)
local ccDisableSmoother = newTemporalSmoothing(0.5, 0.5)
local ccHasReachedTargetSpeed = false
@/lua/vehicle/controller/drivingDynamics/sensors/sensorHub.lua

local accXNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accXNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accXNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accXNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accXNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accZNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accYNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accZNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accZNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
local accZNoiseUpperSmoother = newTemporalSmoothing(5, 100000)
local accZNoiseLowerSmoother = newTemporalSmoothing(5, 100000)
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua

  self.bigMapMarkerAlphaSmoother = newTemporalSmoothing()
@/lua/ge/extensions/gameplay/util/crashDetection.lua
    if not point.smootherAcc then
      point.smootherAcc = newTemporalSmoothing(700, 700)
    end
@/gameplay/missionTypes/hypermiling/fluidConsumptionToGraph.lua
        time = now,
        gFuelSmoother = newTemporalSmoothing(50, 50),
        avgConsumptionSmoother = newExponentialSmoothing(2000),
        avgConsumptionSmoother = newExponentialSmoothing(2000),
        lpsConsumption = newTemporalSmoothing(0.05, 0.08),
        startFuel = electrics.values.fuelVolume
@/lua/common/luaProfiler.lua
local function computeStats(result, slow, fast, value, dt)
  result.smSlow = result.smSlow or newTemporalSmoothing(slow)
  result.smFast = result.smFast or newTemporalSmoothing(fast)
  result.smSlow = result.smSlow or newTemporalSmoothing(slow)
  result.smFast = result.smFast or newTemporalSmoothing(fast)
  local smTotalSlow = result.smSlow:getUncapped(value, dt)
@/lua/vehicle/controller/vehicleController/shiftLogic/automaticGearbox.lua
    local lockupOutRate = jbeamData.torqueConverterLockupOutRate or lockupRate
    torqueConverterHandling.lockupSmoother = newTemporalSmoothing(lockupInRate, lockupOutRate)
@/lua/ge/extensions/gameplay/markers/missionMarker.lua
  self.iconMeshId = nil
  self.decalAlphaSmoother = newTemporalSmoothing()
  self.ringAlphaSmoother = newTemporalSmoothing()
  self.decalAlphaSmoother = newTemporalSmoothing()
  self.ringAlphaSmoother = newTemporalSmoothing()
  self.bigMapSmoother = newTemporalSmoothing()
  self.ringAlphaSmoother = newTemporalSmoothing()
  self.bigMapSmoother = newTemporalSmoothing()
  self.iconAlphaSmoother = newTemporalSmoothing()
  self.bigMapSmoother = newTemporalSmoothing()
  self.iconAlphaSmoother = newTemporalSmoothing()
  self.iconPositionSmoother = newTemporalSmoothingNonLinear(10,10)
@/lua/vehicle/controller/esc.lua
        tcsActive = false,
        allWheelSlipSmoother = newTemporalSmoothing(10, 10),
        allWheelSlip = 0
  desiredYawSmooth = newExponentialSmoothing(currentESCConfiguration.desiredYawRateSmoothing)
  lateralAccSmoother = newTemporalSmoothing(100, 100)
@/lua/ge/extensions/core/cameraModes/driver.lua

local dxSmoother = newTemporalSmoothing(3,1)
local dySmoother = newTemporalSmoothing(3,1)
local dxSmoother = newTemporalSmoothing(3,1)
local dySmoother = newTemporalSmoothing(3,1)
local dzSmoother = newTemporalSmoothing(3,1)
local dySmoother = newTemporalSmoothing(3,1)
local dzSmoother = newTemporalSmoothing(3,1)
@/lua/vehicle/controller/braking/adaptiveBrakeLights.lua
  blinkPulse = 1
  absActiveSmoother = newTemporalSmoothing(2, 2)
  escActiveSmoother = newTemporalSmoothing(2, 2)
  absActiveSmoother = newTemporalSmoothing(2, 2)
  escActiveSmoother = newTemporalSmoothing(2, 2)
  emergencyBrakingHazardsArmed = false
@/lua/vehicle/extensions/cruiseControl.lua
local disableOnReset = false
local throttleSmooth = newTemporalSmoothing(200, 200)
local speedPID = newPIDStandard(0.3, 2, 0.0, 0, 1, 1, 1, 0, 1)
@/lua/ge/extensions/core/cameraModes/external.lua
    if self.isFanMode then
      self.autozoom:init(newTemporalSmoothing(15, 15))
      self.autozoom.steps = { {  0, z*70}, {1.5, z*60}, {  3, z*40}, {  6, z*30}, { 10, z*25}, { 40, z*15}, { 90, z*15}, {150, z*15} }
@/lua/vehicle/controller/vehicleController/vehicleController.lua

  smoother.throttle = newTemporalSmoothing(throttleSmoothingIn, throttleSmoothingOut)
  smoother.brake = newTemporalSmoothing(brakeSmoothingIn, brakeSmoothingOut)
  smoother.throttle = newTemporalSmoothing(throttleSmoothingIn, throttleSmoothingOut)
  smoother.brake = newTemporalSmoothing(brakeSmoothingIn, brakeSmoothingOut)
  smoother.throttleInput = newTemporalSmoothing(throttleSmoothingIn * 2, throttleSmoothingOut * 2)
  smoother.brake = newTemporalSmoothing(brakeSmoothingIn, brakeSmoothingOut)
  smoother.throttleInput = newTemporalSmoothing(throttleSmoothingIn * 2, throttleSmoothingOut * 2)
  smoother.brakeInput = newTemporalSmoothing(brakeSmoothingIn * 2, brakeSmoothingOut * 2)
  smoother.throttleInput = newTemporalSmoothing(throttleSmoothingIn * 2, throttleSmoothingOut * 2)
  smoother.brakeInput = newTemporalSmoothing(brakeSmoothingIn * 2, brakeSmoothingOut * 2)
  smoother.aggressionAxis = newTemporalSmoothingNonLinear(aggressionSmoothingIn, aggressionSmoothingOut)
  smoother.wheelSlipShiftUp = newTemporalSmoothingNonLinear(wheelSlipShiftUpSmoothingIn, wheelSlipShiftUpSmoothingOut)
  smoother.groundContactSmoother = newTemporalSmoothing(100, 2)
@/lua/vehicle/controller/hydraulicSuspension.lua
local lastFrameBeamLengths
local releaseSoundVolumeSmoother = newTemporalSmoothing(1, 1)
@/lua/vehicle/extensions/gameplayInterfaceModules/interactCargoContainers.lua
      smoothers = {
        volume = newTemporalSmoothing(container.maxVolumeRate or 1000, container.maxVolumeRate or 1000),
        density = newTemporalSmoothing(2, 2, nil, 1) -- need to smooth density? probably...
        volume = newTemporalSmoothing(container.maxVolumeRate or 1000, container.maxVolumeRate or 1000),
        density = newTemporalSmoothing(2, 2, nil, 1) -- need to smooth density? probably...
      },
@/lua/vehicle/controller/gauges/customModules/combustionEngineData.lua
local avgConsumptionSmoother = newExponentialSmoothing(1800) --update every 0.5 seconds, use values of last 10 minutes
local fuelDisplaySmoother = newTemporalSmoothing(5, 3)
local previousFuel = 0
local fuelSmoother = newTemporalSmoothing(50, 50)
@/lua/vehicle/controller/braking/hydraulicPumpBrake.lua
  engineRunningThresholdAV = 10
  engineRunningSmoother = newTemporalSmoothing(1, 2)
  frontDamageBeamBrokenCoef = 1
@/lua/ge/extensions/core/cameraModes/chase.lua
  self.camLastRot = vec3()
  self.fwdVeloSmoother = newTemporalSmoothing(100)
  local chaseDirSmoothCoef = 0.0008
  local chaseDirSmoothCoef = 0.0008
  self.dirSmoothX = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothY = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothX = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothY = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothZ = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothY = newTemporalSmoothing(chaseDirSmoothCoef)
  self.dirSmoothZ = newTemporalSmoothing(chaseDirSmoothCoef)
  self.lastDataPos = vec3()
@/lua/vehicle/controller/playerController.lua
local ballBasedPlayerVelocity = vec3(0, 0, 0)
local ballTorqueSmoother = newTemporalSmoothing(10, 1)
@/lua/vehicle/controller/propAnimation/hPattern.lua

local xSmoother = newTemporalSmoothing(10, 10)
local ySmoother = newTemporalSmoothing(10, 10)
local xSmoother = newTemporalSmoothing(10, 10)
local ySmoother = newTemporalSmoothing(10, 10)
local isShiftingSmoother = newTemporalSmoothing(1, 1000000)
local ySmoother = newTemporalSmoothing(10, 10)
local isShiftingSmoother = newTemporalSmoothing(1, 1000000)
@/gameplay/missionTypes/scatterPickup/customNodes/scatterStuffInZonesNode.lua
        visible = false,
        visibleSmoother = newTemporalSmoothing(),
        id = #icons+1,
@/lua/vehicle/controller/propAnimation/dualAxisLever.lua
  local ySmootherRate = jbeamData.smootherRateY or 4
  xSmoother = newTemporalSmoothing(xSmootherRate, ySmootherRate)
  ySmoother = newTemporalSmoothing(xSmootherRate, ySmootherRate)
  xSmoother = newTemporalSmoothing(xSmootherRate, ySmootherRate)
  ySmoother = newTemporalSmoothing(xSmootherRate, ySmootherRate)
@/lua/vehicle/controller/drivingDynamics/sensors/vehicleData.lua
local smoothers = {
  turningCircleAcc = newTemporalSmoothing(100, 100)
}
@/lua/ge/extensions/freeroam/bigMapMode.lua

local groundMarkerAlphaSmoother = newTemporalSmoothing()
local fogDensitySmoother = newTemporalSmoothing()
local groundMarkerAlphaSmoother = newTemporalSmoothing()
local fogDensitySmoother = newTemporalSmoothing()
local shadowLogWeightSmoother = newTemporalSmoothing()
local fogDensitySmoother = newTemporalSmoothing()
local shadowLogWeightSmoother = newTemporalSmoothing()
local shadowDistanceSmoother = newTemporalSmoothing()
local shadowLogWeightSmoother = newTemporalSmoothing()
local shadowDistanceSmoother = newTemporalSmoothing()
local routeAnimCounter = 1
@/lua/ge/extensions/scenario/busdriver.lua
    local acc = currAcc:rotated(quatFromDir(fwd, up):inversed():normalized())
    if not smootherAcc then smootherAcc = newTemporalSmoothing(15, 5) end
    local jer = currJer:length() * jerkMultiplier
    if not smootherJer then smootherJer = newTemporalSmoothing(30000*jerkMultiplier, jerkMultiplier*5000000) end
    local smJer = smootherJer:getUncapped(jer, dtSim)
@/lua/vehicle/controller/drivingDynamics/supervisors/tractionControl.lua
local isActiveSmoothed
local isActiveSmoother = newTemporalSmoothing(10, 5)
@/lua/vehicle/controller/bypassDampers.lua
      initialBeamLength = obj:getBeamRestLength(beamNameLookup[damperData.beamName]),
      directionSmoother = newTemporalSmoothing(500, 500),
      currentZoneId = nil,
@/lua/vehicle/recovery.lua
local blendTime = 0
local snapshotTimeSmoother = newTemporalSmoothing(0.5)
local useSmartSpawn = true
@/lua/vehicle/controller/drivingDynamics/supervisors/components/motorTorqueControl.lua
          minimumThrottleLimit = minimumThrottleLimit,
          throttleFactorSmoother = newTemporalSmoothing(5, 5) --TODO Expose to jbeam
        }
@/lua/vehicle/input.lua
local gxSmoothMax = 0
local gx_Smoother = newTemporalSmoothing(4) -- it acts like a timer
local velVec = vec3()
local frontWheels = {}
local smUndersteer1 = newTemporalSmoothing()
local smUndersteer2 = newTemporalSmoothing()
local smUndersteer1 = newTemporalSmoothing()
local smUndersteer2 = newTemporalSmoothing()
local smOversteer = newTemporalSmoothing()
local smUndersteer2 = newTemporalSmoothing()
local smOversteer = newTemporalSmoothing()
-- slower steering at high speed
      filter = 0,
      smootherKBD = newTemporalSmoothing(),
      smootherPAD = newTemporalSmoothing(),
      smootherKBD = newTemporalSmoothing(),
      smootherPAD = newTemporalSmoothing(),
      minLimit = -1,
      filter = 0,
      smootherKBD = newTemporalSmoothing(3, 3, 1000, 0),
      smootherPAD = newTemporalSmoothing(100, 100, nil, 0),
      smootherKBD = newTemporalSmoothing(3, 3, 1000, 0),
      smootherPAD = newTemporalSmoothing(100, 100, nil, 0),
      minLimit = 0,
      filter = 0,
      smootherKBD = newTemporalSmoothing(3, 3, 1000, 0),
      smootherPAD = newTemporalSmoothing(100, 100, nil, 0),
      smootherKBD = newTemporalSmoothing(3, 3, 1000, 0),
      smootherPAD = newTemporalSmoothing(100, 100, nil, 0),
      minLimit = 0,
      filter = 0,
      smootherKBD = newTemporalSmoothing(10, 10, nil, 0),
      smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
      smootherKBD = newTemporalSmoothing(10, 10, nil, 0),
      smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
      minLimit = 0,
      filter = 0,
      smootherKBD = newTemporalSmoothing(10, 20, 20, 0),
      smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
      smootherKBD = newTemporalSmoothing(10, 20, 20, 0),
      smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
      minLimit = 0,
  kbdInRateMult = min(kbdInRate * rateMult, 3.68)
  padSmoother = newTemporalSmoothing()
  kbdSmoother = newTemporalSmoothing()
  padSmoother = newTemporalSmoothing()
  kbdSmoother = newTemporalSmoothing()
  local currG = abs(sensors.gx2 / obj:getGravity())
  smExtra2 = smExtra2 or newTemporalSmoothing()
  local currGsm = smExtra2:getWithRateUncapped(currG, dt, getRate(smExtra2:value(), currG, 0, 1.5, 5.0))
    filter = 0,
    smootherKBD = newTemporalSmoothing(10, 10, nil, 0),
    smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
    smootherKBD = newTemporalSmoothing(10, 10, nil, 0),
    smootherPAD = newTemporalSmoothing(10, 10, nil, 0),
    minLimit = -1,
@/lua/vehicle/controller/axleLift.lua
local rearRaisedPosition
local velocitySmoother = newTemporalSmoothing(2, 10)
@/lua/vehicle/controller/drivingDynamics/CMU.lua
local warningLightPulseTime = 0.15
local isStoppedSmoother = newTemporalSmoothing(100, 1)
local isOnRoofSmoother = newTemporalSmoothing(50, 1)
local isStoppedSmoother = newTemporalSmoothing(100, 1)
local isOnRoofSmoother = newTemporalSmoothing(50, 1)
@/lua/vehicle/controller/propAnimation/singleAxisLever.lua

local positionSmoother = newTemporalSmoothing(2, 2)
@/lua/vehicle/controller/propAnimation/sequentialLever.lua

local ySmoother = newTemporalSmoothing(10, 10)