Gate Calculator

{raceLen}m
Duration Accel
{#each rawSkills as skill, i (i)}
{skill.dur}s {skill.accel}
{/each}
Quick Setup
{#each quick as q (q.name)} {/each}
{#snippet info(name: string, unit: string, val: number, val2?: number)}
{name} {#if val2 == null} {val.toFixed(3)} {unit} {:else} {val.toFixed(3)} – {val2.toFixed(3)} {unit} {/if}
{/snippet}
{@render info('Base Acceleration', 'm/s²', postAccel)} {@render info('Target Speed', 'm/s', speeds[0], speeds[1])}
{@render info('Accel Time', 's', time[0], time[1])} {@render info('Accel Distance', 'm', distance[0], distance[1])} {@render info('Time to Mid-Race', 's', midTime[0], midTime[1])}
{@render info('Skill Gain', 'L', gain[0], gain[1])}
{#snippet seggsTable(name: string, s: accel.Travel[])} {#each s as {start, end, a} (start.t)} {/each}
{name}
Time Accel Distance Speed
{end.t.toFixed(3)} {a.toFixed(3)} {end.x.toFixed(3)} {end.v.toFixed(3)}
{/snippet}
{@render seggsTable(slope < 0 ? 'Fastest Speed (Downhill)' : 'Fastest Speed', seggs[1])} {@render seggsTable('Slowest Speed', seggs[0])}