Recuit
Histoire, partie 1
En début d'après-midi, le soleil de fin octobre joue avec le garçon et ses amis. Ce n'est pas encore effrayant. Halloween est dans quelques heures.
Vidéo et code
Cette séquence vidéo montre le recuit simulé pour placer uniformément 3 200 points autour d'une sphère. Initialement les points sont placés en double spirale du pôle nord au pôle sud. Je n'essayais pas de créer une double spirale ; J'espérais une diffusion initiale un peu plus importante, mais cela fonctionne quand même. Les couleurs sont juste pour la visualisation. Après les points initiaux, le processus de recuit commence. https://en.wikipedia.org/wiki/Annealing_(metallurgy ) décrit un processus de recuit physique, dans lequel le métal est chauffé pour détendre une structure cristallisée, permettant aux atomes d'adopter une relation différente. Certains matériaux pourraient même être recuits sous la chaleur du soleil d’octobre. Le JSL ici est modifié pour la vidéo et n'est optimisé pour rien d'autre... mais assez bien. Pendant la phase de recuit, un programme de chauffage et de refroidissement contrôle l'éloignement des points par rapport à leur voisin le plus proche. Parce qu'il y a beaucoup de points rassemblés aux pôles, le calendrier doit maintenir le système au chaud pendant un moment afin que ces points aient le temps de migrer. À cette « température élevée », les points sautent suffisamment loin pour aller souvent trop loin dans le voisinage d'un autre point. La phase de refroidissement progressif du planning laisse les points se stabiliser, bouger de moins en moins. La vidéo se termine avant qu'ils ne soient complètement installés.
Télécharger JSL
Recuit - YouTube

Triangulation
Histoire, partie 2
En fin d'après-midi, il est temps d'enfiler le costume. Ce n’est toujours pas trop effrayant. C'est presque Halloween. Le costume du garçon est un croisement entre un pyjama et une peau de tigre, avec un fin coussinet de pied en plastique cousu au bout des jambes, un masque moulé avec élastique et moustaches peintes, et une queue qui traîne au sol. Très cool. Sa mère a acheté la tenue chez Woolworths, 364 jours plus tôt.
Vidéo et code
Il n'existe que cinq solides platoniciens . Le sixième est l’humour des programmeurs 3D. Le tétraèdre (4 faces), l'octaèdre (8 faces) et l'icosaèdre (20 faces) ont des faces triangulaires, tout comme ce modèle à 6396 faces. La première partie expliquait comment utiliser le recuit pour répartir 3 200 points autour d'une sphère. Le problème consiste désormais à transformer cet ensemble de points en un ensemble de triangles qui ne se chevauchent pas, tout en recouvrant complètement la sphère. JSL a une fonction de triangulation 2D https://community.jmp.com/docs/DOC-6686 . Parce que ces triangles vivent sur une sphère, nous avons besoin d’un algorithme 3D. J'ai utilisé le programme QHULL sur une machine Linux pour effectuer la triangulation 3D. (Au début, le problème semblait résolu et j'ai essayé de bricoler mon propre code. J'avais tort.)
(Les fichiers et le script sont joints. Vous n'avez pas besoin de suivre cette étape. Vous devrez retoucher les chemins des fichiers, peut-être avec $DOWNLOADS.)
Créez un fichier à partir de la table de données JMP qui ressemble à ceci :
Desktop/windowsShare/sphere18.csv. Hand-edit the first two rows with your favorite editor.
3
3200
0.0174574781 -0.009345855 0.9998039265
0.0370915586 0.1378584254 0.9897571777
-0.016638696 -0.082236389 0.9964739485
0.1316324218 0.1496379046 0.9799394895
-0.076811566 -0.102578513 0.9917548246
-0.124948516 -0.055647123 0.9906014669
-0.164864305 -0.100732341 0.9811588843
0.0174820473 0.0708889403 0.9973310063
...
Envoyez-le à l'autre machine et exécutez ceci :
grab some software for a linux machine to do a tessellation in N dimensions (N==3 for us)...
sudo apt-get install qhull libqhull-dev qhull-bin
do the tesselation...
qhull Qt i Bureau/windowsShare/sphere18.zerobased.delaunay
Et récupérez ce fichier à renvoyer à JMP :
head Desktop/windowsShare/sphere18.zerobased.delaunay -- show the output of the tessellation
6396 -- number of triangles
1601 1605 1607 -- zero-based row numbers of vertices of first triangle
1802 1800 1804
1800 1613 1804
1798 1613 1800
1424 1611 1418
1611 1424 1619
1814 1812 1631
1629 1814 1631
1603 1597 1406
...
Le code ici sert à réaliser la vidéo pour expliquer la triangulation... même si je n'ai aucune idée de comment fonctionne réellement l'algorithme QHULL. Je pensais que je devrais peut-être réorganiser l'ordre généré des triangles, mais l'ordre original semblait intéressant. Il y a aussi une fonction d'entrée et de sortie lentehttps://en.wikipedia.org/wiki/12_basic_principles_of_animation#Slow_In_and_Slow_Outvers la fin... démarrer le chariot lentement, accélérer, puis décélérer jusqu'à un arrêt en douceur. Le suffixe 18 vous donne une indication sur le nombre d'itérations parcourues par ce code. Cela fait un joli costume pour le monde.
Télécharger JSL
C'est NoMoon - YouTube

Je trouve la sensation de profondeur dans cette image fixe assez convaincante. (Tests de dernière minute... ce script utilise certaines fonctionnalités de JMP 13. JMP 13 est disponible dès maintenant ! )
Objets
Histoire, partie 3
31 octobre 1959, 18h30. Un enfant de quatre ans se dirige vers la rue avec son père, un sac à friandises à la main, et aucune idée de ce qui se passe. Les premières maisons sont celles de ses amis, ce n'est pas grave, il y est allé plusieurs fois. "Va à la porte, sonne, districher, tends le sac.
Puis ils traversent lefrontière. Il ne connaît pas ces maisons. Le premier est OK ; son père salue et envoie le garçon à la porte. "Twiker tweat!". Ils rient, jettent quelque chose dans le sac.
La porte de la maison voisine est ouverte et le cœur du garçon commence à battre à tout rompre. Il ne comprenait pas vraiment le Magicien d'OZ sur la télévision en noir et blanc, mais il pensait définitivement que les singes volants étaient effrayants. Mais c'est pire. Debout sur le pas de la porte, chapeau pointu, visage vert... des années plus tard, il se rendrait compte que c'était un maquillage parfait etilsil y avait probablement une télévision couleur.
Papa : « Vas-y, monte les marches. Elle ne te fera pas de mal.
Garçon : « Noooooooon »
Sorcière, ricanant : "Allez petit garçon... J'ai des bonbons pour toi..."
Vidéo et code
Le code qui a construit cette vidéo utilise des espaces de noms pour représenteracteurscomme objets. Les objets sont vaguement calqués sur le design de Drew danshttps://community.jmp.com/docs/DOC-9687, et ont plusieurs couches de sous-classes. Vous pourriez trouver la façon dont les objets se présentent un peu effrayant, un peu comme des singes volants. Les acteurs ont des règles pour régir leurs interactions lorsqu'ils se promènent dans leur monde. Il existe deux cas d'acteurs « pôles » ; leur objectif principal est de repousser les autres acteurs des pôles nord et sud (car le système de coordonnées que j'ai choisi ne gère pas très bien les pôles). Les acteurs rouges et bleus sont instanciés au pôle nord et sont repoussés les uns des autres ainsi que des pôles. L'acteur bleu, ou distingué, a des talents particuliers : il marche en crabe, suit l'équateur et cherche l'est. Contrairement aux acteurs rouges, le bleu a des moyens et de la motivation. La caméra suivra le bleu. La plupart de ces propos sont bien plus proches du plaisir que de la réalité. L'ambiance n'est pas ce qu'elle semble être. Les soleils sont beaucoup trop proches et des crochets célestes inexpliqués les retiennent. Les corps des créatures ne sont que des sphères enfoncées profondément dans la surface. Lorsque les créatures tournent trop vite, leurs pattes se croisent et se démêlent quelques images plus tard.
Télécharger JSL
TessellationDanse - YouTube

Mise à jour du 22 juin 2018 : liens de réparation