A carving ski does not steer. Tip it on edge and its own hourglass plan shape,
bent into reverse camber under load, prescribes the arc it travels. This is a race down a
FIS-legal Giant Slalom course in which that is the only way to turn.
Controls
←→ or
AD — ask for a turn. You are not
steering: you are asking for an arc, and the edge angle is whatever that arc needs. ↓ or S — tuck. Space — start, and skip between screens.
R — restart the run.
Esc — back to the menu.
On a touch screen, hold the Left, Right and Tuck buttons under the
view; they do exactly what the keys do.
Personal bests
No runs recorded in this browser yet.
0.00run 1
0km/h
edge0°
turn radius—
lateral0.0 g
attack angle0.0°
ploughing
gate 0
Result
Start list, second run
ICR art. 621.11.2: the first thirty of the first run start in reverse order —
the thirtieth goes first, the leader goes thirtieth. Everyone from thirty-first on starts in
result order.
The geometry the whole game runs on, with the numbers exposed.
What this app's own geometry produces
The relation everyone quotes is R = Rsc·cos θ. It is correct,
and the reason it is correct is not the reason it is usually given. The derivation is in
js/carve.js in full; here is the shape of it.
A rigid ski tipped on edge does not touch the snow along its edge. The running edge
is an arc of radius Rsc drawn in the ski's base plane. Tip that plane by
θ and lay it down: the ski touches at tip and tail and its waist is
d sin θ in the air, where d is the sidecut depth.
Nothing is carving.
The ski bends until the whole edge is in the snow. A ski bends perpendicular to its
own base, not straight down. The reverse camber that planting the edge costs is
d tan θ — 0.70 cm at 30°, 2.11 cm at 60°,
3.34 cm at 70° for a 30 m GS ski.
That bending is what produces the cosine. Because the deflection is along the base
normal, it carries the ends further from the waist than a projection would, and the
lateral offset comes out d / cos θ, not
d cos θ. The arc is
R = Rsc cos θ, exactly, at the waist.
What load adds on top. Press harder and the waist rides p deeper than
the contact points. Redo step 2 with that and the arc becomes
R = Rsc cos θ / (1 + (p/d) sin θ).
A correction to a common description. The ski is often described as carving Rsc·cos θ and then
“tightening further as the ski bends under load”, as though the bending
were an extra term. It is not. The minimum bending — the reverse camber it takes to put
the whole edge in the snow — is already inside the cosine: it is what makes the
factor cos θ rather than 1/cos θ. Treating
it as a further correction double-counts it.
There is an extra tightening, but it needs something more specific than
“the ski bends”: the groove must be deeper under the waist than under the
contact points. A groove of constant depth adds nothing at all — set the penetration
slider to zero above and the two radii coincide exactly. The correction is governed entirely by
p/d, the ratio of that extra depth to the ski's own sidecut depth, and for this
app's GS ski it is worth 0.3% at 10° of edge and about 12% at 66°. That is a
real effect and it is an order of magnitude smaller than the cosine.
This corrects that informal description, not a published source. Jentschura & Fahrbach
(2004) do not claim a bending term at all — their ski has a fixed sidecut radius and no
elasticity anywhere in the paper.
Measured, not asserted
The app ships a geometric oracle that reconstructs the turn radius from the emitted track and
nothing else — no access to the ski, the edge angle or any force — by fitting a circle
in the track's own best-fit plane. Run at a pinned edge angle on a constant pitch it gives:
edge
radius, from the track
Rsc·cos θ
with the groove
penetration
bending's share
10°
28.4 m
29.5 m
29.5 m
0.19 mm
0.3%
20°
27.0 m
28.2 m
27.9 m
0.37 mm
1.0%
30°
24.6 m
26.0 m
25.4 m
0.59 mm
2.4%
40°
21.5 m
23.0 m
22.0 m
0.87 mm
4.4%
50°
17.7 m
19.3 m
17.9 m
1.26 mm
7.3%
60°
13.5 m
15.0 m
13.4 m
1.71 mm
10.8%
66°
10.8 m
12.2 m
10.7 m
1.88 mm
12.4%
The circle fit was validated first, on inputs whose answer is known exactly —
circles of five radii over three arc lengths, a straight line, a circle with 2 cm of jitter,
and a clothoid whose curvature is a known linear function of arc length. Only then was it allowed
to judge the engine. It found a real bug doing so: the heading was being integrated in the
horizontal plane while the arc lies in the snow, a 2–4% error that nothing else had seen.
The edge angle is not free, and a World Cup GS turn cannot be a pure carve
A skier holding a steady arc must lean until the resultant of the slope-normal gravity and the
centrifugal force runs through the edge: tan θ = v²/(R g cos α).
Substitute R = Rsc cos θ and it collapses to
sin θ = v²/(g cos α Rsc), which has no
solution above v = √(g cos α Rsc). For a 30 m GS
ski on the measured mean World Cup GS pitch of 17.8° that ceiling is
16.74 m/s — 60.3 km/h, and the measured median speed in World Cup Giant Slalom
is 17.75 m/s. The sport is run above the speed at which its own equipment can
carve in balance. That is why every World Cup GS turn is a hybrid: a pivoted entry with the ski
pointing 12–15° off its own direction of travel, settling to under 4° as the edge
engages. This app reproduces the hybrid rather than scripting it — the attack angle is
whatever the edge has not yet rolled up to supply.
What this is
Giant slalom is the second of the four alpine disciplines, run over two courses on the same
hill, with the total of the two times deciding it. This is an independent reimplementation of the
event, not of any product: there is no original game being copied here, and nothing in it is
licensed from, endorsed by or affiliated with the International Ski and Snowboard Federation.
The rules it follows are a public rule book, quoted by article.
What is faithful
The course. Vertical drop (art. 901.1), direction changes at 11–15% of that
drop (901.2.4), gates 4–8 m wide with turning poles never closer than 10 m
(901.2.3), four poles and two panels per gate (901.2.1), panels ~75×50 cm with their
lower edge ~1 m up (901.2.2), a course about 40 m wide (902.1), a finish at least
10 m wide (615.2). Every generated course is validated against those articles before it is
raced, and the harness runs that validator over 720 courses across all three levels and both
classes.
The gate judge. A gate is passed when both ski tips and both feet have
crossed the gate line (661.4.1), where the gate line is the shortest imaginary line between the
turning pole and the outside gate at snow level (661.4.1.1). The app tracks all four points.
Passing a pole with one ski on each side is a straddle; going outside the outside gate is a
miss. Knocking a pole flat does not move the line (661.4.1.3).
What happens after a fault. You may go back to the gate you missed — but not
if you have already skied through the next one (614.2.2), and not if your skis have come to a
complete stop (614.2.3). The app tells you which article ended your run.
The timing. Times are expressed to a hundredth by truncation, not rounding
(611.2.1). 47.4899 publishes as 47.48.
The start order. The best fifteen present are drawn among themselves and everyone
else starts in FIS-points order (621.3). For the second run the first thirty are reversed
(621.11.2), and if several share thirtieth place they are all in the reversed group with the
lowest bib going first.
The results. Equal times share a rank, with the higher start number listed first
(617.3.3). There is no countback anywhere in the alpine ICR. Only a competitor with an official
time in both runs is classified at all (617.3.1).
The equipment. The ski is on the FIS minimum for the discipline: 30 m sidecut
radius, 193 cm long for men and 188 cm for women, 65 mm at the waist. Poles are
type A flex poles, 29–32 mm and at least 1.80 m above the snow.
What is mine, and where the rules did not decide
There is no gradient rule for Giant Slalom. A full-text search of the July 2026 ICR
finds a gradient prescription only for Slalom (802.1.1, 33–45%). GS art. 902.1
says only that the terrain “should preferably be undulating and hilly”. Every hill
in this app is therefore built from measured real-course terrain, not from a rule.
There is no maximum turning-pole distance for seniors — only a minimum of
10 m. The 27 m maximum in 901.2.3 applies to U16 and U14 only. The spacing here comes
from measured World Cup courses (26.2 ± 2.3 m).
There is no open-versus-vertical gate width for GS. That distinction exists only
inside Slalom; the ICR gives GS a single 4–8 m band.
There is no snow-hardness or friction figure anywhere in the ICR. Art. 696 asks for
“the hardest course surface appropriate to the race level” and stops. Every snow
number in this app is measured or calibrated, and the register says which.
The climb-back permission no longer exists as a positive article. Searching the whole
July 2026 edition for “climb” returns only two index lines. The permission survives
only negatively, through 614.2.2 and 614.2.3. Anyone quoting a positive
“the competitor may climb back” sentence is quoting an older edition.
The racing line is a minimum-curvature curve through the gate windows, corrected
three times against where the autopilot actually crossed. A minimum-curvature line is not a
minimum-time line, and a real racer inspects the course. This is a stand-in for that.
The field — names, nations, FIS points, ability — is generated from the
course number, with a field of women for the Women class. The names are randomly generated;
any match with a real person is coincidental. The generator refuses any pairing that equals or
nearly equals a real World Cup race winner or podium finisher.
Angulation, stance, boot position, edge bite width, the pole push off the wand and the
threshold for “a complete stop” are all reconstructed. The provenance register
lists each with its reason.
Where the model disagrees with the measurements
The attack angle is too small. World Cup racers are measured pointing the ski
12–15° off its direction of travel at turn initiation. This engine produces the right
shape — larger at initiation than through the body of the turn, and nothing
scripts that — but only about 1.8° against 1.0°. The mechanism is present and the
magnitude is not.
The autopilot is a little quick. Its median run on a generated World Cup course is
about 62 s where real World Cup runs take 70–90 s, and its median instantaneous
speed is roughly 20% above the measured 17.75 m/s. Its mean speed over a run is
within a few per cent. The gap is the racing line, which is straighter than a real one.
The per-turn minimum radius does match: median 20.9 m against a measured
16.7–19.1 m, with a 10th percentile of 15.7 m.
The air/snow energy split comes out at 27%/73%, at the very top of the measured
5–28% band for air. That is agreement, but only just, and it was arrived at by
calibrating one friction term — so it is a consistency check, not an independent
confirmation.
Gate poles do not bend when you hit them. The FIS flex-pole specification is quoted
in the register (4–11 N·m of tipping resistance, recovery from 120°) but
the app does not simulate the collision. Since art. 661.4.1.3 fixes the gate line at set-time
regardless, nothing about the judging depends on it.
Sources, and what could not be opened
ICR Book IV Alpine, Edition July 2026 (approved by the FIS Council, June 2026) —
downloaded in full and read. Every article quoted above is from that edition. Note that the
cover of the file carries a stray leftover “EDITION July 2023” line under the
current one; it is a template remnant.
FIS Specifications for Alpine Competition Equipment, Edition 2025/2026 (October 2025)
— read in full. This is the current edition; no 2026/27 exists.
FIS Specifications for Flex Poles, Edition November 2020 and
FIS Specifications for Release Panels, Version June 2019 — read in full.
Jentschura & Fahrbach, “Physics of skiing: the ideal-carving equation and its
applications”, arXiv:physics/0310086v3 — the free preprint was downloaded and
read in full. The journal version (Can. J. Phys. 82, 249, 2004) is paywalled and was
not opened; everything attributed to the paper here comes from the preprint. The paper
assertsR = Rsc cos φ with the words “an elementary
geometrical consideration shows” and gives no derivation, no figure and no algebra for it.
The derivation in this app is its own.
Gilgien et al., PLOS ONE 2015, 572 World Cup GS gates measured by differential GNSS
— open access, read. The course geometry in this app is calibrated to it.
Could not open: Lind & Sanders, The Physics of Skiing (the book the
ideal-carving equation is a reparameterisation of — archive.org lending only), and Howe,
Skiing Mechanics. So Howe's position on the sidecut relation is not determined here,
and neither is Lind & Sanders' eq. T5.3 except through Jentschura's restatement of it.
Mössner et al. 2013 on snow shear strength was abstract only. Nothing in this app is
attributed to any of them.
Folklore this build did not use: the widely repeated “80 km/h average
speed” and “56–70 gates” figures for Giant Slalom do not match the
measured 63.9 km/h median and 53.8 ± 3.4 gates, and are not sourced
anywhere this build could reach.
Provenance register
Every number the app runs on, tagged. The page recounts these from the shipped
file at load; if the tally below and the table disagree, something has been edited without being
re-tagged.