ExampleComponents/MoveHelperDebugVis.cs
using Sandbox;

public sealed class MoveHelperDebugVis : Component
{
	[Property] Vector3 Gravity { get; set; }
	[Property] Vector3 Velocity { get; set; }

	protected override void OnUpdate()
	{
		
	}

	protected override void DrawGizmos()
	{
		var ts = (1.0f / 15.0f);

		BBox box = new BBox( new Vector3( -8, -8, 0 ), new Vector3( 8, 8, 48 ) );
		var pos = WorldPosition;
		var velocity = WorldRotation * Velocity;
		var trace = Scene.Trace.Size( box );

		for ( int i=0; i<100; i++ )
		{
			CharacterControllerHelper move = new CharacterControllerHelper( trace, pos, velocity );
			move.TryMoveWithStep( ts, 20.0f );
		//	move.TryMove( ts );

			pos = move.Position;
			velocity = move.Velocity;

			velocity = velocity + Gravity;
			velocity = velocity + WorldRotation * Velocity * 0.1f;

			using ( Gizmo.Scope( $"box {i}" ) )
			{
				Gizmo.Transform = new Transform( pos );
				Gizmo.Draw.Color = Color.White.WithAlpha( 0.8f );
				Gizmo.Draw.LineBBox( box );
			}
		}

		
	}
}