Changelog

Last updated

Week of Sept 14

  • Improved bots! πŸ€–
  • 3 bot modes - Companions (bots that stay with you), Gran Fondo (bots spread around the route), and Race
  • 5 race difficulty levels, which can be changed mid-race
  • Bots have situational awareness, will plan and adjust tactics based on the terrain, their energy reserves, etc.
  • Each bot has a unique risk tolerance and willingness to cooperate
  • Bots are now able to decide when to attack, chase, sit in the draft, take a pull, or let a breakaway go
  • Bots save energy for the finale, launch late attacks, and respond to rivals’ sprints
  • Added race position stat beside the lap counter
  • Removed unnecessary "Edit" icon from actions menu (bottom left)
  • Fixed grass poking through the road at turnaround joins
  • Fixed terrain poking through bridge decks
  • Fixed bike chain clearance (prevents flickering)
  • Added higher res 3D rider models πŸ”₯
  • Fixed race gaps on out-and-back courses
  • Fixed issue when multiple cadence devices are paired
  • Fixed rare Power Match bug
  • Improved multiplayer smoothness on internet lag
  • Support Zwift Ride controller multi-button presses
  • Added ride loading indicator...
  • Prevent bridge piers from rendering on roads underneath (props JM)
  • Improved guardrail detection and implementation (props JM)
  • Fixed terrain clipping at tunnel entrances
  • Fixed floating roadside foliage
  • Fixed flickering far-view terrain, wasn't getting properly culled
  • Improved 3D avatar lighting / shading
  • See last week's changelog β†’

Week of Sept 7

  • Moved streetlights closer to the road, centered lights mid-lane
  • Automatically clear device metrics upon dropout / disconnect
  • Added Torque UI stat (NΒ·m)

Week of August 31

  • Route editor - improved speed of the "Auto-detect brunnels" feature πŸ”₯
  • Improved roadside grass coloring and blending
  • Improved forest ground cover
  • Fixed flickering windows at night
  • Optimized scene rendering, more efficient "Maximum" view quality
  • Added 12 new flora species, including weeping willow, pricky pear, redwood, baobab, etc.
  • Increased tree trunk poly count
  • In-ride zone chart labels are now prefixed with PWR or HR
  • Massively increased view distance (up to 10x!) across all user tiers πŸ”₯
  • New turnaround statues!
  • Fixed multiplayer bug in the old (WebGL) engine
  • Hardened race events to prevent spoofing
  • Rebuilt the in-ride HUD πŸ”₯
  • HUD - more customizable stats
  • HUD - added online rider positions to the elevation chart
  • HUD - cleaned up the rider list
  • HUD - better mobile / responsive support
  • HUD - added chat "toasts" when the chat box is minimized
  • HUD - moved drivetrain settings to "Ride" menu
  • HUD - added "Power step" setting to control ERG step (default = 5W)
  • Events page - grouped by series AND event type
  • Server-side - optimized world datasets

Week of August 24

  • Rebuilt the in-ride menu
  • Menu is now keyboard accessible (incl. hardware buttons!)
  • Native apps - devices now auto-save automatically, and un-save when you manually disconnect them
  • More intuitive device pairing UI
  • HUD - new "Altitude" stat
  • HUD - new "HR zones" stat
  • Chat - hidden on page load, the notification dot show unread message count
  • Allow for "Teleport to distance" value to be typed in
  • Redesigned activity pages, including new "Training Load" stats
  • Redesigned athlete profile pages
  • Redesigned event detail pages
  • Redesigned club detail pages
  • Redesigned challenge pages, better description of actual goals
  • Redesigned site-wide tables (much more usable)
  • Disabled blinking tail lights 🚨
  • Various website styling tweaks
  • Fixed unreadable HTML dropdown choices in Windows
  • Route map - reduced cluster density, improved performance
  • Added font smoothing
  • Patched some edge-case tunnel seams
  • Reduce terrain carving around bridges
  • Terrain carving improvements
  • Added in-ride screenshots πŸ“Έ
  • Redesigned /events page, enabled series grouping by default
  • Redesigned event series pages
  • Improved roofs for simple buildings (proper A-frames)
  • Removed windows from small, skinny buildings... towers, pillars, etc.
  • Some building windows are lit at night
  • Added new start arch
  • Urban areas: added streetlights, sidewalks
  • Menu - clicking a multi-choice setting now opens a dropdown of its options
  • Added "Download photo" button to activity pages (saves to PNG)
  • Exported filenames now include the activity ID and title
  • Styled the export buttons, added progress indicators
  • Fixed bug with disappearing bridges / guardrails on short loop routes

Week of August 17

  • Ride with others on ANY route! Instantly toggle between Offline and Public modes (top right of ride screen)
  • Easier to ride with others! Added a Live Map to see who's riding right now and jump in (subscribers)
  • Join a rider - you start by spectating the rider until your devices are ready to go, then click "Start riding" to drop your avatar beside them
  • Spectate any populated route
  • Click a rider in the rider list to show a context menu: teleport or mute them
  • Added a "# riders" badge to routes and events
  • Activity detail - new "You rode with" section to easily follow the people you rode alongside with
  • Settings - added a Privacy tab with clearer descriptions
  • Added subscription details to the Settings page
  • Improved the subscriber workflow, show renewal dates
  • Added compare page: Indoor Cycling Apps in 2026
  • New Facebook URL: https://www.facebook.com/ridebiketerra
  • Added Terrance the turtle to route detail pages
  • More SEO improvements

Week of August 10

  • πŸ”₯ Rebuilt trees, shrubs, and grass, now 16 plant species across biomes
  • πŸ”₯ More realistic leaf shapes, true to each species
  • 3D grass now extends beyond the roadside
  • Distant trees stay correctly lit as the sun moves through the day
  • Reduced stuttering during the first seconds of a ride
  • Fixed 2D trees so they blend much better into 3D
  • Fixed route quality scores shifting after saving a route
  • Fixed grass sprouting behind the start/finish line on looped routes
  • πŸ”₯ Routes now use real-world climate data instead of hand-picked biome presets
  • Improved flora species placement based on real ecology
  • Improved spread / clustering of forest tree species
  • Improved and simplified logic for snowy tundra routes
  • Route editor: prevent smoothing when using "Align elevations"
  • Added support for limiting foliage to native ranges (e.g. Saguaro)
  • Fixed attendance percentages to handle ongoing events
  • SEO improvements (finally)

Week of August 3

  • Tons of visual updates from last week, check out full changelog
  • New volumetric clouds
  • Real star positions (5,000 stars!), thanks to the Yale Bright Star Catalog ⭐️
  • Added dynamic moon phase
  • Re-balanced ground colors, lowered saturation to more realistic levels
  • Added Help Center "Updates" section (newsletter)
  • Tweaked Help Center styles
  • Added "Calories" stat to activity detail pages
  • Raised POV camera to eye level, switched to sticky vertical tilt
  • Fixed multiplayer ping regression, props @Rocketman
  • Fixed unrealistic cloud movement upon camera rotation
  • Fixed fogged terrain clipping clouds

Week of July 27

  • Added tooltips to the dashboard chart
  • Fixed inline editing on the /settings page
  • Fixed social bots not holding pace around you
  • Prevented the minimap from re-centering when mouse hovered
  • Fixed bots masses (now skewed based on the Ego rider)
  • Improved Social bots, they no longer just wheel-suck
  • Brighter, more natural daylight, with distinct morning/evening/night moods in every biome
  • Rivers and lakes are now flat, level water with real waterlines
  • Rivers visibly flow downstream, rushing and churning white on steep drops
  • Lakes are calm and glassy at a distance, sparkling up close
  • Natural shorelines with sandy shelves, wet edges, and lapping waves β€” even along roads and under bridges
  • Added sun and moon!
  • Sky colors are dynamically calculated based on sun position, turbidity, etc.
  • Improved shadows, including realistic blue hues at sunset
  • Improved haze, water and reflections to match the sky
  • Added Time setting to let you customize the sky + lighting
  • Added Time flow setting to enable automatic day/night cycles
  • Prevent Gran Fondo bots from waiting for the stopped Ego

Week of July 20

  • Revamped bots!
  • New: bot behavior presets – the rider field will populate automatically
  • New: Spicy finales β€” bots launch late attacks, sprints, and counters in the closing kilometers
  • New: Bots now think for themselves β€” chasing, attacking on climbs, countering moves, and sitting in to draft like a real group
  • New: Every bot has its own strengths and style β€” sprinters, climbers, engines β€” no two feel the same
  • New: Bots spend energy, fade when they've overcooked it, and try to save something for the finish
  • Improved: Smoother, more natural terrain and cleaner roadsides
  • Improved: Faster, tidier loading
  • Fixed bots spawning at zero speed
  • Fixed milepost markers on long routes (numbers are now vertical)
  • Revamped site filtering
  • Dashboard - added filterable trends

Week of July 6

  • Added TDF LIVE (livestream of each TDF stage)
  • Added building varieties

Week of June 29

  • Fixed Foliage style setting not saving
  • Fixed distant-scenery flicker
  • Route editor: use lerped elevation when adding a point
  • Route editor: don't auto-update elevation when dragging a point
  • Fixed "moving time" counting paused/stopped gaps as moving

Week of June 15

  • Fixed bugs discovered via the crashlog
  • Fixed tile-load and grass-generation frame stutters
  • Fixed grade Infinity β†’ NaN rider crash spiral at hairpin turns
  • Website - reorganized detail pages
  • Events - completing an event automatically removes it from your iCal feed

Week of June 8

  • Fixed /collections pagination
  • Added power meter left/right balance to FIT export
  • Added ability to upload JSON routes
  • Added "Ambient Roads" UI setting to toggle side roads
  • Added ability to "cheer" another rider's activity

Week of June 1

  • Route Editor: added button to auto-detect and annotate bridges/tunnels!
  • Settings page: fixed issue when applying discounts
  • Route editor: improved responsiveness for huge (200k+ point) routes
  • Event listing: display the associated series image if available
  • Bridges: added split pylons to support roads underneath
  • Fixed rowing power fade-out (inactivity timeout never fired)

Week of May 25

  • New Route Editor!
  • Route Editor: added option to either upload or draw a route
  • Route Editor: cleaner UI, bigger edit area
  • Route Editor: better overview of route issues
  • Route Editor: added a "Fix" button beside each issue
  • Route Editor: added a "Fix all" button above the issue list
  • Route Editor: simpler flow to add annotations (brunnels, surface types)
  • Route Editor: support annotations across loop boundary
  • Route Editor: click+drag in elevation area to select, shift+click+drag to zoom

Week of May 18

  • Added custom virtual gear ratios (in-ride setting)
  • Added power zone UI
  • Fixed chat notification dot always blinking
  • Fixed missing "Start time" field when creating casual events
  • Added "Rowing" control mode
  • Added "Rowing power boost" UI setting (to better sync rowing power with cycling power)
  • Added power zones chart to activity detail pages
  • Added API Key generation to the settings page... more details soon
  • Faster terrain loading

Week of May 11

  • Added Calories UI stat (+ added to FIT export files)

Week of May 4

  • All 6 featured routes are now online-enabled
  • Drafting model V2 (props Mike W)
  • Improved slipstream shape, increased tail length
  • Fixed issues with motion planning causing periods of 0 draft
  • Handle when Cloudflare Turnstile (captcha) is blocked
  • Improved tile loading, added retry logic

Week of April 27

  • Fixed grass poking through roadside cropland
  • Improved tunnel appearance, cleaned up terrain "hole punching"
  • Added smoothing to tiny streams
  • Fixed lag/freezing when loading buildings in dense urban areas
  • Fixed event time weirdness
  • Fixed rider angle when stopped and teleporting
  • Fixed pressure wave effect for lead riders
  • Fixed shadows at sections of singletrack / gravel roads
  • Improved bridges

Week of April 20

  • GPU memory tuning + crash recovery improvements
  • Added memory usage stats to the Debug overlay (SHIFT + Z)
  • Improved memory usage of the wireframe mesh mode
  • Fixed trees not respawning properly when restoring a tile from cache
  • Cleaned up logging
  • Switched to better elevation data source
  • Tweaked water depths / widths
  • Experimental: added /routes/draw page for building new routes
  • Fixed duplicate BLE connection attempts for native apps
  • Standardized fetch() requests – to make log viewing easier

Week of April 13

  • Added automatic GPU crash recovery
  • Added more multiplayer latency handling
  • Roamer bot FTP is now 55% - 110% user FTP
  • Removed unnecessary dependencies, reduced load size
  • Modernized site-wide reactivity (Svelte 5)
  • Added automatic (and manual) debug log uploading

Week of April 6

  • Fixed TTT team assignment for late joiners (hopefully?)
  • Reduced Ego resolution to fix jersey distortion
  • Updated bot archetypes (they should be smarter now)
  • Improved multiplayer latency handling
  • Standardized cadence-based stand pedaling across all rider types
  • Clarified "Forgot password?" text
  • Major internal code cleanup
  • New website design (sorry, all the purple got to be too much)
  • Fixed end-of-route turnarounds
  • Fixed surface types at loop boundaries (props Dan C.)
  • Fixed route editor surface type annotations at loop boundaries
  • Better GPU frustum culling for grass/trees
  • Fixed rider shadows
  • Fixed dense urban area freezes β€” removed expensive building overlap detection, added frame-budget yields
  • Removed three.js animation dependencies
  • Cap stand-pedaling to 60rpm
  • Fixed rider speed issue w/ Maximum view distance – birds exceeded their buffer limit, causing a GPU breakdown
  • Added dark mode
  • Updated elevation chart colors (based on Jim's feedback)
  • Fixed Route Editor's dark mode styling

View the changelog archive β†’