Simulateur d'Origami by Amanda Ghassaei.com |
Libre adaptation de L'Original !
|
Cette application vous permet de simuler comment n'importe quel motif de plis d'Origami va se plier. Il peut sembler un peu différent de ce que vous considérez généralement comme de l'Origami - plutôt que de plier le papier en un ensemble d'étapes séquentielles, cette simulation tente de plier chaque pli simultanément. Il le fait en résolvant itérativement de petits déplacements dans la géométrie d'une feuille initialement plate due aux forces exercées par les plis. Ce solveur étend le travail des sources suivantes:
Origami Folding: A Structural Engineering Approach by Mark Schenk and Simon D. Guest (VO)
Freeform Variations of Origami by Tomohiro Tachi (VO)
Origami Folding: A Structural Engineering Approach by Mark Schenk and Simon D. Guest (VO)
Freeform Variations of Origami by Tomohiro Tachi (VO)
Ce motif de plis a été généré par Maze Folder, une application d'Erik Demaine, Martin Demaine et Jason Ku qui crée des motifs de plis pour tout labyrinthe surélevé sur une grille carrée. Basé sur le papier Folding Any Orthogonal Maze par les mêmes auteurs.
Toutes les méthodes de simulation ont été écrites à partir de zéro et sont exécutées en parallèle dans plusieurs shaders de fragments GPU pour des performances rapides.
Développé par Amanda Ghassaei comme projet final pour les Algorithmes de pliage géométrique (VO). Le code disponible sur Github. Si vous avez des motifs de plis intéressants qui feraient de bons fichiers de démo, envoyez-les moi (Amanda) pour que je puisse les ajouter au menu Exemples.
Bibliothèques Externes :
- Tout le rendu et l'interaction 3D sont faits avec three. js.
- Path-Data-Polyfill avec l'analyse des chemins SVG.
- FOLD utilisé comme structure de données interne, méthodes de l'API FOLD utilisées pour l'analyse SVG.
- Les faces polygonales arbitraires de la géométrie importée sont triangulées grâce à la bibliothèque Earcut.
- Portabilité à plusieurs contrôleurs VR par THREE. VRController.js.
- L'interface Graphique Utilisateur par dat.guiVR.
- numeric. js pour les opérations d'algèbre linéaire.
- FileSaver pour l'enregistrement des fichiers côté client.
- L'exportation vidéo GIF et WebM utilise CCapture.
- jQuery, Bootstrap et le thème Flat UI utilisés pour construire l'interface graphique courante.
Instructions :
- Faites glisser le curseur Pourcentage de pli pour contrôler le degré de pliage du motif (100% il est complètement plié, 0% il est déplié, et -100% est complètement plié avec les affectations montagne/vallée opposées).
- Clic Déplacer pour faire pivoter le modèle, la molette pour le zoom.
- Importer d'autres modèles dans le menu Exemples.
- Exportez des fichiers FOLD ou des modèles 3D (STL ou OBJ) de l'état plié de votre dessin (Fichier > Enregistrer la simulation sous...).
- Importez vos propres motifs de plis au format SVG ou FOLD, en suivant ces instructions.
CONSEILS POUR L'IMPORTATION DE FICHIERS
Les fichiers de conception défectueux vont générer des erreurs et créer des modèles qui explosent ou ne peuvent pas être résolus, voici quelques astuces pour importer des fichiers FOLD ou SVG qui fonctionnent.
Importation d'un fichier FOLD:
Le format de fichier FOLD est spécifié dans ces documents.
Cet outil importe les fichiers FOLD v1.0 avec tous les champs suivants remplis:
Vous pouvez spécifier l'angle de pliage cible de chaque pli en utilisant le champ edges_foldAngles.
Si vous n'êtes pas sûr que votre fichier FOLD est valide, vous pouvez l'inspecter à l'aide du Viewer FOLD.
Les fichiers de conception défectueux vont générer des erreurs et créer des modèles qui explosent ou ne peuvent pas être résolus, voici quelques astuces pour importer des fichiers FOLD ou SVG qui fonctionnent.
Importation d'un fichier FOLD:
Le format de fichier FOLD est spécifié dans ces documents.
Cet outil importe les fichiers FOLD v1.0 avec tous les champs suivants remplis:
- vertices_coords (coordonnées des sommets)
- edges_vertices (sommets des arêtes)
- edges_assignment (assignements des arêtes)
- faces_vertices (sommets des faces)
Vous pouvez spécifier l'angle de pliage cible de chaque pli en utilisant le champ edges_foldAngles.
Si vous n'êtes pas sûr que votre fichier FOLD est valide, vous pouvez l'inspecter à l'aide du Viewer FOLD.
Importation d'un fichier SVG:
- L'importateur SVG prend en charge les trajectoires d'Objets, ligne, rectangle, polygone et polyligne avec la couleur de trait appropriée:
- Les plis de montagne ont un trait rouge - rgb (255,0,0), hex #ff0000
- Les plis de vallée ont un trait bleu - rgb (0,0,255), hex #0000ff
- Les bordures d'arêtes ont un trait noir - rgb (0,0,0), hex #00000000 - utilisez ce type de bordure pour le contour du motif et les trous internes.
L'angle de pliage final d'un pli de montagne ou de vallée est déterminé par son opacité.
Par exemple, 1.0 = 180° (entièrement plié), 0.5 = 90°, 0 = 0° (plat).
N'importe quel angle de pliage entre 0° et 180° peut être utilisé.
Les motifs suivants contiennent des plis avec différents angles de pliage final:
Par exemple, 1.0 = 180° (entièrement plié), 0.5 = 90°, 0 = 0° (plat).
N'importe quel angle de pliage entre 0° et 180° peut être utilisé.
Les motifs suivants contiennent des plis avec différents angles de pliage final:
- Avant que le modèle ne puisse entrer dans le simulateur, cet outil triangulera automatiquement les régions du motif qui forment des polygones de plus de trois côtés. Pour contrôler les triangulations, tracez des lignes en jaune - rgb (255,255,0), hex #ffff00. En général, les motifs sont plus stables lorsque leur triangulation est symétrique et minimise les triangles longs et fins.
- Vous pouvez voir comment l'application triangulait automatiquement votre motif en activant la visibilité "Plis facettés" dans le menu Options avancées > Visibilité des arêtes à gauche de l'écran. Il peut ne pas être nécessaire d'ajouter des lignes de triangulation sur votre motif.
- Les plis facettés (lignes de triangulation jaunes) sont des plis qui tentent de rester plats (angle de pliage de 0°) au fur et à mesure que le motif se plie, mais un certain respect des contraintes de la simulation leur permettra de se plier légèrement. Le dessin en plis facettés vous permet de contrôler la façon dont le modèle se plie entre plis de montagne et plis de vallée. Ceci est particulièrement important dans les motifs avec des plis courbes.
- Les découpes ont un trait vert - rgb (0,255,0), hex #00ff00 - utilisez ce type d'arête pour former des fentes minces dans le motif.
Le Kirigami est une variante de l'Origami qui incorpore des coupes dans un motif de pliage. De nombreux motifs "popup" utilisés dans les cartes ou les livres sont des exemples de Kirigami. Les lignes vertes dans les motifs de plis sont traitées comme des découpes lorsqu'elles sont importées dans l'application. La gauche est un motif de plis pour une tour Miyamoto par Happy Folding, le milieu et la droite sont des motifs "popup" de Popupology.
- Les plis inertes ont un trait magenta - rgb (255,0,255), hex #ff00ff - les plis de ce type se balancent librement. Utilisez ce type de plis lorsque vous n'êtes pas certain de l'angle auquel certains plis de votre motif doivent être pliés.
- Le style de ligne et la largeur de trait n'ont pas d'importance.
- Supprimez tous les groupes et masques de découpage de votre fichier avant l'importation.
- Cet outil devrait être capable de nettoyer automatiquement les fichiers de sommets légèrement désalignés, de sommets errants, de lignes en double et de sommets supplémentaires tombant au milieu d'une arête, mais il est recommandé de supprimer ces erreurs vous-même afin d'éviter les problèmes.
- Si votre simulation ne fonctionne pas, vérifiez que le motif importé est correct en cliquant sur la vue Motif dans la barre de navigation supérieure. Vous pouvez également télécharger une copie du motif importé (fichier > Enregistrer le motif sous SVG) et le visualiser dans un programme d'édition vectoriel de votre choix.
J'utilise Illustrator pour créer des SVG (bien que tout programme d'édition vectorielle devrait être correct).
Voici quelques astuces que j'ai trouvées pour faire des SVGs à importer dans cet outil.
Voici quelques astuces que j'ai trouvées pour faire des SVGs à importer dans cet outil.
- Si vous démarrez avec un fichier vectoriel prédéfini, commencez par désassembler tous les groupes (Sélectionner tout + Objet > Désassembler tous les groupes) et libérez tous les masques de découpe (Sélectionner tout + Objet > Masque de découpe > Relâcher).
- Créez la géométrie à l'aide des outils Segment de ligne, Rectangle et Polygone.
- Illustrator peut vous aider à sélectionner toutes les lignes d'un type particulier afin que vous puissiez éditer leur couleur ou leur opacité ensemble. Cliquez sur la ligne, puis allez dans Sélectionner > Même > Apparence pour sélectionner toutes les lignes similaires du motif.
- Assurez-vous que les propriétés CSS sont réglées sur Attributs de présentation dans les options avancées.
- Enfin, appuyez sur Enregistrer sous et sélectionnez l'extension. svg. J'utilise les paramètres par défaut de SVG 1.1, mais la version 1.0 fonctionnera aussi bien.
INTERACTION UTILISATEUR
Basculez cette commande pour activer/désactiver l'interaction souris avec le modèle d'Origami. Lorsqu'elle est activée, la souris sur le modèle affiche un surligneur; cliquer et déplacer vous permet d'interagir avec le modèle en temps réel. Des interactions très intenses avec le modèle peuvent le faire apparaître dans une configuration étrange qui ne peut s'échapper - utilisez le bouton Paramètres de l'animation > Réinitialiser pour redémarrer la simulation à partir d'un état plat.
PARAMETRES DE SIMULATION
Cette application utilise une méthode de simulation dynamique conforme pour résoudre la géométrie d'un motif Origami à un angle de pliage donné. La simulation met en place plusieurs types de contraintes: les contraintes de distance empêchent la feuille de s'étirer ou de se comprimer, et les contraintes angulaires plient ou aplatissent la feuille. Chacune de ces contraintes est pondérée par une rigidité - plus la contrainte est rigide, plus elle est appliquée dans la simulation.
La rigidité axiale est la rigidité des contraintes de distance. L'augmentation de la rigidité axiale diminuera l'étirement et la compression (déformation) dans la simulation, mais ralentira également le solveur.
Les rigidités des plis et des facettes correspondent à deux types de contraintes angulaires. La rigidité du pli est la rigidité des plis de la montagne et de la vallée dans le motif Origami. La rigidité des facettes est la rigidité des faces triangulées entre les plis du motif. L'augmentation de la rigidité des facettes fait que les faces entre les plis restent très plates lorsque l'Origami est plié. Comme la rigidité facettée devient très élevée, cette simulation s'approche d'une simulation d'Origami rigide, et modélise le comportement d'un matériau rigide (comme le métal) une fois plié.
A l'intérieur, les rigidités de contrainte sont mises à l'échelle par la longueur de l'arête associée à cette contrainte pour déterminer sa rigidité géométrique. La rigidité axiale est divisée par la longueur et, pour les contraintes angulaires, la rigidité est multipliée par la longueur.
Les rigidités des plis et des facettes correspondent à deux types de contraintes angulaires. La rigidité du pli est la rigidité des plis de la montagne et de la vallée dans le motif Origami. La rigidité des facettes est la rigidité des faces triangulées entre les plis du motif. L'augmentation de la rigidité des facettes fait que les faces entre les plis restent très plates lorsque l'Origami est plié. Comme la rigidité facettée devient très élevée, cette simulation s'approche d'une simulation d'Origami rigide, et modélise le comportement d'un matériau rigide (comme le métal) une fois plié.
A l'intérieur, les rigidités de contrainte sont mises à l'échelle par la longueur de l'arête associée à cette contrainte pour déterminer sa rigidité géométrique. La rigidité axiale est divisée par la longueur et, pour les contraintes angulaires, la rigidité est multipliée par la longueur.
Comme il s'agit d'une simulation dynamique, les sommets de l'Origami se déplacent avec une certaine notion d'accélération et de vitesse. Afin de maintenir la stabilité du système et de l'aider à converger vers une solution statique, l'amortissement Vf est appliqué pour ralentir le mouvement des sommets. Le curseur Amortissement vous permet de contrôler le niveau d'amortissement présent dans la simulation, de 0 (pas d'amortissement) à 1 (amortissement critique). La diminution de l'amortissement rend la simulation plus "élastique". Il peut être utile de désactiver temporairement l'amortissement pour permettre à la simulation de converger plus rapidement vers sa solution statique - en particulier pour les motifs qui mettent beaucoup de temps à se courber.
Une technique d'intégration numérique est utilisée pour intégrer l'accélération à la vitesse et à la position pour chaque pas de temps de la simulation. Différentes techniques d'intégration ont différents coûts informatiques associés, erreurs et stabilité. Cette application vous permet de choisir entre deux techniques d'intégration différentes: l'Intégration d'Euler Vf est le type le plus simple d'intégration numérique (premier ordre) avec une grande erreur associée, et l'Intégration de Verlet est une technique d'intégration de second ordre avec une erreur plus faible et une meilleure stabilité qu'Euler.
Une technique d'intégration numérique est utilisée pour intégrer l'accélération à la vitesse et à la position pour chaque pas de temps de la simulation. Différentes techniques d'intégration ont différents coûts informatiques associés, erreurs et stabilité. Cette application vous permet de choisir entre deux techniques d'intégration différentes: l'Intégration d'Euler Vf est le type le plus simple d'intégration numérique (premier ordre) avec une grande erreur associée, et l'Intégration de Verlet est une technique d'intégration de second ordre avec une erreur plus faible et une meilleure stabilité qu'Euler.
PARAMETRES D'ANIMATION
La simulation dynamique est calculée en résolvant toutes les forces du système, en avançant le temps par petits pas et en actualisant progressivement les sommets de l'Origami. La taille des pas de temps pour cette animation est calculée automatiquement en fonction des rigidités matérielles définies dans la section Paramètres de Simulation: les réglages plus rigides nécessitent des pas de temps plus courts pour résoudre et ralentir la simulation.
Le Nombre d'Etapes de Simulation par Image vous permet de contrôler le nombre d'étapes de temps minuscules à suivre pour chaque cycle de rendu. Si la simulation vous semble houleuse, vous pouvez envisager d'abaisser ce paramètre. Réduire le nombre d'étapes par image ralentira la simulation, mais entraînera une animation plus fluide.
Le Nombre d'Etapes de Simulation par Image vous permet de contrôler le nombre d'étapes de temps minuscules à suivre pour chaque cycle de rendu. Si la simulation vous semble houleuse, vous pouvez envisager d'abaisser ce paramètre. Réduire le nombre d'étapes par image ralentira la simulation, mais entraînera une animation plus fluide.
ERREUR DE SIMULATION
La moyenne des erreurs aux sommets donne une idée de la distance à laquelle les contraintes de distance dans le motif Origami sont violées (c. -à-d. combien la feuille est étirée). L'erreur à chaque sommet est évaluée en faisant la moyenne du pourcentage d'écart de toutes ses contraintes de distance avec les sommets adjacents. Cette erreur est rapportée en pourcentage de la longueur totale de la contrainte de distance pour supprimer les effets d'échelle.
Cette mesure est équivalente à la déformation de Cauchy ou à la contrainte d'ingénierie des contraintes de distance sur ce système. Augmenter la rigidité axiale renforcera ces contraintes et diminuera l'erreur dans la simulation.
Pour visualiser graphiquement l'erreur de chaque sommet, sélectionnez Visualisation des Déformations sous Matériau du Maillage dans le menu de gauche.
Cette mesure est équivalente à la déformation de Cauchy ou à la contrainte d'ingénierie des contraintes de distance sur ce système. Augmenter la rigidité axiale renforcera ces contraintes et diminuera l'erreur dans la simulation.
Pour visualiser graphiquement l'erreur de chaque sommet, sélectionnez Visualisation des Déformations sous Matériau du Maillage dans le menu de gauche.
VISUALISATION DE CONTRAINTES
- Visualisez la Contrainte Interne de l'Origami pendant qu'il se plie en utilisant la Visualisation de la Contrainte dans le menu de gauche des Options Avancées.
La Contrainte de Cauchy Vf est une mesure sans unité de la quantité de matériau étiré ou comprimé sous charge. La visualisation de la Contrainte s'illustre à travers une feuille d'Origami en la mappant à une couleur allant du bleu (pas de Contrainte) au rouge (Contrainte Maximum).
REALITE VIRTUELLE
- Si vous travaillez à partir d'un ordinateur connecté à un casque VR et des commandes manuelles, suivez ces instructions pour utiliser cette application en mode de Réalité Virtuelle interactive.
Cet outil supporte actuellement un mode de Réalité Virtuelle interactive pour le casque et les contrôleurs Vive et Oculus (il peut fonctionner sur d'autres, mais il n'est pas testé). Pour que cela fonctionne, vous devez d'abord utiliser un navigateur compatible WebVR: pour l'instant, seule une compilation expérimentale de Chromium (avec les drapeaux enable-webvr et -enable-gamepad-extensions) et la dernière version de Firefox pour Windows est supportée par cette application.
Lorsque vous ouvrez cette page avec le navigateur approprié, vous verrez un bouton qui indique "ENTRER VR". En cliquant dessus, l'application passera en mode VR interactif. Les commandes manuelles vous permettront de saisir le maillage Origami et de tirer dessus. Ceci est particulièrement intéressant si vous réglez le Matériau du Maillage sur Visualisation de la déformation pour que vous puissiez voir comment vos interactions modifient les déformations internes du matériau.
Dépannage:
Lorsque vous ouvrez cette page avec le navigateur approprié, vous verrez un bouton qui indique "ENTRER VR". En cliquant dessus, l'application passera en mode VR interactif. Les commandes manuelles vous permettront de saisir le maillage Origami et de tirer dessus. Ceci est particulièrement intéressant si vous réglez le Matériau du Maillage sur Visualisation de la déformation pour que vous puissiez voir comment vos interactions modifient les déformations internes du matériau.
Dépannage:
- Si la simulation semble houleuse, pensez à diminuer le paramètre Paramètres de l'animation > Étapes numériques par image.
- L'origami devrait se charger au centre de votre espace de jeu. Si les choses s'envolent au loin, vous devrez peut-être redémarrer votre oreillette et vos contrôleurs et actualiser cette application. Je le fais par SteamVR.
- Si les commandes manuelles n'apparaissent pas, essayez de cliquer sur le bouton Système (Vive) pour les réveiller. Si vous avez toujours du mal à vous connecter, essayez de rafraîchir cette application.
- WebVR évolue rapidement, si vous ne pouvez pas vous connecter, assurez-vous d'avoir la dernière version du navigateur et installez les mises à jour de l'application sur votre casque, vos contrôleurs et vos capteurs.
Typiquement, les motifs d'Origami sont fabriqués à partir de nombreux plis droits, mais en utilisant des plis courbes, il est possible de créer des formes plus organiques. Les plis courbes sont simulés dans l'app en les dissociant en plusieurs petits segments droits - selon le papier Curved Folding. Vo
La procédure pour l'utiliser à partir de Moi!
- Vous pouvez dessiner directement dans Moi3D
Noir, Bleu, Rouge, Magenta, Vert - vous devez en créer un nouveau pour le Jaune!
- Au final "Séparer" tous les segments!
- Exporter au format PDF (Vue de Dessus)
- Ouvrir dans le free Gravit Designer (View / Fit Canvas)
- Enregistrer sous forme de fichier SVG (le fichier doit avoir des minuscules pour l'extension .svg )
Vous pouvez maintenant utiliser le Simulateur d'Origami en ligne et importer le fichier .svg
Ici, Fold Percent était limité à 60 % (dans Origami Simulator lui-même - Options avancées)
Si vous voulez "déplier" un volume de Moi3D,
FormZ Free peut pous aider! |
|