⚡ Puissance
La puissance disponible dépend de la puissance maximale du coureur, de l’effort, de l’efficacité de pédalage, de la fatigue et de l’hydratation.
Comprendre la simulation, gérer l’effort, les rapports, la fatigue, l’hydratation et les équipiers, créer une route ou importer un parcours BRouter, exploiter l’aspiration et lire les statuts de course.
Le principe est simple à prendre en main : tu contrôles ton coureur et peux aussi donner des ordres à tes équipiers. La difficulté vient de l’équilibre entre effort, cadence, fatigue, hydratation, terrain, vent et aspiration.
La puissance disponible dépend de la puissance maximale du coureur, de l’effort, de l’efficacité de pédalage, de la fatigue et de l’hydratation.
La pente modifie fortement la force à fournir. Le poids du cycliste, du vélo et de l’eau transportée est pris en compte.
Le vent et la traînée aérodynamique deviennent essentiels à vitesse élevée. L’aspiration réduit la surface aérodynamique effective.
La fatigue augmente au-dessus d’un effort soutenu et redescend en levant le pied. Chaque coureur possède sa propre résistance à la fatigue.
L’IA cherche à rester dans les groupes, à recoller aux groupes proches et peut ralentir si un groupe plus important revient derrière.
Les adversaires peuvent protéger un leader, attaquer, suivre une attaque, basculer en récupération ou maintenir une échappée.
Vue longitudinale du parcours, positions des coureurs et profil. Le zoom permet de passer d’une lecture globale (km) à une lecture très rapprochée (mètres).
Vue du dessus pour lire le placement latéral, les dépassements, les sillages et la position des coureurs sur la largeur de la route.
Disponible pour les parcours CSV avec coordonnées exploitables. Elle suit le coureur observé et peut afficher fond cartographique ou satellite si les services de tuiles sont accessibles.
Classement, équipe, caractéristiques des coureurs, puissance, état, énergie, hydratation et autres télémétries peuvent être dépliés.
Les statuts décrivent l’intention tactique active d’un coureur IA. Ils influencent son effort cible et ses décisions.
Chaque équipier de ton équipe peut recevoir une consigne. Les adversaires suivent leur propre IA, avec un leader choisi en fonction notamment de la puissance maximale et de la résistance à la fatigue.
L’équipier prend ses propres décisions : peloton, protection, attaque, suivi ou récupération.
Il cherche à se placer autour de la cible et à lui offrir un abri. Plusieurs protecteurs se répartissent en file.
Il déclenche une offensive, sauf s’il est trop fatigué ; il peut ensuite passer en échappée.
Il réduit son effort pour retrouver des réserves. Utile avant une côte ou après un relais très coûteux.
La masse utilisée pour la résistance de route inclut le poids du coureur, l’eau encore dans la gourde et environ 9 kg pour le vélo/équipement. Une gourde pleine de 500 ml ajoute donc environ 0,5 kg.
La pente est calculée à partir des altitudes autour du point courant. En montée, la composante gravitaire augmente fortement la puissance nécessaire.
Vent positif = vent de face ; vent négatif = vent favorable. Le calcul aérodynamique utilise la vitesse d’air relative.
Les bords de route peuvent augmenter la résistance au roulement. Ce module reste expérimental et très sensible au réglage de pénalité latérale.
Le cardio suit progressivement une cible liée aux watts et à la pente. Il sert d’indicateur physiologique plutôt que de contrôle direct.
La température évolue selon l’altitude et de petites variations locales. Le modèle applique environ −6 °C / 1000 m de gain d’altitude.
L’aspiration dépend à la fois de la distance longitudinale et du décalage latéral. Le sillage est représenté comme un cône qui s’élargit derrière le cycliste de tête.
À environ 1,8 m, le bonus retombe à zéro. Cela évite de considérer un chevauchement quasi physique comme une aspiration parfaite.
Le maximum se situe autour de 2,5 m derrière le coureur précédent, si l’alignement latéral est bon.
L’effet décroît ensuite jusqu’à disparaître vers 12 m.
La version actuelle ne simule pas un système nutritionnel complexe en calories/glucides : la nourriture agit directement sur la fatigue. L’eau, elle, agit sur le niveau d’hydratation.
La perte augmente avec la puissance au-delà d’un seuil et avec la chaleur. À partir de 20 °C, le facteur thermique monte progressivement jusqu’à environ ×1,8 à très forte température. La température locale dépend aussi de l’altitude.
Le jeu possède 16 rapports. Leur développement va approximativement de 1,4 m à 14 m par tour de pédale, avec une progression régulière.
L’interface indique une zone confortable autour de 80–95 tr/min. L’IA vise en pratique environ 88 tr/min avec une petite variation individuelle.
En mode auto, le rapport change quand la cadence s’éloigne suffisamment de la cible, avec un délai entre deux changements pour éviter l’oscillation.
L’efficacité de pédalage reste maximale proche de la cadence cible. Plus l’écart devient grand, plus une partie de la puissance théorique est perdue. Cela donne un intérêt réel au choix du rapport sans transformer le jeu en simulateur de transmission complet.
Le générateur construit un profil continu à partir de plusieurs familles d’ondulations. Il crée aussi une sinuosité locale et des éléments de décor.
| Réglage | Plage | Effet |
|---|---|---|
| 📏 Distance | 5–250 km | Longueur totale du parcours. |
| ⛰️ Relief | 0–100 | Amplitude globale des variations d’altitude. |
| 🌊 Profil | 0–100 | 0 = longues ondulations ; 100 = terrain plus nerveux et rapproché. |
| 🎲 Irrégularité | 0–100 | Ajoute surtout les petites bosses et variations courtes. |
| ↪️ Sinuosité | 0–100 | Génère un coût de virage local utilisé par l’affichage et la route. |
| ⛰️ Altitude départ | 0–2500 m | Altitude de référence au départ. |
La résolution actuelle vise environ un point de terrain tous les 25 m, ce qui permet une pente locale beaucoup plus fine que les premières versions.
Le jeu accepte le format CSV exporté par BRouter Web ↗. Il reconnaît automatiquement un séparateur tabulation, point-virgule ou virgule.
| Colonne | Obligatoire | Utilisation |
|---|---|---|
Longitude | ✅ | Position GPS. Accepte degrés décimaux ou microdegrés. |
Latitude | ✅ | Position GPS. Accepte degrés décimaux ou microdegrés. |
Elevation | ✅ | Altitude du tronçon, utilisée pour le profil et la pente. |
Distance | ✅ | Longueur du tronçon ; la somme donne la distance totale. |
TurnCost | ◻ optionnel | Coût de virage. Sert à construire la sinuosité du parcours. |
WayTags | ◻ optionnel | Permet d’extraire le type de voie via highway=.... |
| Autres colonnes BRouter | ◻ | Peuvent rester présentes : elles sont simplement ignorées si non utilisées. |
Longitude\tLatitude\tElevation\tDistance\tCostPerKm\tElevCost\tTurnCost\tNodeCost\tInitialCost\tWayTags\tNodeTags\tTime\tEnergy
highway=secondary, surface=asphalt ou junction=roundabout.Le générateur d’équipes fonctionne en deux étapes : sélection des équipes puis personnalisation des coureurs.
🐔 Coqs 🇫🇷 · ♉ Bulls 🇺🇸 · 🌄 Verde 🇧🇷 · 🐉 Dragons 🇨🇳 · ⚔ Vikings 🇳🇴 · 🍕 Squadra 🇮🇹 · 🌸 Sakura 🇯🇵 · 🐆 Panthers 🇿🇦 · 🦅 Condors 🇨🇴 · 🏔️ Alpen 🇨🇭 · 🦁 Lions 🇬🇧 · 🦘 Kangaroos 🇦🇺.
Base génération : 400 W. Variation par défaut ±25 W ; plage de l’éditeur de génération autour de 350–450 W.
Base 1,00×. Plus la valeur est haute, moins la fatigue s’accumule à effort identique.
Base 75 kg. Le poids influence surtout les montées et la résistance de roulement.
Base 178 cm. Elle influence légèrement la surface aérodynamique et l’abri fourni.
Sous environ 600 px, les contrôles passent en panneaux : 🏋️ effort, 🩺 corps, ⚙️ dérailleur, 👥 équipe. Un seul panneau est affiché à la fois afin de limiter la hauteur occupée. Les boutons sont agrandis pour le tactile.
Le commentateur repose sur la synthèse vocale du navigateur (SpeechSynthesis). Il peut annoncer les changements de statut et des informations contextuelles de course.
Choix parmi les voix disponibles dans le navigateur/système.
Réglable de 0,2× à 2×. Valeur initiale autour de 1,08.
Réglable de 0,2 à 2. Valeur initiale autour de 0,90.
Les commentaires peuvent porter sur le peloton, la protection, les attaques, les échappées, la récupération et le suivi d’un équipier. Les développements récents ajoutent aussi des commentaires d’ambiance : kilomètres, pente, vent, température, hydratation, énergie, aspiration et situation de course.
| Status | Fonction | État actuel |
|---|---|---|
| ✅ Stable | Effort / watts / vitesse | Cœur du moteur de course, utilisé par tous les coureurs. |
| ✅ Stable | Fatigue / récupération | Accumulation au-dessus de 60 % d’effort, récupération en dessous. |
| ✅ Stable | Hydratation / gourde | Perte selon effort + température ; 5 prises de 100 ml par gourde initiale. |
| ✅ Stable | 16 rapports / cadence auto | Dérailleur automatique et rendement de cadence actifs. |
| ✅ Stable | Terrain généré | Relief, profil, irrégularité, sinuosité, altitude et décor. |
| ✅ Stable | Import CSV BRouter | Altitude, distance, GPS, TurnCost, WayTags et mini-carte. |
| ✅ Stable | Générateur d’équipes | Choix équipes, adversaires, variations et édition individuelle. |
| 🧪 Évolutif | Aspiration 2D | Distance + cône latéral + taille + contributions multiples. |
| 🧪 Évolutif | Trajectoires latérales | Recentrement, recherche de roue, évitement, collision et dépassement encore en réglage. |
| 🧪 Évolutif | IA tactique | Peloton, protection, attaque, échappée, récupération et suivi ; paramètres encore affinés. |
| ⚠ À surveiller | Contrôle effort d’un équipier | Zone ayant encore produit des incohérences fin septembre ; vérifier l’interaction IA / contrôle manuel. |
| 🧪 Évolutif | Commentateur TTS | Fonctionnel, enrichi progressivement avec contexte et anti-répétition. |
Longitude, Latitude, Elevation et Distance. Ce sont les quatre colonnes obligatoires.Les mots techniques du guide renvoient vers cette section. Utilise la recherche pour filtrer instantanément.
Réduction de traînée obtenue en restant dans le sillage d’un ou plusieurs coureurs. Dépend de la distance et du décalage latéral.
Phase d’effort très élevé destinée à créer rapidement un écart avec le groupe.
État d’un coureur ayant réussi à faire le trou et qui maintient ensuite une allure soutenue.
Outil de calcul d’itinéraire dont l’export CSV sert de format de référence pour charger une route réelle.
Nombre de tours de pédale par minute. Une cadence proche de la cible maximise l’efficacité de la puissance demandée.
Fréquence cardiaque simulée, affichée en battements par minute et liée surtout aux watts et à la pente.
Garde-fou du placement latéral visant à éviter que deux vélos occupent physiquement la même zone.
Coureur qui reçoit actuellement les commandes d’effort. Il peut être distinct du simple coureur observé selon le contexte.
Système de 16 rapports. En automatique, le jeu ajuste le rapport pour rester proche de la cadence cible.
Somme des gains d’altitude positifs successifs sur un parcours importé.
Distance parcourue pour un tour de pédale sur un rapport donné, de ~1,4 à 14 m dans la version actuelle.
Consigne de 0 à 100 % servant à déterminer la puissance demandée. Au-dessus de 60 %, la fatigue s’accumule.
Coefficient individuel qui modifie la vitesse d’accumulation de fatigue.
Jauge interne 0–100. Plus elle est élevée, plus la puissance réellement produite est pénalisée.
État où un coureur adapte son effort pour rester proche d’un équipier en attaque ou en échappée.
Variation d’altitude rapportée à la distance horizontale, exprimée en pourcentage.
Ensemble de coureurs reliés par des écarts inférieurs à une distance donnée, utilisé par l’IA pour recoller ou attendre.
État hydrique du coureur. Elle baisse avec le temps, la puissance et la chaleur et remonte lorsqu’il boit.
Logique qui pilote les coureurs non contrôlés : effort, statut, ordre, rapport, boisson et placement.
Paramètre du générateur qui augmente surtout l’amplitude des petites variations de relief.
Position gauche/droite du coureur par rapport à l’axe de la route, exprimée en mètres.
Coureur de référence d’une équipe IA, choisi par un score combinant notamment puissance et endurance.
Format entier de coordonnées GPS utilisé par certains exports : la valeur est divisée par 1 000 000 pour retrouver des degrés décimaux.
État tactique normal où le coureur suit le rythme collectif et réagit aux groupes voisins.
Voir Grade. Son effet sur la vitesse dépend aussi de la masse totale.
Masse corporelle du coureur. Le calcul de déplacement ajoute l’eau transportée et environ 9 kg pour le vélo/équipement.
Puissance mécanique instantanée effectivement produite après application de l’effort, de la cadence, de la fatigue et de l’hydratation.
État où un équipier se positionne pour servir de roue et d’abri à une cible.
État tactique à faible effort destiné à faire redescendre la fatigue.
Type de voie extrait du tag BRouter highway=... : secondary, residential, cycleway, footway, etc.
Indicateur de caractère tournant d’une route. Sur CSV, il est dérivé des valeurs de TurnCost.
Interpolation douce utilisée notamment pour faire monter puis descendre l’intensité de l’aspiration sans rupture brutale.
Condition locale calculée à partir d’une température de départ, de l’altitude et de variations lentes ; elle accélère la perte hydrique.
Pas de temps simulé entre deux mises à jour du moteur. Il est distinct de la fréquence d’affichage.
Valeur BRouter associée au coût d’un changement de direction ou d’un virage. Cycliste l’utilise pour dériver une sinuosité locale.
Coureur actuellement affiché/suivi dans les vues et panneaux. Il n’est pas forcément contrôlable s’il appartient à une autre équipe.
Vent signé utilisé dans la vitesse d’air : positif de face, négatif favorable.
Champ textuel BRouter décrivant la voie : type highway, revêtement, vitesse, aménagement cyclable, etc.
Distance visible sur le canvas principal. Les niveaux actuels couvrent 60 km, 10 km, 2 km, 200 m, 50 m, 20 m et 10 m.
Chronologie reconstituée à partir des versions et échanges de développement disponibles. Les dates correspondent aux jalons attestés ; les idées historiques non présentes dans la version actuelle sont signalées.
Naissance du concept : jeu cycliste HTML/JS fondé sur effort, dénivelé, vent, fatigue, hydratation/gourde, rapports, cardio, puissance, aspiration, travail d’équipe et profil de dénivelé. Le premier prototype autonome est défini avec 1 joueur, 3 équipiers IA et plusieurs adversaires soumis aux mêmes contraintes.
Le relief généré par sommes de sinusoïdes apparaît. L’aspiration est déjà présente avec un sillage longitudinal d’environ 18 m ; les premières corrections portent sur son rendu et sa cohérence visuelle.
Le dessin des coureurs devient dépendant du niveau de zoom. Le problème des vélos corrects à 50 m mais trop gros à 200 m lance la réflexion sur une échelle d’affichage cohérente.
L’import de parcours CSV/BRouter, la mini-carte GPS et les coûts de route prennent de l’importance. Le jeu passe à 16 rapports ; la pente est affinée et la génération de terrain évolue vers une résolution proche de 25 m.
Travail sur la séparation des pertes hydriques liées à l’effort et à la température, sur le rythme de rafraîchissement de l’interface et sur le comportement du peloton vis-à-vis des groupes devant et derrière.
Ajout des réglages TTS, des commentaires d’ambiance, des contrôles mobiles par panneaux, des cartes de parcours, du nom des coureurs sur le torse et d’une aspiration plus réaliste avec zone optimale proche de 2,5 m.
Introduction de la position latérale des coureurs, de la logique de dépassement/évitement, d’une vue du dessus sur environ 20 m, des cônes d’aspiration colorés et du défilement des repères de distance.
Décision structurante : lorsqu’un zoom de 20 m est choisi, le jeu doit montrer exactement 20 m aussi bien sur mobile que sur grand écran. Refonte du rapport mètres ↔ pixels et prise en compte du devicePixelRatio.
Discussion des règles de ravitaillement. Le parcours Saint‑Malo → Dinard de 12,4 km sert de cas concret ; le principe retenu reste un stock embarqué par coureur, sans ravitaillement externe nécessaire sur ce type de course.
La version publiée inclut une sélection plus riche des équipes/coureurs. Le contrôle de l’effort d’un équipier fait apparaître une interaction délicate entre le coureur observé, le coureur contrôlé et la logique IA.
Le bug de contrôle d’effort des coéquipiers reste un chantier actif. Il devient l’un des principaux points de stabilisation de la logique équipe/IA.
Création de ce guide autonome pour figer les règles, subtilités, raccourcis, imports, statuts, lexique et historique de développement autour de la version courante.