Dans cet article
Voir le patron se construire.
Avec Yarnify3D, nous voulons permettre à une personne d’écrire un patron de crochet et de voir sa représentation en 3D se construire au fur et à mesure.
Le problème, c’est qu’une liste de mailles ne nous donne pas directement leur position dans l’espace. Nous devons comprendre comment elles s’attachent, quelles dimensions elles occupent et comment les rangs influencent la forme.
« Je suis en train d’écrire et je vois mon patron se construire pendant que je suis en train de l’écrire. »
Ce côté immédiat guide notre approche : calculer une forme plausible avec des heuristiques, sans attendre qu’une longue simulation physique se stabilise.
Du texte aux instructions.
Le parser transforme le texte en une représentation typée du patron. On y retrouve notamment le type de maille, sa quantité, sa couleur et le rang auquel elle appartient.
11: 4 ch
22: 3 scIci, ch désigne une maille en l’air et sc une maille serrée. Le moteur réserve une chaîne de rotation : les quatre mailles en l’air fournissent trois bases utilisables pour le rang suivant.
Le patron saisi
1: 4 ch 2: 3 sc
L’analyse ne se limite pas à reconnaître des mots. Elle résout les répétitions et les comptes, et signale des incohérences. Une instruction peut être compréhensible tout en demandant davantage de mailles de base que le patron n’en fournit.
Relier, puis placer les mailles.
Nous construisons ensuite un graphe : des points pour les mailles, et des liens pour leurs attaches. Cette étape décrit les relations avant de leur attribuer des coordonnées.
Le placement utilise ces relations, les dimensions des mailles et des règles géométriques pour estimer la forme. Pour certaines sections fermées, nous approximons aussi l’effet du rembourrage qui pousse les parois vers l’extérieur.
Le résultat est une approximation du crochet réel. Nous privilégions un aperçu immédiat, dont les heuristiques peuvent progresser grâce aux retours utilisateurs.
Une fois les points placés, Three.js affiche les nœuds et les courbes qui les relient. Nous construisons des données pour le rendu, plutôt que de générer un programme JavaScript à partir du patron.
Affiner la forme, en complément.
La simulation physique est une option séparée du placement initial. Rapier représente les points par des corps reliés avec des contraintes de ressort et de corde, puis fait évoluer leurs positions.
Cette simulation vise un comportement plus proche du crochet réel, mais elle reste imparfaite. Nous souhaitons notamment y intégrer la pression du rembourrage, déjà approximée dans le placement géométrique, pour mieux reproduire le volume des formes fermées.
Placement heuristique
Une forme calculée à partir du patron et des relations entre les mailles.
Simulation Rapier
Des positions qui évoluent selon les contraintes physiques du modèle.
Garder un aperçu pendant les corrections.
Un patron en cours de saisie est souvent incomplet. Faire disparaître la représentation à chaque erreur rendrait l’édition pénible.
Nous conservons donc la dernière version validée pour l’affichage. L’éditeur peut signaler un problème pendant que l’aperçu reste visible ; lorsqu’une nouvelle version passe la validation, elle remplace la précédente.
Améliorer sans perdre la fluidité.
Nous comptons affiner nos heuristiques au fil des retours utilisateurs. L’objectif reste le même : rapprocher l’aperçu du crochet réel tout en conservant la sensation de voir son patron se construire pendant qu’on l’écrit.
C’est ce compromis entre fidélité et interaction immédiate qui guide l’évolution du moteur.
Tu veux découvrir le projet ?
Explorer Yarnify3D ↗