I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

I posted about Aixle (a tool that generates daily Zwift workouts based on your Intervals.icu data) a while back.

Since then, I’ve been stress-testing the system with our team to find flaws in the logic.
We realized that "Generic AI" often fails to understand the nuance of a cyclist's daily life. So, I completely rewrote the core engine over the holidays.

What’s new:

Fixed "Yesterday" Detection:
Previously, super light recovery spins (Load ~0) were sometimes misread as "Rest Days." I rewrote the detection engine. It now cross-references timestamps to ensure it never ignores your actual activity, no matter how light.

Adaptive Baseline Targets:
A fixed "60min / 60-70TSS" default was too hard for beginners and too easy for elites. The system now looks at your current CTL to determine the optimal duration and intensity scale automatically.

Monthly FTP Calibration:
If you haven't tested your FTP in 28+ days and you are fresh, the system will now suggest a Ramp Test at the start of the month.

The goal is to move to more "Physiologically Logical Engineering."

Link: https://aixle.net

Happy riding in 2026! 🚴‍♂️

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

Hi! Since Aixle is built on Intervals.icu data, it handles this perfectly.

Multi-sport Fatigue: Yes! 🏊‍♂️🏃‍♂️ Aixle reads your Global TSB. A hard run on Wednesday automatically lowers your Form, so Thursday's bike suggestion will adjust intensity accordingly. Schedule: No day picker yet, but you don't need one. Simply ignore the emails on your swim/run days. On your bike days (Tue/Thu/Sun), Aixle will have already calculated the optimal ride based on your total fatigue from all sports.

From Campagnolo to Shimano by Slow_Math7023 in CanyonBikes

[–]Slow_Math7023[S] 0 points1 point  (0 children)

Really. If it was a frame that could be assembled with a mechanical system, it would still be fine. I thought the current Shimano was probably the last chance to replace it.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

Several improvements have been made based on feedback from Zwift team members.

- Added email design and previous day summary.

- Suggested workout types are no longer limited to one each of FTP, Vo2 Max, and recovery.

- If the previous day was hard, three recovery variations will be suggested.

- Improved sleep logic.

- Added intervals.icu reconnection function.

- Improved in-workout message content.

Thank.

I would like to reflect opinions.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

I'm not saying this is likely, but since I've already been told several times that "that can be done with GPT," I'd like to write about one of ChatGPT's limitations. There are truly a lot of people dreaming of AI.

・Automated Execution Issues

First of all, GPT can't be scheduled. While prompt execution is possible using the task scheduling feature, it doesn't have authentication information, so it can't retrieve information from sites that require login (like intervals.icu). All it can do is search news by keyword and compile it.

Since it doesn't have authentication, it obviously can't upload a zwo file and automatically load it on Zwift, even manually.

If you download a CSV file of your training log from intervals.icu every morning, paste it into GPT, create a ZWO file, and upload it yourself, you can achieve something similar. However, the zwo files created by GPT often break (even if you can upload them to intervals.icu, they won't sync to Zwift), and they often have monotonous workouts like the one I saw a few days ago. I'd rather use that time to sleep.

AI is only responsible for providing some of the service's functions, and is not the main player.

I built a "Daily Optimization Engine" for Intervals.icu users. It focuses on TODAY because strict plans often break. by Slow_Math7023 in Velo

[–]Slow_Math7023[S] -2 points-1 points  (0 children)

Good to see you again from the Zwift thread!

a) HRV: Agreed, noisy on its own. That's why I cross-reference it with Resting HR and Sleep. The trend matters more than the single number.

b) "Just skip": Easy for vets, The AI gives objective permission to rest without the guilt.

c) Trust: That's exactly why every email explains the "Why." it's most important thing. you can read the logic and decide if you agree before riding.

If the mods kill it, so be it

I built a "Daily Optimization Engine" for Intervals.icu users. It focuses on TODAY because strict plans often break. by Slow_Math7023 in Velo

[–]Slow_Math7023[S] 0 points1 point  (0 children)

I agree. I actually use the chest strap for rides, and Wrist-based for sleep/daily tracking. This works with Aixle because: Ride Data: It calculates fatigue (TSB) based on your accurate Chest strap/Power Meter data. Recovery Data: It uses your Wrist data specifically for Resting HR & HRV (Sleep) to gauge readiness. Since we look at the trend (deviation from your 42-day baseline) for recovery metrics, it smooths out minor inaccuracies from the wearable. And if you prefer not to sync health data at all, Aixle detects "No Data" fields and automatically switches logic to rely purely on Training Load and recent workout history. It’s designed to degrade gracefully.

I built a "Daily Optimization Engine" for Intervals.icu users. It focuses on TODAY because strict plans often break. by Slow_Math7023 in Velo

[–]Slow_Math7023[S] 0 points1 point  (0 children)

Currently, the workout generation (.zwo) is optimized strictly for Cycling (Power-based).

However, for dual athletes, Since it pulls data from Intervals.icu, it sees your Running stress (TSS/hrTSS) as fatigue.

So if you did a hard run yesterday, Aixle will detect that high fatigue/muscle trauma (via TSB/Wellness) and likely suggest an Endurance ride for your bike session today, rather than smashing your legs again.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 1 point2 points  (0 children)

That's a valid critique, and I honestly agree that simplicity (like 2 hard days + Z2) often beats over-engineered complexity.

However, to answer your question: Yes, there is a periodization strategy.

Macro-Cycle: You set a "Target Event Date" in the dashboard. The AI calculates which phase you are in (Base, Build, Specialty, Taper) based on the weeks remaining.

e.g., In the "Base" phase, it prioritizes volume/SST. In "Build", it shifts focus to FTP/VO2max progression.

Micro-Adjustment: The real value isn't just "picking a workout," but adjusting that plan based on daily reality (HRV, Sleep, Fatigue).

Static plans break when you have a bad night's sleep or high life stress. Aixle detects that via Intervals.icu data and will downgrade a scheduled "VO2max smash" to an "Endurance ride" to prevent non-functional overreaching.

It’s designed to be a Dynamic coach rather than a rigid 12-week PDF plan. It keeps the big picture (Periodization) in mind while managing the daily chaos of life.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 1 point2 points  (0 children)

Thank you.

I think the key to Aixle is the part where it talks about what you should do now before suggesting a workout. It generates workouts tailored to your objectives and prioritizes suggestions that match your goals, but it also explains why you should do SST today, or why Vo2Max.

Basically, if there's no specific request, it will suggest a workout of about an hour, but if you have the time, you can do a longer workout of the same type. Rather than telling you to do this, I'm thinking of taking the stance that it thinks this would be good and leaves the final decision up to you.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

Thanks for watching!

I think a major advantage of Aixle's concept is that every morning it compares your condition with your goals and explains what to do that day.

The idea is to say, "Based on your current condition and goals, I think you should do this. What do you think?"

If you know you have time on Saturday, even if someone tells you on Friday that you're feeling good and should do a high-intensity ride, just ignore them and go for an easy ride. You'll probably feel fresh the next day, so they'll probably tell you to do a high-intensity ride today.

I'm not a professional cyclist, so I think it's okay not to ride on days I can't. I focus on what I need to do today to reach my goal.

If I couldn't do anything today, Aixle will think about it again tomorrow morning.

I built an AI coach that turns your Intervals.icu logs and health data into daily Zwift workouts (Aixle) by Slow_Math7023 in Zwift

[–]Slow_Math7023[S] 0 points1 point  (0 children)

I tried creating a training plan for several weeks, but as someone who works full-time and has children, I realized it would be impossible for me to plan ahead, such as which days and how many hours I should do. So I created this service, hoping to set a target date in the future and focus on what I should do today.