Changelog (older items)
Click here for the recent changes ยป
Week of February 24
- New: added brake lights (auto-brake indicators)
- Anonymous users can now view the /events listing
- Camera button (C) now cycles, even when lookbehind (B) is active
- Visuals V2 - improved aesthetics
- Fixed braking issues
- Fixed bug causing crashes when spawning roamer bots
- Adjusted desert grass density
- Working on Visuals V2...
Week of February 17
- New: added real map to the in-ride minimap
- New: Motion Planning V2!
- New: auto-braking!
- New: intelligent draft-seeking! Riders will now automatically steer towards optimal slipstream positioning
- Improved: revamped rider "flow" (pack dynamics)
- Improved: smoother rider motions, less jitteriness
- Fixed some route coarseness issues
- Fixed issue with Zwift Hub virtual shifting
- Fixed issue preventing the avatar from stopping on ride pause
- Fixed timer issue when the browser window is inactive
- Adjusted 1st person camera view
- Tweaked auto-braking parameters (it was a bit too cautious)
- Added Route Collections
Week of February 10
- Getting close to finishing Motion Planning V2...
- Added support for
ERG
mode free rides - Cleaned up Debug Mode styling
- Workouts - increase bias range to +/- 25%
- Workouts - charts are color-coded based on zone
- Race - fix users not auto-starting if joining late
Week of February 3
- Fixed speed issue for users on low-end machines
- Added FPS counter (appears when FPS drops below 20)
- Website design tweaks
- Fixed desync / teleport bug (likely caused recent crashes)
- Added a handful of preloaded workouts
- Tweaked the workout menu UI
- Workouts - support .ZWO cadenceLow and cadenceHigh
- Races - ability to export Race or Cooldown separately
Week of January 27
- Roamer bots have more sensible power ranges (props Aku)
- Improved route processor, much better handling of subtle terrain changes
- Fixed bug preventing ability to re-upload certain routes
- Added rider
threshold_wkg
to event (race) API results - Added CORE temp data to the FIT file
Week of January 20
- Added better debug logging
- Added a "Download log" button in the /ride menu ("Riders" tab)
- Added "Race results" sidebar to the event listing page
Week of January 13
- New drafting model
- Added "Teleport to distance" UI setting
- Added "Teleport to rider" UI setting (for online casual events)
- Instant U-turns (no page reloads)
- Route Editor - fixed loop routes not being connected correctly
- Route Editor - fixed "NaN%" gradient for finish line point
- Minor drafting model tweaks (i.e. support negative drag)
- Fixed some Bluetooth issues w/ Zwift Click and virtual shifting
- Workouts - interval cadence will display if available
- Added support for Core Body Temp sensors (will display readings)
- Fixed Core Body Temp data reading issue
- Logged-out users can now view (public) route and event detail pages
- Fixed minimap progress disappearing when toggling the ride UI
Week of January 6 (2025)
- Routes listing - "Keywords" filter accepts a route ID
- Added support for route collections (more details soon)
- Added "Add to calendar" button to event pages
- Fixed Zwift Click support (set Control Mode to "GEAR" after pairing)
- First pass at supporting CORE Body Temperature Sensors (awaiting test device to finish implementation)
Week of December 30
- Rebuilt FIT encoding / decoding (95% less code than before!)
- Added dual-power recording to FIT files (power2)
Week of December 23
- Added support for native (hardware) virtual shifting for devices that support it
Week of December 16
- Rolled out Festive 2024 challenge
- Added Power Match feature
- Added Virtual Shifting V2
- Winterized the website design ๐ฅถ
Week of December 9
- Added Route editor V2!
- Route editor - better elevation handling
- Route editor - shift+click to select point ranges
- Route editor - fixed brunnel creation issue
- Route editor - various smoothing fixes
- Smoothing tweaks to reduce slaloming
- Performance tweaks to reduce stuttering on slower devices
- Locked down the "free ride" hotkey
- Prevent bots for race events
- Renamed "World bots" to "Roamers"
- Fixed performance issue when saving huge (24+ hour) activities
Week of December 2
- Finishing up the Route Editor
- Added annual pricing option
- Fixed finish line freezing bug for timed events
- Added error handling (retry and direct activity download) in case activities fail to upload
Week of November 25
- Multiplayer - added rider list stats toggle (Watts, W/kg, and Speed)
- Multiplayer - fixed the race results list height
- Profile - display the rider's routes count (clickable)
- Profile - styled the follows page
- Routes - added ability to filter routes by author
- Activity detail - prevent error when activity data is missing
- Multiplayer - fixed rider list ordering (again) ๐
- Fix - exclude heart rate "0" values from the average
- Fix - allow for text selection
- Workouts - added support for
ftpOverride
tag (.ZWO files) - Routes listing - show only public routes by default
Week of November 18
- Multiplayer - refactored code for much better performance
- Multiplayer - fixed latency detection & correction
- Multiplayer - smoother rider movements
- Multiplayer - removed gradient to improve chat readability
- Workout - improved in-ride workout graph
- Workout - clicking the interval list toggles between Watts and %FTP
- Events - show event type (and # laps) on detail pages
- Fixed blank activity page when activity file is missing
- Multiplayer - fixed rider list ordering
Week of November 11
- Added rider locations to the minimap
- Added a "Low FPS" check when first loading the app
- Fixed the "turnback" error on the BikeTERROR challenge
- Prevent camera cycling when in "look-behind" mode
- Miscellaneous motion planning / jostling fixes
- Multiplayer fixes
- Updated homepage text and images
Week of November 4
- Added facets to the Challenges page
- Added ability to filter events by ones you've created
- Added ability to approve/reject follow requests (in the Dashboard)
- Added "Hotkeys" tab to the in-ride menu
- Added "U" hotkey to toggle the UI
- Multiplayer - fixed activity resuming
- Multiplayer - fixed issue with improper disconnects
- Multiplayer - prevent duplicate riders
- Multiplayer - adjust socket reconnect attempts
- Improved activity resuming to support tracking multiple rides
- Dynamic activity title based on route, event, and workout
- Multiplayer - fixed slaloming issue
- Multiplayer - fixed issue where a user who teleports (due to desync) leaves behind a "ghost" affecting other riders
- Multiplayer - reduced jostling
Week of October 28
- Added timed events! (i.e. "not-race races")
- Added in-ride event results
- Added event detail page results
- Added "Description" and "Event type" fields
- Revamped the events listing page, added facets
- Better handling of events w/ private routes
- Switch a route from "private" to "unlisted" when submitted for publication
- Fixed issue when connecting to TrainerDay oauth
- Fixed ERG issue when first starting a workout
October 2024
- 2-directional travel!
- Refactored in-ride UI
- New gradient graph, can be toggled between full and zoomed-in view
- Laid the groundwork for arbitrary u-turns
- Laid the groundwork for routes with multiple paths
- Added roundabouts to the ends of point-to-point routes
- Added ability to toggle between portals & u-turns
- Automatically use the correct country-based lane side
- Numerous minor fixes and improvements
- Multiplayer UI revamp (chat, rider list, etc)
- Improved camera pitch to better indicate gradients
- Fixed disappearing grass
- Fixed rider avatars showing the wrong gender
- Fixed tank slapping issue
- Improved water coloring
- Added BikeTERROR challenge (with custom environment)
- Online events - prevent rider movement until event starts
- Added "Advanced settings" to route editor
- Added Intervals.icu activity uploads
September 2024
- Added Route Finder!
- Added custom multiplayer!
- Refactored the events feature
- Factored grade into rollingResistance (props GCUser99)
- Added support for login redirects
- Fixed camera modes
- Fixed event rider list ordering
- Fixed event crash for users missing design data
- Fixed workout issues: rate limiting, and SIM->ERG switching
- Tweaked the ride UI
- Added multiplayer chat
- Added intervals.icu integration
- Fixed browser Wake Lock
- Fixed issue preventing terrain from loading
- Implemented free tier quotas (early birds excluded)
- In-ride event countdown now uses server time
- Fixed Bluetooth HR bridging
August 2024
- Added Tunnels!
- Added Events (for scheduling online group rides)
- Improved environment blending for bridges and tunnels
- Fixed issue with buildings disappearing on loop routes
- More performant route editing
- Sorted online rider list by distance ahead/behind
- Added "Power Bias" UI setting for adjusting workout power
- Activities now include device names (for debugging)
- Events - send reminder emails to participants 15m before start
- Fixed scaling issue with Activity detail page chart
- Fixed in-ride elevation chart (scaling issue)
- Added progress arrow to in-ride elevation chart
- Switched skin tone to 12-option color palette
- Switched to using dynamic CdA (improved physics)
- Updated "Subscription" page comparison table
- Added birds and guardrails
- Added support for workout
FreeRide
intervals - Added support for "gear" control mode (W: up, S: down)
July 2024
- Improved route processing (much less bandwidth needed for users)
- Reduced page size for route detail pages
- Fixed elevation profile progress (in-ride)
- Route editor - automatic route loop detection
- Route editing
- Multiplayer v1 (!)
- Display multiplayer-enabled route at top of /routes listing
- Bridges are now appearing again
- Fixed buildings overlapping the road and trees
- Added building textures
- Improved 3D scene lighting
- Revamped pacer bots, their power is now automatic and you can choose between "Balanced" and "Aggressive" pacer modes
- Added "Duration" (estimated time to completion) to all routes
- Added "FTP" user setting
- Fixed Bluetooth FE-C issues (props Wouter and wizbit)
June 2024
- This month, we'll be focusing mostly on under-the-hood updates, as well as the first pass at multiplayer.
- Fixed screen timeout (Wake Lock)
- Club leaderboards now reset on Monday (UTC +0)
- Re-built the ground cover dataset
- Lots of website design tweaks
- Added page titles (to better distinguish browser tabs)
- Ride page - open Devices menu on pageload
- Added challenge leaderboards
- Added tooltips / helptext
- Added new "Energy" metric to replace "Difficulty"
- Added author name to activity + route detail pages
- Fixed the dreaded
NaN radius
issue - Fixed duplicated pacer bots
- Fixed stopped worldbots
- Fixed activity reporting bug (for routes w/ portals) that was improperly adding the difference between the Start & Finish lines to the total elevation
- The app runs better now, even with many worldbots
- Fixed graphics issue when users navigate away + return to the ride screen
- Added in-ride elevation profile graph
- Improved virtual shifting logic
May 2024
- Added buildings v1!
- Added 2nd biome (desert)
- Replaced activity detail charts
- Increased smoothing to 3s (power, cadence) and 5s (HR)
- Refactored codebase to make adding new biomes easier
- Switched filters to a mobile-friendly flyout
- Added permalink support for filters
- Support multiple daily TrainerDay workouts
- Fixed resistance on older Wahoo trainers
- Fixed bug where old tilesets weren't being recycled
- Fixed issue with Bluetooth FE-C (Neo 2T, etc)
- SEO optimizations
March 2024
- New logo
- New homepage design
- Added "Connect to Strava" button to /settings
- Revamped challenges UI
- Fixed uint24 issue in FTMS protocol
- Much better dropout auto-reconnect support
- Fixes for older Wahoo trainers
- Better route preprocessing to smooth out kinks
- Improvements to virtual shifting (more to come)
- Added TrainerDay integration
- Re-styled the routes listing page
- Colorized the /routes elevation graphs
- Revamped web-bluetooth (new UI)
- Refactored workout functionality
- Improved stage-based challenges, fixed errors
- Fixed date issues with saved FIT files
- Added website feedback form + live chat
- Homepage text edits
February 2024
- Added clouds
- Fixed timing issue preventing rider models from loading
- Fixed blank screen on activity detail page
- Fixed color picker alignment issue
- Fixed issue with ocean water seams
- Added Discord link to dashboard
- Added support for Athletica FTP detection (waiting on an API endpoint)
- Fixed issue preventing the FTP input box from being editable
- The topnav is now mobile-friendly
- Added Cinecam
- Fixed issue of world bots remaining as ghosts when de-spawned
- Adds slight lateral variation to world bots for more natural distribution across the road
- Adds dynamic rho to the physics calculation (based on a route's average elevation)
- Removes now-deprecated brunnel code and elevation handling from the client-side
- Fixes issue where foliage isn't rendered below sea level, even if there is no sea
- Fixes issue in bridge annotation where bridges should be ignored when the route itself is below sea level
- Fixes issue in bridge annotation where the route crop offset was ignored, putting bridges in completely incorrect places
- Fixes an infinite while loop bug in the rider loading code, which would often trigger after hotloading the dev server
- Adds a top-level error page to prevent unstyled 404
- Adds key to the route tile listing so that "clicked" state does not persist through page changes
January 2024
- Site optimizations
- First pass at Zwift Click integration
- Fixed bot spawning issues
- The system remembers the last active in-ride Menu tab
- Workouts - added persistance across browser refreshes
- Workouts - added viz chart with tooltips
- Improved - more consistent time formatting
- Improved - better route validation
- Fixed ERG mode for iOS
- Improvements to Athletica.ai integration
- Portals! Point-to-point routes now automatically loop!
- Fixed accuracy issue with "Climb remaining" stat
- Refactored to use native crypto
- Set Featured routes to appear ahead of normal routes
- Added onboarding text for new users
- Drafting setting - apply only to Ego and Pacer bots (worldbots always have drafting enabled)
- Added a pacer "Power Mode" setting to toggle between realistic vs constant power
- Simplified the ride menu
- Fix: use default rider design for new users
- Fix: force cadence reading as an integer
- Switched to monospace font for /ride stats
- Improved the FIT parser
- Minor topnav and layout adjustments
- Added ZWO parser
- Added workouts v1
- Added ability to start a workout using any ZWO file
- Added Athletica.ai integration for workouts
- Added workout ERG mode support
- Added ability to toggle between SIM / ERG for workouts
December 2023
- Added privacy features
- Added route publication requests
- Added
/approvals
page - users can review "follow" and "club join" requests - Split privacy settings into "Profile" and "Activity Details"
- Added "total_calories" into activity FIT files
- Changed from 10w to 5w power increments
- Fixed low cadence pedaling animation
- More realistic physics & momentum (props Mike)
- Clear power / cadence / HR data on iOS device dropout
- Added route moderation (submit routes for publication)
- Route processing - improved elevation accuracy
- Route processing - improved bridge auto-detection
- Route processing - adding basic smoothing
- Route processing - added warnings when uploaded route contains issues
- Display route "version" on listing and detail pages
- Fixed route thumbnail edge-case issue
- Renamed "Trainer Difficulty" to "Gradient Feel"
- Avatar cadence now matches sensor input, if present
- Fixed issue of a map crashing close to the end of the route
- Handled issues of steep cliffs in the route
- Slightly improved "save settings" button visibility
- Rider colours corrected
- Fixes/improvements to ground and foliage shaders
- Fixes/improvements to tree rendering
- Water body experiments with seams yet to be resolved
- Initial work for supporting different biomes
- Reworking road map layout
- Added
web-ble
connection dropout handling - Added self-hosted ground cover tiles
- Added two-tone fog
- Set correct sun angle based on latitude
- Improved sky shader
- Use route title as the default activity title
- Use activity title as the "Download FIT File" filename
- Fixed activity timer issue when saving before the avatar fully stops
November 2023
- More accurate ground cover
- Allow all users to upload routes (during the beta period)
- Work-in-progress: lakes, rivers, other non-ocean water bodies
- Released the iOS connector app on the App Store ๐
- Fixed Wahoo (WCPS) protocol issues
- Improved route parsing and distance calculation
- Added the ocean
- Added beach/sand texture
- Improved bridges over water
- Improved grass textures
- Moved hosting to Cloudflare
- Fixed reactivity when navigating between pages
- Fixed various FE-C over BLE issues
- Improved route editor's "Closed loop" detection
- Improved error handling for FTMS timeouts
- Support HR readings from controllable devices
- Refactored trees, will be easy to add future variants
- Improved support for WCPS protocol
- Added proper login and signup functionality
- Added password reset
- Added minimap to route page
- Added 1-click route reprocessing
- Automatically trim out minor flaws in uploaded routes
- Improved rider / peloton motion planning
- Fixed route editor bugs, added "undo" feature
- Added basic homepage text and styling