Three days, eleven updates. Some of them you will notice the moment you drop in: S now stops you the way a snowboarder actually stops, and the radio no longer falls silent between tracks. Others you will only notice by their absence: fewer dropped frames, rocks that are there to see as well as to hit, a leaderboard that is harder to cheat. This is the round-up, with links to the longer write-ups for the parts that deserve one.
Races got physical
Until this week the rider beside you in a 1v1 race was a ghost: you could ride straight through each other. Now the two riders collide. Lean into your rival and you are both shoved apart and lose a little speed; cut hard across their line, or ram them from behind much faster than they are going, and you both go down — ramming costs the rammer as much as the victim. Jump high enough and you sail over them. A rider who has just dropped back in after a wipeout cannot be hit for a moment, and once one of you has crossed the line the other can no longer be knocked about.
Collisions only feel fair if both screens agree where the riders are, so the rival is now drawn where they really are rather than where their last update said they were a fraction of a second ago. The race also ends somewhere worth ending: a proper finish gantry of aluminium truss with padded, ballasted feet, a banner, feather flags and a timing board that runs your race clock live. How all of that works over a connection between two browsers is in Racing a friend down an endless mountain.
A fairer leaderboard
Every run that goes on the board is now checked by the server. A score only goes up once the ride it came from has been logged, it is posted under the rider name on your account rather than whatever a browser claims, and the run has to be one a person could actually have ridden. Rider names that read as web addresses are refused too, which ends a small wave of spam names. Alongside it went a round of security fixes across the site and its servers. Keeping the leaderboard fair explains the approach without handing anyone a map.
Smoother frames
The woods were the most expensive thing on screen, and most of that cost was spent on trees nobody could see: behind the camera, off to the sides, or far enough away to be a few pixels tall. Now each tree, rock and shrub is drawn only if the camera can see it, and distant trees use a lighter version with the same outline. A typical frame draws about 40% fewer triangles, and the slowest frames got about a fifth quicker.
Measuring that properly turned up two bugs in the 3D engine the game is built on. One of them meant that on Macs, iPhones and iPads running the game through WebGL, the rocks, the shrubs and the gondola cabins were simply missing — while the rocks you could crash into were still there. Both are fixed. The full story, including how to measure a game's frame time honestly on a busy laptop, is in Drawing a forest for less.
The hockey stop
S used to be a brake pedal: it slowed you down and nothing else happened. Now it is the stop every snowboarder learns in their first week. The board swings across the slope onto its edge, you sit back on your heels, and the edge scrapes you to a halt in a couple of seconds, throwing snow out ahead of you. If you were already turning toward your chest you stop on your toes instead, leaning into the hill. Hold S and you stay parked on the edge; let go and you ride away, leaving a wide scraped swath and a ridge of the snow you pushed. How a snowboarder stops goes through the physics, the pose and the spray.
A radio that never stops
POWDERLINE FM, the lofi radio, writes its music as it plays — no recordings, every track composed from scratch when it starts. Until now each track faded out, left a couple of seconds of silence, and the next one faded in. Now the next track starts under the last bars of the one before and the two crossfade, usually in a key that sits well with the last one. Skipping a track with N blends too.
And there is a second station. APRÈS FM plays deep house for after the last chair: four-to-the-floor kicks, off-beat hats, electric-piano stabs pumping under the kick and a rolling sub bass, with a breakdown before every drop. It keeps one tempo for the whole session and mixes each record into the next over eight bars, like a DJ, with the two kicks landing together. Press K to switch between the two. A radio that never goes quiet explains how music can be generated, mixed and beatmatched live in a browser.
Behind the scenes
A few changes no rider will see. The project moved to the current long-term-support release of Node.js, which the build and the servers run on. Every change to the code now goes through an automatic check — build, lint and the unit tests, in that order — before it can cause trouble, and the test suite grew to cover the new stop, the new physics and the new pose. The site has a proper favicon for search engines that look for one. And the website you are reading got rebuilt in the same design as the front page, with this blog added to it.
Most of the work above was verified the way it will be played: in real browsers, on a real GPU and through the software renderer, on WebGPU and on WebGL, with screenshots compared before and after. When something looks wrong in a screenshot it is a bug, even if every test passes.
What's next
The profiling that sped up the woods also showed where the next savings are: the snow park's kickers and rails cost more to draw than the whole forest now, and on slow machines a fresh stretch of mountain streaming in can still cost a frame. Both are on the list. So is more to do on the hill itself. As always, everything that ships lands in the changelog first.



