Changelog

Week of June 16

  • Revamped the Route Editor:
  • Replaced the chart-js graph with a custom SVG implementation
  • Added direct line manipulation to the elevation graph
  • Added gradient colouring to the graph, and fill
  • Allowed for region selection in the graph, and application of tools to regions (smooth, reconcile, delete, annotate)
  • Added a "flatten region" tool which averages the gradient over a selected region
  • Visualize brunnel annotations in the graph with editable regions
  • Improved gradient smoothing with a smooth average window (props Dan C)
  • Added distance-weighting to smoothing function to avoid skewed results
  • Increased minimum altitude range of the elevation graph to better represent flat routes
  • Fixed an issue with the elevation graph toggle styles
  • Added automatic map zooming to the route editor
  • Fixed a handful of route editor bugs
  • Re-introduced warnings for sharp gradient changes
  • Added sanity check to avoid trusting elevations below -200m
  • Added sanity check when calculating elevation graph altitude bounds
  • Prevented the map from moving to focus unnecessarily
  • Re-added the de-kink button as an advanced option
  • Improved the in-ride UI
  • UI: Added a configurable stats panel
  • UI: Various UI elements can now be toggled on/off
  • UI: The rider list is now scrollable, and shows all riders
  • UI: "Draft" and "Grade" have been redesigned
  • UI: You can now view "Grade" during workouts
  • UI: You can now change the virtual shifting "Gear" on-screen
  • UI: The "Fullscreen" text in the Menu is now clickable
  • UI: Added text size options

Week of June 9

  • Prevent three.js from loading unnecessarily
  • Only auto-start within 10 seconds of event start time
  • Moved in-ride errors to the "Help" menu tab
  • Better SEO detection of static pages
  • Support auto-start for casual (not timed) events

Week of June 2

  • Minor tweaks to event tiles
  • Increased size of the drafting stat
  • Clarified the "Quit without saving" confirmation labels

Week of May 26

  • Making progress on View Distance, Quality settings
  • Prevent caching of the /ride page
  • Slightly faster terrain data lookups
  • Event edit - set a default title
  • Event edit - prevent saving without a route selected
  • Fixed issue preventing spectator mode stats (and map) updates
  • Fixed riderController issue (causing occasional freezing)
  • Fixed workout chart performance issue
  • Fullscreen exits automatically when a ride ends
  • Fixed avatar circling when a road path ends suddenly

Week of May 19

  • Rider list - show full proximity distance if < 1km
  • Improved website & multiplayer servers
  • Fixed minor issues related to the Svelte 5 upgrade
  • Released Windows app, again ๐ŸŽ‰
  • Updated Bluetooth UI for better native app support
  • Native apps - show loading animation while devices connect
  • Windows app (0.2.2) - Better bluetooth write() support
  • Fixed chat auto-scrolling
  • Fixed activity timer drift

Week of May 12

  • Improved water!
  • Switched to a better data source for water
  • Added shorelines, waves, smoothed rough edges
  • Added DNF riders to race results
  • Simplified the in-ride menu
  • Upgraded to Svelte 5, updated all dependencies
  • Added country flags to athlete detail pages

Week of May 5

  • Added spectator mode
  • Made Dashboard popular links easier to access
  • Added social call-outs to Dashboard
  • Fixed numerous minor issues with spectator mode
  • Fixed issue preventing draft percent from going negative
  • Made filtering more prominent on listing pages

Week of April 28

  • Released early access Windows app
  • Disabled debug panel
  • Settings - prevent browsers from autofilling the wrong fields
  • Show lap count for online rides (e.g. Lap 1/3)
  • Added API endpoint: athlete/search
  • Activity pages now include drafting stats (for rides from now onward)
  • Route listing - Map view now shows route paths
  • Route listing - Map view styling updates

Week of April 21

  • Finishing up Windows app...
  • Working on spectator mode...
  • Fixed issue with the Wahoo TICKR X
  • Added "Birth year" profile setting for race categorization
  • Added "age_category" field to race results API
  • Replaced some homepage assets
  • Event listing - fixed incorrect distance / climb when multiple laps

Week of April 14

  • Fixed crazy power swings when using "fake" virtual shifting
  • Workout names are appended to activity titles, even for cleared workouts
  • Route editor - added new toggle to visualize the route splines
  • Route editor - fixed (lack of) error messages
  • Multiplayer - rider list now shows riders heading in opposite direction
  • 3D - much better sensation of speed (dynamic camera FoV and pitch)
  • 3D - the "look-behind" button (B) is now a button-hold
  • 3D - the first-person camera will raise slightly when the rider stands
  • 3D - fixed camera jitter when leaning in first-person
  • 3D - disabled micro-steer wobbles in first-person
  • 3D - fixed floating bridge pylons
  • 3D - mouse cursor now auto-hides after a few seconds
  • 3D - fixed issue with some lazy-ass bots refusing to pedal
  • 3D - changed road center line to dashed
  • Route editor - fixed spline calculation
  • Route editor - increased spline point density for better curvature
  • Route editor - fixed error upon cancelled file upload
  • Multiplayer - disable power simulation (dev tool) for timed events
  • Fixed Android bluetooth issue
  • Fixed issue preventing rider movement during races ๐Ÿ˜ฌ

Week of April 7

  • New start/finish lines
  • Improved cloud visibility
  • Fixed rider jitteriness on long routes
  • Buildings are now subtly two-toned
  • Riders now have micro-steering to avoid having them be perfectly static; a small sway in sync with their cadence. The intensity will reduce at higher speeds, and increase when standing to pedal
  • Rider cadence is reduced (visually) when auto-braking. Bot cadence will increase when in a breakaway
  • When leaning for corners, riders will spin their outside pedal to the bottom and hold there until upright
  • Updated camera logic to avoid wobbling due to micro-steering
  • Bots will no longer try to brake or overtake while standing
  • Press the down arrow to gently brake (no more emergency braking)
  • Added logic to support upcoming native apps
  • Fixed issue preventing bluetooth writing
  • Added confirmation to prevent accidentally closing active ride
  • Workout chart now adheres to "ftpOverride" if present
  • Revamped iOS app - now supports device saving (auto-connect), better dropout support, and more

Week of March 31

  • Continuing on native apps (will take a few weeks)...
  • Speed metric turns red when auto-braking

Week of March 24

  • Working on native apps (ongoing, will take a few weeks)...

Week of March 17

  • Fixed issue with virtual shifting when in the starting pen
  • Fixed dashboard dropdown CSS issue on Windows
  • Increased chat box font size
  • Cleaned up in-ride Menu / Chat / Camera buttons
  • Chat - when minimized, show an alert icon when there's new messages
  • Zwift Click can now be used to adjust intensity (workouts) or target resistance (ERG free-ride)
  • Experimenting with "wind reduction" icon
  • Adjusted minimap placement, other minor styling tweaks

Week of March 10

  • New: Group Workouts!
  • Fixed issue where a certain hotkey enabled supersonic speeds
  • New: choose between black and tan tire sidewall
  • Fixed brunnel positioning issues
  • Improved brunnel overlaps (e.g. avoids ground intersecting the road beneath a bridge)
  • Route editor - exclude brunnels from the "elevation alignment" score
  • Improved the appearance of brunnels
  • Reduced the likelihood of grass poking through tunnel walls
  • Reduced ground poking through the road on tight, steep sections
  • Smoother rider movements when on steep gradients
  • Improved road curvature
  • Rebuilt the Dashboard page
  • Fixed grade calculation for non-firmware virtual shifting

Week of March 3

  • Fixed many cases of buildings overlapping the road
  • Fixed latlng projection issue causing minimap and activity mis-alignment
  • Improved minimap heading
  • Improved pacer "Balanced" mode to better accompany the rider
  • Added conifers!
  • Refactored tree generation system
  • Improved styling of shrubbery (Ni!)
  • Improved cropland density
  • Minor color adjustments to the "Temperate" biome
  • Fixed arch & finish line coloring

See the archive ยป