def METHOD_NAME(
    amplitude,
    wave_number,
    side_of_body,
    time,
    time_delay,
    muscle_start_end_index,
    tangents,
    external_forces,
):
    real_time = time - time_delay
    ramp = real_time if real_time <= 1.0 else 1.0
    factor = 0.0 if real_time <= 0.0 else ramp  # max(0.0, ramp)
    forces = np.zeros(external_forces.shape)
    muscle_forces = (
        factor
        * amplitude
        * (side_of_body * 0.5 * np.sin(wave_number * real_time) + 0.5)
        * tangents[..., muscle_start_end_index[0] : muscle_start_end_index[1]]
    )
    forces[
        ..., muscle_start_end_index[0] : muscle_start_end_index[1] + 1
    ] += difference_kernel(muscle_forces)
    external_forces += forces
    return forces